diff --git a/.gitignore b/.gitignore index 814e0cdfe..7f9805f39 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ node_modules dist/* -e2e/dms/* +e2e/dms/*/ +!e2e/dms/temp/ npm-debug.log .eslintcache datasources.*.json diff --git a/back/methods/dms/downloadFile.js b/back/methods/dms/downloadFile.js index 523bd39bd..72090f33b 100644 --- a/back/methods/dms/downloadFile.js +++ b/back/methods/dms/downloadFile.js @@ -1,5 +1,4 @@ const UserError = require('vn-loopback/util/user-error'); -const fs = require('fs-extra'); module.exports = Self => { Self.remoteMethodCtx('downloadFile', { @@ -8,7 +7,7 @@ module.exports = Self => { accepts: [ { arg: 'id', - type: 'String', + type: 'Number', description: 'The document id', http: {source: 'path'} } diff --git a/back/methods/dms/uploadFile.js b/back/methods/dms/uploadFile.js index 2d4cc94da..9ef60c005 100644 --- a/back/methods/dms/uploadFile.js +++ b/back/methods/dms/uploadFile.js @@ -1,6 +1,5 @@ const UserError = require('vn-loopback/util/user-error'); const fs = require('fs-extra'); -const md5 = require('md5'); module.exports = Self => { Self.remoteMethodCtx('uploadFile', { diff --git a/back/models/postcode.js b/back/models/postcode.js new file mode 100644 index 000000000..b08fdaa40 --- /dev/null +++ b/back/models/postcode.js @@ -0,0 +1,9 @@ +let UserError = require('vn-loopback/util/user-error'); + +module.exports = Self => { + Self.rewriteDbError(function(err) { + if (err.code === 'ER_DUP_ENTRY') + return new UserError(`This postcode already exists`); + return err; + }); +}; diff --git a/back/models/town.json b/back/models/town.json index 8ae252780..41633fe0a 100644 --- a/back/models/town.json +++ b/back/models/town.json @@ -41,16 +41,17 @@ "scopes": { "location": { "include": [{ + "relation": "postcodes" + }, + { "relation": "province", "scope": { "include": { "relation": "country" } } - }, - { - "relation": "postcodes" - }] + }], + "fields": ["id", "name", "provinceFk"] } } } \ No newline at end of file diff --git a/db/changes/10031-zone/00-device.sql b/db/changes/10031-zone/00-device.sql deleted file mode 100644 index 665d2c8e7..000000000 --- a/db/changes/10031-zone/00-device.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE `vn`.`device` ( - `id` INT NOT NULL, - `sn` VARCHAR(50) NULL, - `model` VARCHAR(50) NULL, - `userFk` INT(10) UNSIGNED NOT NULL, - PRIMARY KEY (`id`), - INDEX `device_fk1_idx` (`userFk` ASC), - CONSTRAINT `device_fk1` - FOREIGN KEY (`userFk`) - REFERENCES `account`.`user` (`id`) - ON DELETE NO ACTION - ON UPDATE NO ACTION); - -ALTER TABLE `vn`.`device` -CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ; diff --git a/db/changes/10031-zone/00-nodeAdd.sql b/db/changes/10031-zone/00-nodeAdd.sql deleted file mode 100644 index 2c6165ac0..000000000 --- a/db/changes/10031-zone/00-nodeAdd.sql +++ /dev/null @@ -1,74 +0,0 @@ -USE `nst`; -DROP procedure IF EXISTS `nodeAdd`; - -DELIMITER $$ -USE `nst`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `nodeAdd`(IN `vScheme` VARCHAR(45), IN `vTable` VARCHAR(45), IN `vParentFk` INT, IN `vChild` VARCHAR(100)) -BEGIN - DECLARE vSql TEXT; - DECLARE vTableClone VARCHAR(45); - - SET vTableClone = CONCAT(vTable, 'Clone'); - - CALL util.exec(CONCAT('DROP TEMPORARY TABLE IF EXISTS tmp.', vTableClone)); - CALL util.exec(CONCAT( - 'CREATE TEMPORARY TABLE tmp.', vTableClone, - ' ENGINE = MEMORY', - ' SELECT * FROM ', vScheme, '.', vTable - )); - - CALL util.exec(CONCAT( - 'SELECT COUNT(c.id) INTO @childs', - ' FROM ', vScheme, '.', vTable, ' p', - ' LEFT JOIN tmp.', vTableClone, ' c ON c.lft', - ' BETWEEN p.lft AND p.rgt AND c.id != ', vParentFk, - ' WHERE p.id = ', vParentFk - )); - - IF @childs = 0 THEN - CALL util.exec(CONCAT( - 'SELECT lft INTO @vLeft', - ' FROM ', vScheme, '.', vTable, - ' WHERE id = ', vParentFk - )); - ELSE - CALL util.exec(CONCAT( - 'SELECT c.rgt INTO @vLeft', - ' FROM ', vScheme, '.', vTable, ' p', - ' JOIN tmp.', vTableClone, ' c ON c.depth = p.depth + 1' - ' AND c.lft BETWEEN p.lft AND p.rgt', - ' WHERE p.id = ', vParentFk, - ' ORDER BY c.lft', - ' DESC LIMIT 1' - )); - END IF; - - CALL util.exec(CONCAT( - 'UPDATE ', vScheme, '.', vTable, ' SET rgt = rgt + 2', - ' WHERE rgt > @vLeft', - ' ORDER BY rgt DESC' - )); - CALL util.exec(CONCAT( - 'UPDATE ', vScheme, '.', vTable, ' SET lft = lft + 2', - ' WHERE lft > @vLeft', - ' ORDER BY lft DESC' - )); - - SET vChild = REPLACE(vChild, "'", "\\'"); - - CALL util.exec(CONCAT( - 'INSERT INTO ', vScheme, '.', vTable, ' (name, lft, rgt)', - ' VALUES ("', vChild, '", @vLeft + 1, @vLeft + 2)' - )); - - -- CALL util.exec(CONCAT( - -- 'SELECT id, name, lft, rgt, depth, sons', - -- ' FROM ', vScheme, '.', vTable, - -- ' WHERE id = LAST_INSERT_ID()' - -- )); - - CALL util.exec(CONCAT('DROP TEMPORARY TABLE tmp.', vTableClone)); -END$$ - -DELIMITER ; - diff --git a/db/changes/10031-zone/00-zone.sql b/db/changes/10031-zone/00-zone.sql deleted file mode 100644 index 5cc2b8ccb..000000000 --- a/db/changes/10031-zone/00-zone.sql +++ /dev/null @@ -1,2533 +0,0 @@ --- Kkear agencyHourGetShipped --------------------------------------------------------------- - -USE `vn`; -DROP procedure IF EXISTS `vn`.`agencyHourGetShipped`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `agencyHourGetShippedKk`(vLanded DATE, vAddressFk INT, vAgencyFk INT) -BEGIN -/** - * DEPRECATED usar zoneGetShipped - * Devuelve las posibles fechas de envío de un ticket - * - * @param vLanded La fecha de recepcion - * @param vAddressFk Id del consignatario - * @param vAgencyFk Id de la agencia - * @return tmp.agencyHourGetShipped - */ - DECLARE vDone BOOL; - DECLARE vWarehouseFk SMALLINT; - - DECLARE vCur CURSOR FOR - SELECT w.id warehouseFk - FROM vn.warehouse w - WHERE w.hasAvailable; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - DROP TEMPORARY TABLE IF EXISTS tmp.agencyHourGetShipped; - CREATE TEMPORARY TABLE tmp.agencyHourGetShipped - ( - warehouseFk TINYINT NOT NULL PRIMARY KEY, - shipped DATE NOT NULL, - landed DATE NOT NULL - ) - ENGINE = MEMORY; - - OPEN vCur; - - l: LOOP - SET vDone = FALSE; - FETCH vCur INTO vWarehouseFk; - - IF vDone THEN - LEAVE l; - END IF; - INSERT INTO tmp.agencyHourGetShipped (warehouseFk, shipped, landed) - SELECT vWarehouseFk, shipping, vLanded FROM ( - SELECT TIMESTAMPADD(DAY, -ah.substractDay, vLanded) shipping, ah.maxHour - FROM agencyHour ah - LEFT JOIN address a ON a.id = vAddressFk - WHERE ah.warehouseFk = vWarehouseFk - AND (weekDay = WEEKDAY(vLanded) - OR weekDay IS NULL) - AND (ah.agencyFk = vAgencyFk - OR ah.agencyFk IS NULL) - AND (ah.provinceFk = a.provinceFk - OR ah.provinceFk IS NULL - OR vAddressFk IS NULL) - ORDER BY ( - (ah.weekDay IS NOT NULL) + - (ah.agencyFk IS NOT NULL) + - ((ah.provinceFk IS NOT NULL) * 3) - ) DESC - LIMIT 1 - ) t - WHERE t.shipping >= CURDATE() - AND IF(t.shipping = CURDATE(), t.maxHour > HOUR(NOW()), TRUE); - END LOOP; - - CLOSE vCur; -END$$ - -DELIMITER ; -; - --- ticketCalculateClon----------------------------------------------------------------------- -USE `vn`; -DROP procedure IF EXISTS `ticketCalculateClon`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculateClon`(IN vTicketNew INT, vTicketOld INT) -BEGIN - /* - * @vTicketNew id del nuevo ticket clonado - * @vTicketOld id ticket original, a partir del qual se clonara el nuevo - * Este procedimiento "rebioniza" una linea, eliminando los componentes existentes e insertandolos de nuevo - */ - DECLARE vShipped DATE; - DECLARE vClient INT; - DECLARE vWarehouse SMALLINT; - DECLARE vAgencyMode INT; - DECLARE vAddress INT; - DECLARE vLanded DATE; - DECLARE vAgency INT; - - REPLACE INTO orderTicket(orderFk,ticketFk) - SELECT orderFk, vTicketNew - FROM orderTicket - WHERE ticketFk = vTicketOld; - - SELECT t.clientFk, t.warehouseFk, date(t.shipped), t.addressFk, t.agencyModeFk, t.landed, a.agencyFk - INTO vClient, vWarehouse, vShipped, vAddress, vAgencyMode, vLanded, vAgency - FROM vn.agencyMode a - JOIN vn.ticket t ON t.agencyModeFk = a.id - WHERE t.id = vTicketNew; - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetShipped; - CALL zoneGetShippedWarehouse(vLanded, vAddress, vAgencyMode); - DELETE FROM tmp.zoneGetShipped WHERE warehouseFk <> vWarehouse; - - CALL buyUltimate(vWarehouse, vShipped); -- rellena la tabla tmp.buyUltimate con la ultima compra - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; - CREATE TEMPORARY TABLE tmp.ticketLot - SELECT vWarehouse warehouseFk, NULL available, s.itemFk, bu.buyFk - FROM sale s - LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk - WHERE s.ticketFk = vTicketOld GROUP BY s.itemFk; - - CALL ticketComponentCalculate(vAddress,vAgencyMode); - - -- Bionizamos lineas con Preu = 0 - DROP TEMPORARY TABLE IF EXISTS tmp.sale; - CREATE TEMPORARY TABLE tmp.sale - (PRIMARY KEY (saleFk)) ENGINE = MEMORY - SELECT s.id saleFk, vWarehouse warehouseFk - FROM sale s - JOIN ticket t on t.id = s.ticketFk WHERE s.ticketFk = vTicketNew AND s.price = 0; - - CALL ticketComponentUpdateSale(1); - - -- Bionizamos lineas con Preu > 0 - DROP TEMPORARY TABLE IF EXISTS tmp.sale; - CREATE TEMPORARY TABLE tmp.sale - (PRIMARY KEY (saleFk)) ENGINE = MEMORY - SELECT s.id saleFk, vWarehouse warehouseFk - FROM sale s - JOIN ticket t on t.id = s.ticketFk WHERE s.ticketFk = vTicketNew - AND s.price > 0; - - CALL ticketComponentUpdateSale(6); - - IF vLanded IS NULL THEN - CALL zoneGetLanded(vShipped, vAddress, vAgency,vWarehouse); - UPDATE ticket t - JOIN tmp.zoneGetLanded zgl ON t.warehouseFk = zgl.warehouseFk - SET t.landed = zgl.landed - WHERE t.id = vTicketNew; - END IF; - - -- Log - CALL `logAdd`(vTicketNew, 'update', ' ticket' , 'Bioniza Ticket'); - - -- Limpieza - DROP TEMPORARY TABLE IF EXISTS tmp.buyUltimate; - DROP TEMPORARY TABLE IF EXISTS tmp.sale; - DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetLanded; -END$$ - -DELIMITER ; --- ------------------------------------------------------------------------------------------ - -DROP VIEW IF EXISTS `vn`.`agencyWeekDayBonus` ; - -DROP VIEW IF EXISTS `vn`.`agencyHour` ; - -ALTER TABLE `vn2008`.`agency_weekday_bonus` -RENAME TO `vn2008`.`agency_weekday_bonusKk` ; - -ALTER TABLE `vn2008`.`preparation_percentage` -RENAME TO `vn2008`.`preparation_percentageKk` ; - -DROP VIEW IF EXISTS `vn`.`preparationPercentage` ; - -ALTER TABLE `vn2008`.`agency_hour` -RENAME TO `vn2008`.`agency_hourKk` ; - - --- clonWeeklyTickets----------------------------------------------------------------------- -USE `vn2008`; -DROP procedure IF EXISTS `clonWeeklyTickets`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `clonWeeklyTickets`(IN vWeek INT) -BEGIN - DECLARE done BIT DEFAULT 0; - DECLARE vLanding DATE; - DECLARE vShipment DATE; - DECLARE vWarehouse INT; - DECLARE vTicket INT; - DECLARE vWeekDay INT; - DECLARE vClient INT; - DECLARE vEmpresa INT; - DECLARE vConsignatario INT; - DECLARE vAgencia INT; - DECLARE vNewTicket INT; - DECLARE vYear INT; - - DECLARE rsTicket CURSOR FOR - SELECT tt.Id_Ticket, weekDay, Id_Cliente, warehouse_id, empresa_id, Id_Consigna, Id_Agencia - FROM Tickets_turno tt - JOIN Tickets t ON tt.Id_Ticket = t.Id_Ticket; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; - - SET done = 0; - SET vYear = YEAR(CURDATE()) + IF(vWeek < WEEK(CURDATE()),1, 0); - - OPEN rsTicket; - - FETCH rsTicket INTO vTicket, vWeekDay, vClient, vWarehouse, vEmpresa, vConsignatario, vAgencia; - - WHILE NOT done DO - - SELECT date INTO vShipment - FROM time - WHERE year = vYear AND week = vWeek - AND WEEKDAY(date) = vWeekDay; - - -- busca si el ticket ya ha sido clonado - IF (select count(*) FROM Tickets t JOIN ticket_observation tob ON t.Id_Ticket = tob.Id_Ticket - WHERE Id_Consigna = vConsignatario AND Fecha = vShipment AND tob.text LIKE CONCAT('%',vTicket,'%')) = 0 - THEN - - IF (SELECT COUNT(*) FROM Agencias WHERE Id_Agencia = vAgencia AND Agencia LIKE '%turno%') THEN - SET vAgencia = NULL; - END IF; - - CALL vn.ticketCreate(vClient, vShipment, vWarehouse, vEmpresa, vConsignatario, vAgencia, NULL, vLanding, vNewTicket); - - INSERT INTO Movimientos (Id_Ticket, Id_Article, Concepte, Cantidad, Preu, Descuento, CostFixat, PrecioFijado) - SELECT vNewTicket, Id_Article, Concepte, Cantidad, Preu, Descuento, CostFixat, PrecioFijado - FROM Movimientos WHERE Id_Ticket = vTicket; - - INSERT INTO Ordenes (orden,datorden,datticket,codvendedor,codcomprador,cantidad,preciomax,preu,id_article,id_cliente,comentario, - ok, total,datcompra,ko,id_movimiento) - SELECT o.orden,o.datorden,vShipment,o.codvendedor,o.codcomprador,o.cantidad,o.preciomax,o.preu,o.id_article,o.id_cliente,o.comentario, - o.ok, o.total,o.datcompra,o.ko,m2.Id_Movimiento - FROM Movimientos m JOIN Ordenes o ON o.Id_Movimiento = m.Id_Movimiento - JOIN Movimientos m2 ON m.Concepte = m2.Concepte AND m.Cantidad = m2.Cantidad AND m.Id_Article = m2.Id_Article - WHERE m.Id_Ticket = vTicket AND m2.Id_Ticket = vNewTicket; - - INSERT INTO ticket_observation(Id_Ticket,observation_type_id,text) VALUES(vNewTicket,4,CONCAT('turno desde ticket: ',vTicket)) - ON DUPLICATE KEY UPDATE text = CONCAT(ticket_observation.text,VALUES(text),' '); - - INSERT INTO ticket_observation(Id_Ticket,observation_type_id,text) VALUES(vNewTicket,1,'ATENCION: Contiene lineas de TURNO') - ON DUPLICATE KEY UPDATE text = CONCAT(ticket_observation.text,VALUES(text),' '); - - CALL vn.ticketCalculateClon(vNewTicket, vTicket); - END IF; - FETCH rsTicket INTO vTicket, vWeekDay, vClient, vWarehouse, vEmpresa, vConsignatario, vAgencia; - - END WHILE; - - CLOSE rsTicket; - -END$$ - -DELIMITER ; - - --- ticketComponentCalculate----------------------------------------------------------------------- -USE `vn`; -DROP procedure IF EXISTS `ticketComponentCalculate`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketComponentCalculate`( - vAddressFk INT, - vAgencyModeFk INT) -proc: BEGIN -/** - * Calcula los componentes de un ticket - * - * @param vAddressFk Id del consignatario - * @param vAgencyModeFk Id del modo de agencia - * @return tmp.ticketComponent(itemFk, warehouseFk, available, rate2, rate3, minPrice, - * packing, grouping, groupingMode, buyFk, typeFk) - * @return tmp.ticketComponentPrice (warehouseFk, itemFk, rate, grouping, price) - */ - - DECLARE vClientFk INT; - DECLARE vGeneralInflationCoefficient INT DEFAULT 1; - DECLARE vMinimumDensityWeight INT DEFAULT 167; - DECLARE vBoxFreightItem INT DEFAULT 71; - DECLARE vBoxVolume BIGINT; -- DEFAULT 138000; - DECLARE vSpecialPriceComponent INT DEFAULT 10; - DECLARE vDeliveryComponent INT DEFAULT 15; - DECLARE vRecoveryComponent INT DEFAULT 17; - DECLARE vSellByPacketComponent INT DEFAULT 22; - DECLARE vBuyValueComponent INT DEFAULT 28; - DECLARE vMarginComponent INT DEFAULT 29; - DECLARE vDiscountLastItemComponent INT DEFAULT 32; - DECLARE vExtraBaggedComponent INT DEFAULT 38; - DECLARE vManaAutoComponent INT DEFAULT 39; - - - SELECT volume INTO vBoxVolume - FROM vn.packaging - WHERE id = '94'; - - SELECT clientFk INTO vClientFK - FROM address - WHERE id = vAddressFk; - - SET @rate2 := 0; - SET @rate3 := 0; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentCalculate; - CREATE TEMPORARY TABLE tmp.ticketComponentCalculate - (PRIMARY KEY (itemFk, warehouseFk)) - ENGINE = MEMORY - SELECT - tl.itemFk, tl.warehouseFk, tl.available, - IF((@rate2 := IFNULL(pf.rate2, b.price2)) < i.minPrice AND i.hasMinPrice, i.minPrice, @rate2) * 1.0 rate2, - IF((@rate3 := IFNULL(pf.rate3, b.price3)) < i.minPrice AND i.hasMinPrice, i.minPrice, @rate3) * 1.0 rate3, - IFNULL(pf.rate3, 0) AS minPrice, - IFNULL(pf.packing, b.packing) packing, - IFNULL(pf.`grouping`, b.`grouping`) grouping, - ABS(IFNULL(pf.box, b.groupingMode)) groupingMode, - tl.buyFk, i.typeFk - FROM tmp.ticketLot tl - JOIN buy b ON b.id = tl.buyFk - JOIN item i ON i.id = tl.itemFk - JOIN itemType it ON it.id = i.typeFk - LEFT JOIN itemCategory ic ON ic.id = it.categoryFk - LEFT JOIN specialPrice sp ON sp.itemFk = i.id AND sp.clientFk = vClientFk - LEFT JOIN ( - SELECT * FROM ( - SELECT pf.itemFk, pf.`grouping`, pf.packing, pf.box, pf.rate2, pf.rate3, aho.warehouseFk - FROM priceFixed pf - JOIN tmp.zoneGetShipped aho ON pf.warehouseFk = aho.warehouseFk OR pf.warehouseFk = 0 - WHERE aho.shipped BETWEEN pf.started AND pf.ended ORDER BY pf.itemFk, pf.warehouseFk DESC - ) tpf - GROUP BY tpf.itemFk, tpf.warehouseFk - ) pf ON pf.itemFk = tl.itemFk AND pf.warehouseFk = tl.warehouseFk - WHERE b.buyingValue + b.freightValue + b.packageValue + b.comissionValue > 0.01 AND ic.display <> 0; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponent; - CREATE TEMPORARY TABLE tmp.ticketComponent ( - `warehouseFk` INT UNSIGNED NOT NULL, - `itemFk` INT NOT NULL, - `componentFk` INT UNSIGNED NOT NULL, - `cost` DECIMAL(10,4) NOT NULL, - INDEX `itemWarehouse` USING BTREE (`itemFk` ASC, `warehouseFk` ASC), - UNIQUE INDEX `itemWarehouseComponent` (`itemFk` ASC, `warehouseFk` ASC, `componentFk` ASC)); - - INSERT INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost) - SELECT - tcc.warehouseFk, - tcc.itemFk, - vBuyValueComponent, - b.buyingValue + b.freightValue + b.packageValue + b.comissionValue - FROM tmp.ticketComponentCalculate tcc - JOIN buy b ON b.id = tcc.buyFk; - - INSERT INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost) - SELECT - tcc.warehouseFk, - tcc.itemFk, - vMarginComponent, - tcc.rate3 - b.buyingValue - b.freightValue - b.packageValue - b.comissionValue - FROM tmp.ticketComponentCalculate tcc - JOIN buy b ON b.id = tcc.buyFk; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentBase; - CREATE TEMPORARY TABLE tmp.ticketComponentBase ENGINE = MEMORY - SELECT tc.itemFk, ROUND(SUM(tc.cost), 4) AS base, tc.warehouseFk - FROM tmp.ticketComponent tc - GROUP BY tc.itemFk, warehouseFk; - - INSERT INTO tmp.ticketComponent - SELECT tcb.warehouseFk, tcb.itemFk, vRecoveryComponent, ROUND(tcb.base * LEAST(cr.recobro, 0.25), 3) - FROM tmp.ticketComponentBase tcb - JOIN bi.claims_ratio cr ON cr.Id_Cliente = vClientFk - WHERE cr.recobro > 0.009; - - INSERT INTO tmp.ticketComponent - SELECT tcb.warehouseFk, tcb.itemFk, vManaAutoComponent, ROUND(base * (0.01 + prices_modifier_rate), 3) as manaAuto - FROM tmp.ticketComponentBase tcb - JOIN `client` c on c.id = vClientFk - JOIN bs.mana_spellers ms ON c.salesPersonFk = ms.Id_Trabajador - WHERE ms.prices_modifier_activated - HAVING manaAuto <> 0; - - INSERT INTO tmp.ticketComponent - SELECT tcb.warehouseFk, - tcb.itemFk, - cr.id, - GREATEST(IFNULL(ROUND(tcb.base * cr.tax, 4), 0), tcc.minPrice - tcc.rate3) - FROM tmp.ticketComponentBase tcb - JOIN componentRate cr - JOIN tmp.ticketComponentCalculate tcc ON tcc.itemFk = tcb.itemFk AND tcc.warehouseFk = tcb.warehouseFk - LEFT JOIN specialPrice sp ON sp.clientFk = vClientFk AND sp.itemFk = tcc.itemFk - WHERE cr.id = vDiscountLastItemComponent AND cr.tax <> 0 AND tcc.minPrice < tcc.rate3 AND sp.value IS NULL; - - INSERT INTO tmp.ticketComponent - SELECT tcc.warehouseFk, tcc.itemFk, vSellByPacketComponent, tcc.rate2 - tcc.rate3 - FROM tmp.ticketComponentCalculate tcc - JOIN buy b ON b.id = tcc.buyFk - LEFT JOIN specialPrice sp ON sp.clientFk = vClientFk AND sp.itemFk = tcc.itemFk - WHERE sp.value IS NULL; - - INSERT INTO tmp.ticketComponent - SELECT tcc.warehouseFK, - tcc.itemFk, - vDeliveryComponent, - vGeneralInflationCoefficient - * ROUND(( - i.compression - * r.cm3 - * IF(am.deliveryMethodFk = 1, (GREATEST(i.density, vMinimumDensityWeight) / vMinimumDensityWeight), 1) - * IFNULL((z.price - z.bonus) - * 1/*amz.inflation*/, 50)) / vBoxVolume, 4 - ) cost - FROM tmp.ticketComponentCalculate tcc - JOIN item i ON i.id = tcc.itemFk - JOIN agencyMode am ON am.id = vAgencyModeFk - JOIN `address` a ON a.id = vAddressFk - JOIN tmp.zoneGetShipped zgs ON zgs.warehouseFk = tcc.warehouseFk - JOIN zone z ON z.id = zgs.id - LEFT JOIN bi.rotacion r ON r.warehouse_id = tcc.warehouseFk - AND r.Id_Article = tcc.itemFk - HAVING cost <> 0; - - IF (SELECT COUNT(*) FROM vn.addressForPackaging WHERE addressFk = vAddressFk) THEN - INSERT INTO tmp.ticketComponent - SELECT tcc.warehouseFk, b.itemFk, vExtraBaggedComponent, ap.packagingValue cost - FROM tmp.ticketComponentCalculate tcc - JOIN vn.addressForPackaging ap - WHERE ap.addressFk = vAddressFk; - END IF; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentCopy; - CREATE TEMPORARY TABLE tmp.ticketComponentCopy ENGINE = MEMORY - SELECT * FROM tmp.ticketComponent; - - INSERT INTO tmp.ticketComponent - SELECT tcc.warehouseFk, - tcc.itemFk, - vSpecialPriceComponent, - sp.value - SUM(tcc.cost) sumCost - FROM tmp.ticketComponentCopy tcc - JOIN componentRate cr ON cr.id = tcc.componentFk - JOIN specialPrice sp ON sp.clientFk = vClientFK AND sp.itemFk = tcc.itemFk - WHERE cr.classRate IS NULL - GROUP BY tcc.itemFk, tcc.warehouseFk - HAVING ABS(sumCost) > 0.001; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentSum; - CREATE TEMPORARY TABLE tmp.ticketComponentSum - (INDEX (itemFk, warehouseFk)) - ENGINE = MEMORY - SELECT SUM(cost) sumCost, tc.itemFk, tc.warehouseFk, cr.classRate - FROM tmp.ticketComponent tc - JOIN componentRate cr ON cr.id = tc.componentFk - GROUP BY tc.itemFk, tc.warehouseFk, cr.classRate; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentRate; - CREATE TEMPORARY TABLE tmp.ticketComponentRate ENGINE = MEMORY - SELECT tcc.warehouseFk, - tcc.itemFk, - 1 rate, - IF(tcc.groupingMode = 1, tcc.`grouping`, 1) grouping, - CAST(SUM(tcs.sumCost) AS DECIMAL(10,2)) price - FROM tmp.ticketComponentCalculate tcc - JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk - AND tcs.warehouseFk = tcc.warehouseFk - WHERE IFNULL(tcs.classRate, 1) = 1 - AND tcc.groupingMode < 2 AND (tcc.packing > tcc.`grouping` or tcc.groupingMode = 0) - GROUP BY tcs.warehouseFk, tcs.itemFk; - - INSERT INTO tmp.ticketComponentRate (warehouseFk, itemFk, rate, grouping, price) - SELECT - tcc.warehouseFk, - tcc.itemFk, - 2 rate, - tcc.packing grouping, - SUM(tcs.sumCost) price - FROM tmp.ticketComponentCalculate tcc - JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk - AND tcs.warehouseFk = tcc.warehouseFk - WHERE tcc.available IS NULL OR (IFNULL(tcs.classRate, 2) = 2 - AND tcc.packing > 0 AND tcc.available >= tcc.packing) - GROUP BY tcs.warehouseFk, tcs.itemFk; - - INSERT INTO tmp.ticketComponentRate (warehouseFk, itemFk, rate, grouping, price) - SELECT - tcc.warehouseFk, - tcc.itemFk, - 3 rate, - tcc.available grouping, - SUM(tcs.sumCost) price - FROM tmp.ticketComponentCalculate tcc - JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk - AND tcs.warehouseFk = tcc.warehouseFk - WHERE IFNULL(tcs.classRate, 3) = 3 - GROUP BY tcs.warehouseFk, tcs.itemFk; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentPrice; - CREATE TEMPORARY TABLE tmp.ticketComponentPrice ENGINE = MEMORY - SELECT * FROM ( - SELECT * FROM tmp.ticketComponentRate ORDER BY price - ) t - GROUP BY itemFk, warehouseFk, `grouping`; - - DROP TEMPORARY TABLE - tmp.ticketComponentCalculate, - tmp.ticketComponentSum, - tmp.ticketComponentBase, - tmp.ticketComponentRate, - tmp.ticketComponentCopy; -END$$ - -DELIMITER ; - --- bionic_calc_clon----------------------------------------------------------------------- - - -USE `vn2008`; -DROP procedure IF EXISTS `vn2008`.`bionic_calc_clon`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_clonKk`(IN v_ticket BIGINT) -BEGIN - -/* -* DEPRECATED vn.ticketCalculateClon -* -Este procedimiento "rebioniza" una linea, eliminando los componentes existentes e insertandolos de nuevo -*/ - DECLARE v_shipment DATE; - DECLARE v_customer INT; - DECLARE v_wh SMALLINT; - DECLARE v_agencia INT; - DECLARE v_consigna INT; - DECLARE v_landing DATE; - DECLARE v_agency INT; - - REPLACE order_Tickets(order_id,Id_Ticket) VALUES(48, v_ticket); - - SELECT t.Id_Cliente , t.warehouse_id, date(t.Fecha), t.Id_Consigna, t.Id_Agencia, t.landing, a.agency_id - INTO v_customer, v_wh, v_shipment, v_consigna, v_agencia, v_landing, v_agency - FROM vn2008.Agencias a - JOIN vn2008.Tickets t ON t.Id_Agencia = a.Id_Agencia - WHERE t.Id_Ticket = v_ticket; - - DROP TEMPORARY TABLE IF EXISTS tmp.agencyHourGetShipped; - CREATE TEMPORARY TABLE tmp.agencyHourGetShipped ENGINE = MEMORY - SELECT v_wh warehouseFk, v_shipment shipped, v_landing landed; - - CALL item_last_buy_ (v_wh, v_shipment); -- rellena la tabla t_item_last_buy con la ultima compra - - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot; - CREATE TEMPORARY TABLE tmp.bionic_lot - SELECT v_wh warehouse_id,NULL available, - m.Id_Article item_id,ilb.buy_id - FROM Movimientos m - LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article - WHERE m.Id_Ticket = v_ticket GROUP BY m.Id_Article; - - CALL bionic_calc_component(v_consigna,v_agencia); - - -- Bionizamos lineas con Preu = 0 - DROP TEMPORARY TABLE IF EXISTS tmp.movement; - CREATE TEMPORARY TABLE tmp.movement - (PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY - SELECT Id_Movimiento, v_wh warehouse_id FROM Movimientos m - JOIN Tickets t on t.Id_Ticket = m.Id_Ticket WHERE m.Id_Ticket = v_ticket AND Preu = 0; - - CALL bionic_movement_update(1); - - -- Bionizamos lineas con Preu > 0 - DROP TEMPORARY TABLE IF EXISTS tmp.movement; - CREATE TEMPORARY TABLE tmp.movement - (PRIMARY KEY (Id_Movimiento)) ENGINE = MEMORY - SELECT Id_Movimiento, v_wh warehouse_id FROM Movimientos m - JOIN Tickets t on t.Id_Ticket = m.Id_Ticket WHERE m.Id_Ticket = v_ticket AND Preu > 0; - CALL bionic_movement_update(6); - - IF v_landing IS NULL THEN - CALL travel_tree_shipment(v_shipment, v_consigna, v_agency,v_wh); - UPDATE Tickets t - JOIN travel_tree_shipment tts ON t.warehouse_id = tts.warehouse_id - SET t.landing = tts.landing - WHERE Id_Ticket = v_ticket; - END IF; - - -- Log - call Ditacio(v_ticket - ,'Bioniza Ticket' - ,'T' - , 20 - , 'proc bionic_calc_clon' - , NULL); - - -- Limpieza - DROP TEMPORARY TABLE t_item_last_buy; -END$$ - -DELIMITER ; - - --- bionic_calc_component----------------------------------------------------------------------- - - -USE `vn2008`; -DROP procedure IF EXISTS `vn2008`.`bionic_calc_component`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_component`(IN `v_consigna` INT, IN `v_agencia` INT) -proc: BEGIN - - DECLARE v_customer INT; - DECLARE COEFICIENTE_DE_INFLACION_GENERAL INT DEFAULT 1.0; - DECLARE DENSIDAD_MINIMA_PESO_VOLUMETRICO INT DEFAULT 167; - DECLARE VOLUMEN_CAJA_VERDNATURA BIGINT; -- DEFAULT 138000; - -- DECLARE vValorEmbolsado DOUBLE DEFAULT 0.04; - - SELECT Volumen INTO VOLUMEN_CAJA_VERDNATURA - FROM Cubos - WHERE Id_Cubo = '94'; - - SELECT Id_Cliente INTO v_customer FROM Consignatarios WHERE Id_Consigna = v_consigna; - SET @rate2 := 0; - SET @rate3 := 0; - - DROP TEMPORARY TABLE IF EXISTS t_bionic_temp; - CREATE TEMPORARY TABLE t_bionic_temp - (PRIMARY KEY (item_id,warehouse_id)) - ENGINE = MEMORY - SELECT - b.item_id, b.warehouse_id,available, - IF((@rate2 := IFNULL(pf.rate_2,c.Tarifa2)) < a.PVP AND a.`Min`, a.PVP, @rate2) * 1.0 rate_2, - IF((@rate3 := IFNULL(pf.rate_3,c.Tarifa3)) < a.PVP AND a.`Min`, a.PVP, @rate3) * 1.0 rate_3, - ifnull(pf.rate_3,0) AS min_price, - IFNULL(pf.Packing,c.Packing) packing, - IFNULL(pf.`grouping`,c.`grouping`) `grouping`, - ABS(IFNULL(pf.caja,c.caja)) box, - b.buy_id, a.tipo_id - FROM tmp.bionic_lot b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra - JOIN vn2008.Articles a ON b.item_id = a.Id_Article - JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id - LEFT JOIN vn2008.reinos r ON r.id = t.reino_id - LEFT JOIN vn2008.PreciosEspeciales p ON a.Id_Article = p.Id_Article AND p.Id_Cliente = v_customer - LEFT JOIN ( - SELECT * FROM ( - SELECT p.item_id, p.`grouping`, p.Packing, p.caja, p.rate_2, p.rate_3, zgs.warehouseFk AS warehouse_id - FROM vn2008.price_fixed p - JOIN tmp.zoneGetShipped zgs ON zgs.warehouseFk = p.warehouse_id OR p.warehouse_id = 0 - WHERE zgs.shipped BETWEEN p.date_start AND p.date_end ORDER BY p.item_id, p.warehouse_id DESC - ) t - GROUP BY item_id, warehouse_id - ) pf ON pf.item_id = b.item_id AND pf.warehouse_id = b.warehouse_id - -- descartamos articulos con coste menor de 0.01 - WHERE Costefijo + Portefijo + Embalajefijo + Comisionfija > 0.01 AND r.display <> 0; - - -- Creamos la tabla tmp.bionic_component - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component; - CREATE TEMPORARY TABLE tmp.bionic_component LIKE - template_bionic_component; - - -- Componentes del precio, valores absolutos - INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost) - SELECT b.warehouse_id, b.item_id, 29, rate_3 - Costefijo - Portefijo - Embalajefijo - Comisionfija - FROM t_bionic_temp b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra; - - INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost) - SELECT b.warehouse_id, b.item_id, 28, Costefijo + Portefijo + Embalajefijo + Comisionfija - FROM t_bionic_temp b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra; - - -- Ahora los valores en funcion de la base - - DROP TEMPORARY TABLE IF EXISTS t_components_base; - - CREATE TEMPORARY TABLE t_components_base - SELECT bc.item_id, ROUND(SUM(cost), 4) AS base, bc.warehouse_id - FROM tmp.bionic_component bc - GROUP BY bc.item_id,warehouse_id; - - -- La ratio se calcula teniendo en cuenta el valor de las reclamaciones y el saldo de greuge - - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, item_id, 17, ROUND(base * LEAST(recobro,0.25), 3) - FROM t_components_base cb - JOIN bi.claims_ratio ON Id_Cliente = v_customer - WHERE recobro > 0.009; - - -- PAK 2016-08-31 Componente de maná automático, en función del maná acumulado por el comercial. - - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, item_id, 39, ROUND(base * (0.01 + prices_modifier_rate), 3) as manaAuto - FROM t_components_base cb - JOIN Clientes c on c.Id_Cliente = v_customer - JOIN bs.mana_spellers ms ON c.Id_Trabajador = ms.Id_Trabajador - WHERE ms.prices_modifier_activated - AND c.Id_Trabajador != 196 -- Ruben Espinosa - HAVING manaAuto <> 0 ; - - -/* - -- Vendedor variable - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, item_id, Id_Componente, IFNULL(ROUND(base * tax,4), 0) - FROM t_components_base cb - JOIN bi.tarifa_componentes - WHERE tarifa_componentes_series_id = 2 and IFNULL(tax, 0) > 0; - */ - - --- ******* Inicio Bloque para componentes con tarifa_class diferente de NULL - -- Descuento por ultimas unidades - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, b.item_id, Id_Componente, GREATEST(IFNULL(ROUND(base * tax,4), 0), b.min_price - b.rate_3) - FROM t_components_base cb - JOIN bi.tarifa_componentes - JOIN t_bionic_temp b ON b.item_id = cb.item_id AND b.warehouse_id = cb.warehouse_id - LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id - WHERE Id_Componente = 32 AND tax <> 0 AND b.min_price < b.rate_3 AND PrecioEspecial IS NULL; - - -- Incremento por paquete suelto - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id, b.item_id, 22, rate_2 - rate_3 - FROM t_bionic_temp b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra - LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id - WHERE PrecioEspecial IS NULL; - --- ******* Fin Bloque para componentes con tarifa_class diferente de NULL - - -- Reparto - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id - , b.item_id - , 15 - , COEFICIENTE_DE_INFLACION_GENERAL - * ROUND( - r.cm3 - * art.compression - * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1) - * IFNULL(az.price - * az.inflacion ,50) - / VOLUMEN_CAJA_VERDNATURA, 4 - ) cost - FROM t_bionic_temp b - JOIN vn2008.Articles art ON art.Id_Article = b.item_id - JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia - JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna - JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id - JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id - LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id - HAVING cost <> 0; - --- Reparto bonificado - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id - , b.item_id - , 41 - , COEFICIENTE_DE_INFLACION_GENERAL - * ROUND( - r.cm3 - * art.compression - * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1) - * awb.bonus - * az.inflacion - / VOLUMEN_CAJA_VERDNATURA, 4 - ) cost - FROM t_bionic_temp b - JOIN vn2008.Articles art ON art.Id_Article = b.item_id - JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia - JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna - JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id - JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id - JOIN vn2008.agency_weekday_bonus awb ON awb.warehouse_id = az.warehouse_id AND awb.zona = az.zona AND a.agency_id = awb.agency_id - LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id - JOIN tmp.agencyHourGetShipped ah ON ah.warehouseFk = awb.warehouse_id AND weekday(ah.landed) = awb.weekDay - HAVING cost <> 0 - LIMIT 1; - --- PAK 12-05-2015 - -- EMBOLSADO - IF (SELECT COUNT(*) FROM vn.addressForPackaging WHERE addressFk = v_consigna) THEN - - -- IF v_consigna IN (13690, 3402, 5661, 4233) THEN - - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id, b.item_id, 38, ap.packagingValue cost - FROM t_bionic_temp b - JOIN vn.addressForPackaging ap - WHERE ap.addressFk = v_consigna; - - END IF; - - -- JGF 14-08-2015 - -- Modificacion de precio por dia de preparacion del pedido - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, cb.item_id, 14, cb.base * (IFNULL(pe.percentage,pp.percentage)/100) - FROM t_components_base cb - JOIN tmp.agencyHourGetShipped ah ON ah.warehouseFk = cb.warehouse_id - LEFT JOIN vn2008.preparation_percentage pp ON pp.week_day = weekday(ah.shipped) AND cb.warehouse_id = IFNULL(pp.warehouse_id,cb.warehouse_id) - LEFT JOIN vn2008.preparation_exception pe ON pe.exception_day = ah.shipped AND cb.warehouse_id = IFNULL(pe.warehouse_id,cb.warehouse_id) - WHERE IFNULL(pe.percentage,pp.percentage); - - -- Creamos la tabla tmp.bionic_component_copy por que mysql no puede reabrir una tabla temporal - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component_copy; - CREATE TEMPORARY TABLE tmp.bionic_component_copy - SELECT * FROM tmp.bionic_component; - - -- JGF 19-01-2016 - -- Precios especiales - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id, b.item_id, 10, pe.PrecioEspecial - SUM(cost) sum_cost - FROM tmp.bionic_component_copy b - JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente - JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id - WHERE t.tarifa_class IS NULL - GROUP BY b.item_id, b.warehouse_id - HAVING ABS(sum_cost) > 0.001; - - -- Lotes - DROP TEMPORARY TABLE IF EXISTS t_component_sum; - CREATE TEMPORARY TABLE t_component_sum - (INDEX (item_id, warehouse_id)) - ENGINE = MEMORY - SELECT SUM(cost) sum_cost, b.item_id, b.warehouse_id, t.tarifa_class - FROM tmp.bionic_component b - JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente - GROUP BY b.item_id, b.warehouse_id, t.tarifa_class; - - -- ***** Inicia Modifica t_bionic_rate las diferentes tarifas - -- Tarifa por unidad minima - DROP TEMPORARY TABLE IF EXISTS t_bionic_rate; - CREATE TEMPORARY TABLE t_bionic_rate - ENGINE = MEMORY - SELECT b.warehouse_id, item_id, 1 rate, - IF(box = 1, `grouping`, 1) `grouping`, SUM(sum_cost) price - FROM t_bionic_temp b - JOIN t_component_sum cs USING(item_id, warehouse_id) - WHERE IFNULL(cs.tarifa_class,1) = 1 AND box < 2 AND (packing > `grouping` or box = 0) - GROUP BY warehouse_id, item_id; - - -- Tarifa por caja - INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, `grouping`, price) - SELECT b.warehouse_id, item_id, 2 rate, packing `grouping`, - SUM(sum_cost) price - FROM t_bionic_temp b - JOIN t_component_sum cs USING(item_id, warehouse_id) - WHERE available IS NULL OR (IFNULL(cs.tarifa_class,2) = 2 AND packing > 0 AND available >= packing) - GROUP BY warehouse_id, item_id; - - -- Tarifa para toda la cantidad disponible - INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, `grouping`, price) - SELECT b.warehouse_id, item_id, 3 rate, available `grouping`, - SUM(sum_cost) price - FROM t_bionic_temp b - JOIN t_component_sum cs USING(item_id, warehouse_id) - WHERE IFNULL(cs.tarifa_class,3) = 3 - GROUP BY warehouse_id, item_id; - - -- ***** Fin Modifica t_bionic_rate las diferentes tarifas - - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_price; - CREATE TEMPORARY TABLE tmp.bionic_price - LIKE template_bionic_price; - - INSERT INTO tmp.bionic_price (warehouse_id, item_id, rate, `grouping`, price) - SELECT * FROM ( - SELECT * FROM t_bionic_rate ORDER BY price - ) t - GROUP BY item_id, warehouse_id, `grouping`; - - - DROP TEMPORARY TABLE IF EXISTS tmp.travel_tree; - CREATE TEMPORARY TABLE tmp.travel_tree - ENGINE = MEMORY - SELECT * FROM tmp.agencyHourGetShipped; - - -- Limpieza - - DROP TEMPORARY TABLE tmp.agencyHourGetShipped; - DROP TEMPORARY TABLE t_bionic_temp; - DROP TEMPORARY TABLE t_component_sum; - DROP TEMPORARY TABLE t_components_base; - DROP TEMPORARY TABLE t_bionic_rate; - DROP TEMPORARY TABLE tmp.bionic_component_copy; -END$$ - -DELIMITER ; - --- ALTER TABLE `vn2008`.`Tickets`----------------------------------------------------------------------- -/* -ALTER TABLE `vn2008`.`Tickets` -ADD COLUMN `zoneFk` INT(11) NULL DEFAULT NULL AFTER `isDeleted`, -ADD INDEX `Tickets_zoneFk_fk_idx` (`zoneFk` ASC); -; -ALTER TABLE `vn2008`.`Tickets` -ADD CONSTRAINT `Tickets_zoneFk_fk` - FOREIGN KEY (`zoneFk`) - REFERENCES `vn`.`zone` (`id`) - ON DELETE RESTRICT - ON UPDATE CASCADE; -*/ - --- ticketCreateWithUser ----------------------------------------------------------------------- -USE `vn`; -DROP procedure IF EXISTS `ticketCreateWithUser`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketCreateWithUser`( - vClientId INT - ,vShipped DATE - ,vWarehouseFk INT - ,vCompanyFk INT - ,vAddressFk INT - ,vAgencyModeFk INT - ,vRouteFk INT - ,vlanded DATE - ,vUserId INT - ,OUT vNewTicket INT) -BEGIN - - DECLARE vCount INT; - - IF vClientId IS NULL THEN - CALL util.throw ('CLIENT_NOT_ESPECIFIED'); - END IF; - - IF NOT vAddressFk OR vAddressFk IS NULL THEN - SELECT id INTO vAddressFk - FROM address - WHERE clientFk = vClientId AND isDefaultAddress; - END IF; - - IF NOT vAgencyModeFk OR vAgencyModeFk IS NULL THEN - SELECT agencyModeFk INTO vAgencyModeFk - FROM address - WHERE clientFk = vClientId AND isDefaultAddress; - END IF; - - CALL vn.zoneGetLanded(vShipped, vAddressFk, vAgencyModeFk, vWarehouseFk); - - SELECT COUNT(*) INTO vCount FROM tmp.zoneGetLanded - WHERE landed = vlanded; - - IF vCount IS NULL OR vCount = 0 THEN - CALL util.throw ('NO_ZONE_FOR_THIS_PARAMETERS'); - END IF; - - INSERT INTO vn2008.Tickets ( - Id_Cliente, - Fecha, - Id_Consigna, - Id_Agencia, - Alias, - warehouse_id, - Id_Ruta, - empresa_id, - landing - ) - SELECT - vClientId, - vShipped, - a.id, - IF(vAgencyModeFk, vAgencyModeFk, a.agencyModeFk), - a.nickname, - vWarehouseFk, - IF(vRouteFk,vRouteFk,NULL), - vCompanyFk, - vlanded - FROM address a - JOIN agencyMode am ON am.id = a.agencyModeFk - WHERE a.id = vAddressFk; - - SET vNewTicket = LAST_INSERT_ID(); - - INSERT INTO ticketObservation(ticketFk, observationTypeFk, description) - SELECT vNewTicket, ao.observationTypeFk, ao.description - FROM addressObservation ao - JOIN address a ON a.id = ao.addressFk - WHERE a.id = vAddressFk; - - -- CALL logAddWithUser(vNewTicket, vUserId, 'insert', 'ticket', CONCAT('Ha creado el ticket', ' ', vNewTicket)); - INSERT INTO vn.ticketLog - SET originFk = vNewTicket, userFk = vUserId, `action` = 'insert', description = CONCAT('Ha creado el ticket:', ' ', vNewTicket); - - IF (SELECT ct.isCreatedAsServed FROM vn.clientType ct JOIN vn.client c ON c.typeFk = ct.code WHERE c.id = vClientId ) <> FALSE THEN - INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador) - SELECT id, vNewTicket, getWorker() - FROM state - WHERE `code` = 'DELIVERED'; - END IF; -END$$ - -DELIMITER ; - --- hasZone ----------------------------------------------------------------------- - -USE `vn`; -DROP function IF EXISTS `hasZone`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` FUNCTION `hasZone`(vLanded DATE, vAddress INT, vAgencyModeFk INT) RETURNS tinyint(1) - DETERMINISTIC -BEGIN - DECLARE vHasZone BOOLEAN DEFAULT FALSE; - DECLARE vPostalCode varchar(10); - - SELECT postalCode INTO vPostalCode - FROM address WHERE id = vAddress; - - SELECT COUNT(*), id zoneFk, isIncluded INTO vHasZone, @trash, @trash FROM ( - SELECT z.id, - TIMESTAMPADD(DAY,-z.travelingDays, vLanded) shipped, - vLanded landed, - zi.isIncluded - FROM zoneGeo zgSon - JOIN zoneGeo zgFather ON zgSon.lft BETWEEN zgFather.lft AND zgFather.rgt - JOIN zoneIncluded zi ON zi.geoFk = zgFather.id - JOIN zone z ON z.id = zi.zoneFk - JOIN zoneCalendar zc ON zc.zoneFk = z.id - AND zc.delivered = vLanded - AND z.agencyModeFk = vAgencyModeFk - AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) - ORDER BY z.id, landed ASC, zgFather.depth DESC) t - GROUP BY id - HAVING isIncluded > 0 LIMIT 1; - RETURN vHasZone; -END$$ - -DELIMITER ; - --- zoneGetShippedWarehouse ----------------------------------------------------------------------- - -USE `vn`; -DROP procedure IF EXISTS `zoneGetShippedWarehouse`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zoneGetShippedWarehouse`(vLanded DATE, vAddressFk INT, vAgencyModeFk INT) -BEGIN -/** - * Devuelve la mínima fecha de envío para cada warehouse - * - * @param vLanded La fecha de recepcion - * @param vAddressFk Id del consignatario - * @param vAgencyModeFk Id de la agencia - * @return tmp.zoneGetShipped - */ - - DECLARE vPostalCode varchar(10); - - SELECT postalCode INTO vPostalCode - FROM address WHERE id = vAddressFk; - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetShipped; - CREATE TEMPORARY TABLE tmp.zoneGetShipped - ENGINE = MEMORY - SELECT * FROM ( - SELECT z.id, - TIMESTAMPADD(DAY,-z.travelingDays, vLanded) shipped, - zi.isIncluded,z.warehouseFk - FROM zoneGeo zgSon - JOIN zoneGeo zgFather ON zgSon.lft BETWEEN zgFather.lft AND zgFather.rgt - JOIN zoneIncluded zi ON zi.geoFk = zgFather.id - JOIN zone z ON z.id = zi.zoneFk - JOIN zoneCalendar zc ON zc.zoneFk = z.id - WHERE zgSon.`name` LIKE vPostalCode - AND zc.delivered = vLanded - AND z.agencyModeFk = vAgencyModeFk - AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) - ORDER BY z.id, shipped ASC, zgFather.depth DESC) t - GROUP BY warehouseFk - HAVING isIncluded > 0; -END$$ - -DELIMITER ; - - --- bionic_calc ----------------------------------------------------------------------- - -USE `vn2008`; -DROP procedure IF EXISTS `bionic_calc`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc`( - vLanded DATE, - vAddress INT, - vAgency INT) -proc: BEGIN --- @DEPRECATED use vn.ticketCalculate - DECLARE vAvailableCalc INT; - DECLARE vShipped DATE; - DECLARE vCustomer INT; - DECLARE vWh SMALLINT; - DECLARE vDone BOOL; - DECLARE cTravelTree CURSOR FOR - SELECT warehouseFk, shipped FROM tmp.zoneGetShippedWarehouse; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - DROP TEMPORARY TABLE IF EXISTS - tmp.bionic_item, - tmp.bionic_component, - tmp.bionic_lot, - tmp.bionic_price; - - -- Establece los almacenes y las fechas que van a entrar al disponible - - SELECT Id_Cliente INTO vCustomer FROM Consignatarios WHERE Id_Consigna = vAddress; - - CALL vn.zoneGetShippedWarehouse(vLanded, vAddress, vAgency); - - -- Crea la tabla temporal que almacenará los lotes - - CREATE TEMPORARY TABLE tmp.bionic_lot LIKE - template_bionic_lot; - - OPEN cTravelTree; - - l: LOOP - SET vDone = FALSE; - FETCH cTravelTree INTO vWh, vShipped; - - IF vDone THEN - LEAVE l; - END IF; - - CALL `cache`.available_refresh (vAvailableCalc, FALSE, vWh, vShipped); - CALL item_last_buy_ (vWh, vShipped); - - INSERT INTO tmp.bionic_lot (warehouse_id, item_id, available, buy_id) - SELECT - vWh, - i.item_id, - IFNULL(i.available, 0), - ilb.buy_id - FROM `cache`.available i - JOIN tmp.bionic_calc br ON br.item_id = i.item_id - LEFT JOIN Articles a ON a.Id_Article = i.item_id - LEFT JOIN t_item_last_buy ilb ON ilb.item_id = i.item_id - WHERE i.calc_id = vAvailableCalc - AND a.Id_Article != 100 - AND i.available > 0; - - DROP TEMPORARY TABLE t_item_last_buy; - END LOOP; - - CLOSE cTravelTree; - - CALL bionic_calc_component(vAddress, vAgency); - - CREATE TEMPORARY TABLE tmp.bionic_item - ENGINE = MEMORY - SELECT b.item_id, SUM(b.available) available, p.name producer, - a.Article item, a.Medida size, a.Tallos stems, a.Categoria category, - a.Color, a.Foto image, o.Abreviatura origin, bl.min_price price - FROM tmp.bionic_lot b - JOIN Articles a ON b.item_id = a.Id_Article - LEFT JOIN producer p ON p.producer_id = a.producer_id AND p.visible - JOIN Origen o ON o.id = a.id_origen - JOIN ( - SELECT MIN(price) min_price, item_id - FROM tmp.bionic_price - GROUP BY item_id - ) bl ON bl.item_id = b.item_id - GROUP BY b.item_id; - - DROP TEMPORARY TABLE tmp.zoneGetShippedWarehouse; -END$$ - -DELIMITER ; - --- bionic_calc_component ----------------------------------------------------------------------- - -USE `vn2008`; -DROP procedure IF EXISTS `bionic_calc_component`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_component`(IN `v_consigna` INT, IN `v_agencia` INT) -proc: BEGIN - - DECLARE v_customer INT; - DECLARE COEFICIENTE_DE_INFLACION_GENERAL INT DEFAULT 1.0; - DECLARE DENSIDAD_MINIMA_PESO_VOLUMETRICO INT DEFAULT 167; - DECLARE VOLUMEN_CAJA_VERDNATURA BIGINT; -- DEFAULT 138000; - -- DECLARE vValorEmbolsado DOUBLE DEFAULT 0.04; - - SELECT Volumen INTO VOLUMEN_CAJA_VERDNATURA - FROM Cubos - WHERE Id_Cubo = '94'; - - SELECT Id_Cliente INTO v_customer FROM Consignatarios WHERE Id_Consigna = v_consigna; - SET @rate2 := 0; - SET @rate3 := 0; - - DROP TEMPORARY TABLE IF EXISTS t_bionic_temp; - CREATE TEMPORARY TABLE t_bionic_temp - (PRIMARY KEY (item_id,warehouse_id)) - ENGINE = MEMORY - SELECT - b.item_id, b.warehouse_id,available, - IF((@rate2 := IFNULL(pf.rate_2,c.Tarifa2)) < a.PVP AND a.`Min`, a.PVP, @rate2) * 1.0 rate_2, - IF((@rate3 := IFNULL(pf.rate_3,c.Tarifa3)) < a.PVP AND a.`Min`, a.PVP, @rate3) * 1.0 rate_3, - ifnull(pf.rate_3,0) AS min_price, - IFNULL(pf.Packing,c.Packing) packing, - IFNULL(pf.`grouping`,c.`grouping`) `grouping`, - ABS(IFNULL(pf.caja,c.caja)) box, - b.buy_id, a.tipo_id - FROM tmp.bionic_lot b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra - JOIN vn2008.Articles a ON b.item_id = a.Id_Article - JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id - LEFT JOIN vn2008.reinos r ON r.id = t.reino_id - LEFT JOIN vn2008.PreciosEspeciales p ON a.Id_Article = p.Id_Article AND p.Id_Cliente = v_customer - LEFT JOIN ( - SELECT * FROM ( - SELECT p.item_id, p.`grouping`, p.Packing, p.caja, p.rate_2, p.rate_3, zgs.warehouseFk AS warehouse_id - FROM vn2008.price_fixed p - JOIN tmp.zoneGetShipped zgs ON zgs.warehouseFk = p.warehouse_id OR p.warehouse_id = 0 - WHERE zgs.shipped BETWEEN p.date_start AND p.date_end ORDER BY p.item_id, p.warehouse_id DESC - ) t - GROUP BY item_id, warehouse_id - ) pf ON pf.item_id = b.item_id AND pf.warehouse_id = b.warehouse_id - -- descartamos articulos con coste menor de 0.01 - WHERE Costefijo + Portefijo + Embalajefijo + Comisionfija > 0.01 AND r.display <> 0; - - -- Creamos la tabla tmp.bionic_component - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component; - CREATE TEMPORARY TABLE tmp.bionic_component LIKE - template_bionic_component; - - -- Componentes del precio, valores absolutos - INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost) - SELECT b.warehouse_id, b.item_id, 29, rate_3 - Costefijo - Portefijo - Embalajefijo - Comisionfija - FROM t_bionic_temp b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra; - - INSERT INTO tmp.bionic_component ( warehouse_id, item_id, component_id, cost) - SELECT b.warehouse_id, b.item_id, 28, Costefijo + Portefijo + Embalajefijo + Comisionfija - FROM t_bionic_temp b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra; - - -- Ahora los valores en funcion de la base - - DROP TEMPORARY TABLE IF EXISTS t_components_base; - - CREATE TEMPORARY TABLE t_components_base - SELECT bc.item_id, ROUND(SUM(cost), 4) AS base, bc.warehouse_id - FROM tmp.bionic_component bc - GROUP BY bc.item_id,warehouse_id; - - -- La ratio se calcula teniendo en cuenta el valor de las reclamaciones y el saldo de greuge - - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, item_id, 17, ROUND(base * LEAST(recobro,0.25), 3) - FROM t_components_base cb - JOIN bi.claims_ratio ON Id_Cliente = v_customer - WHERE recobro > 0.009; - - -- PAK 2016-08-31 Componente de maná automático, en función del maná acumulado por el comercial. - - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, item_id, 39, ROUND(base * (0.01 + prices_modifier_rate), 3) as manaAuto - FROM t_components_base cb - JOIN Clientes c on c.Id_Cliente = v_customer - JOIN bs.mana_spellers ms ON c.Id_Trabajador = ms.Id_Trabajador - WHERE ms.prices_modifier_activated - AND c.Id_Trabajador != 196 -- Ruben Espinosa - HAVING manaAuto <> 0 ; - - -/* - -- Vendedor variable - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, item_id, Id_Componente, IFNULL(ROUND(base * tax,4), 0) - FROM t_components_base cb - JOIN bi.tarifa_componentes - WHERE tarifa_componentes_series_id = 2 and IFNULL(tax, 0) > 0; - */ - - --- ******* Inicio Bloque para componentes con tarifa_class diferente de NULL - -- Descuento por ultimas unidades - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, b.item_id, Id_Componente, GREATEST(IFNULL(ROUND(base * tax,4), 0), b.min_price - b.rate_3) - FROM t_components_base cb - JOIN bi.tarifa_componentes - JOIN t_bionic_temp b ON b.item_id = cb.item_id AND b.warehouse_id = cb.warehouse_id - LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id - WHERE Id_Componente = 32 AND tax <> 0 AND b.min_price < b.rate_3 AND PrecioEspecial IS NULL; - - -- Incremento por paquete suelto - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id, b.item_id, 22, rate_2 - rate_3 - FROM t_bionic_temp b - JOIN vn2008.Compres c ON b.buy_id = c.Id_Compra - LEFT JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id - WHERE PrecioEspecial IS NULL; - --- ******* Fin Bloque para componentes con tarifa_class diferente de NULL - - -- Reparto - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id - , b.item_id - , 15 - , COEFICIENTE_DE_INFLACION_GENERAL - * ROUND( - r.cm3 - * art.compression - * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1) - * IFNULL(az.price - * az.inflacion ,50) - / VOLUMEN_CAJA_VERDNATURA, 4 - ) cost - FROM t_bionic_temp b - JOIN vn2008.Articles art ON art.Id_Article = b.item_id - JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia - JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna - JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id - JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id - LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id - HAVING cost <> 0; - --- Reparto bonificado - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id - , b.item_id - , 41 - , COEFICIENTE_DE_INFLACION_GENERAL - * ROUND( - r.cm3 - * art.compression - * IF(a.Vista = 1, (GREATEST(art.density,DENSIDAD_MINIMA_PESO_VOLUMETRICO) / DENSIDAD_MINIMA_PESO_VOLUMETRICO ) , 1) - -- * awb.bonus - * az.inflacion - / VOLUMEN_CAJA_VERDNATURA, 4 - ) cost - FROM t_bionic_temp b - JOIN vn2008.Articles art ON art.Id_Article = b.item_id - JOIN vn2008.Agencias a ON a.Id_Agencia = v_agencia - JOIN vn2008.Consignatarios c ON c.Id_Consigna = v_consigna - JOIN vn2008.Agencias_province ap ON ap.agency_id = a.agency_id AND ap.warehouse_id = b.warehouse_id AND ap.province_id = c.province_id - JOIN vn2008.Agencias_zonas az ON az.Id_Agencia = v_agencia AND az.zona = ap.zona AND az.Id_Article = 71 AND az.warehouse_id = b.warehouse_id - -- JOIN vn2008.agency_weekday_bonus awb ON awb.warehouse_id = az.warehouse_id AND awb.zona = az.zona AND a.agency_id = awb.agency_id - LEFT JOIN bi.rotacion r ON r.warehouse_id = b.warehouse_id AND r.Id_Article = b.item_id - JOIN tmp.agencyHourGetShipped ah ON ah.warehouseFk = awb.warehouse_id AND weekday(ah.landed) = awb.weekDay - HAVING cost <> 0 - LIMIT 1; - --- PAK 12-05-2015 - -- EMBOLSADO - IF (SELECT COUNT(*) FROM vn.addressForPackaging WHERE addressFk = v_consigna) THEN - - -- IF v_consigna IN (13690, 3402, 5661, 4233) THEN - - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id, b.item_id, 38, ap.packagingValue cost - FROM t_bionic_temp b - JOIN vn.addressForPackaging ap - WHERE ap.addressFk = v_consigna; - - END IF; - - -- JGF 14-08-2015 - -- Modificacion de precio por dia de preparacion del pedido - INSERT INTO tmp.bionic_component - SELECT cb.warehouse_id, cb.item_id, 14, cb.base * (IFNULL(pe.percentage,pp.percentage)/100) - FROM t_components_base cb - JOIN tmp.agencyHourGetShipped ah ON ah.warehouseFk = cb.warehouse_id - LEFT JOIN vn2008.preparation_percentage pp ON pp.week_day = weekday(ah.shipped) AND cb.warehouse_id = IFNULL(pp.warehouse_id,cb.warehouse_id) - LEFT JOIN vn2008.preparation_exception pe ON pe.exception_day = ah.shipped AND cb.warehouse_id = IFNULL(pe.warehouse_id,cb.warehouse_id) - WHERE IFNULL(pe.percentage,pp.percentage); - - -- Creamos la tabla tmp.bionic_component_copy por que mysql no puede reabrir una tabla temporal - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_component_copy; - CREATE TEMPORARY TABLE tmp.bionic_component_copy - SELECT * FROM tmp.bionic_component; - - -- JGF 19-01-2016 - -- Precios especiales - INSERT INTO tmp.bionic_component - SELECT b.warehouse_id, b.item_id, 10, pe.PrecioEspecial - SUM(cost) sum_cost - FROM tmp.bionic_component_copy b - JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente - JOIN PreciosEspeciales pe ON pe.Id_Cliente = v_customer AND pe.Id_Article = b.item_id - WHERE t.tarifa_class IS NULL - GROUP BY b.item_id, b.warehouse_id - HAVING ABS(sum_cost) > 0.001; - - -- Lotes - DROP TEMPORARY TABLE IF EXISTS t_component_sum; - CREATE TEMPORARY TABLE t_component_sum - (INDEX (item_id, warehouse_id)) - ENGINE = MEMORY - SELECT SUM(cost) sum_cost, b.item_id, b.warehouse_id, t.tarifa_class - FROM tmp.bionic_component b - JOIN bi.tarifa_componentes t ON b.component_id = t.Id_Componente - GROUP BY b.item_id, b.warehouse_id, t.tarifa_class; - - -- ***** Inicia Modifica t_bionic_rate las diferentes tarifas - -- Tarifa por unidad minima - DROP TEMPORARY TABLE IF EXISTS t_bionic_rate; - CREATE TEMPORARY TABLE t_bionic_rate - ENGINE = MEMORY - SELECT b.warehouse_id, item_id, 1 rate, - IF(box = 1, `grouping`, 1) `grouping`, SUM(sum_cost) price - FROM t_bionic_temp b - JOIN t_component_sum cs USING(item_id, warehouse_id) - WHERE IFNULL(cs.tarifa_class,1) = 1 AND box < 2 AND (packing > `grouping` or box = 0) - GROUP BY warehouse_id, item_id; - - -- Tarifa por caja - INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, `grouping`, price) - SELECT b.warehouse_id, item_id, 2 rate, packing `grouping`, - SUM(sum_cost) price - FROM t_bionic_temp b - JOIN t_component_sum cs USING(item_id, warehouse_id) - WHERE available IS NULL OR (IFNULL(cs.tarifa_class,2) = 2 AND packing > 0 AND available >= packing) - GROUP BY warehouse_id, item_id; - - -- Tarifa para toda la cantidad disponible - INSERT INTO t_bionic_rate (warehouse_id, item_id, rate, `grouping`, price) - SELECT b.warehouse_id, item_id, 3 rate, available `grouping`, - SUM(sum_cost) price - FROM t_bionic_temp b - JOIN t_component_sum cs USING(item_id, warehouse_id) - WHERE IFNULL(cs.tarifa_class,3) = 3 - GROUP BY warehouse_id, item_id; - - -- ***** Fin Modifica t_bionic_rate las diferentes tarifas - - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_price; - CREATE TEMPORARY TABLE tmp.bionic_price - LIKE template_bionic_price; - - INSERT INTO tmp.bionic_price (warehouse_id, item_id, rate, `grouping`, price) - SELECT * FROM ( - SELECT * FROM t_bionic_rate ORDER BY price - ) t - GROUP BY item_id, warehouse_id, `grouping`; - - - DROP TEMPORARY TABLE IF EXISTS tmp.travel_tree; - CREATE TEMPORARY TABLE tmp.travel_tree - ENGINE = MEMORY - SELECT * FROM tmp.agencyHourGetShipped; - - -- Limpieza - - DROP TEMPORARY TABLE tmp.agencyHourGetShipped; - DROP TEMPORARY TABLE t_bionic_temp; - DROP TEMPORARY TABLE t_component_sum; - DROP TEMPORARY TABLE t_components_base; - DROP TEMPORARY TABLE t_bionic_rate; - DROP TEMPORARY TABLE tmp.bionic_component_copy; -END$$ - -DELIMITER ; - -/* -- bionic_from_ticket ----------------------------------------------------------------------- -USE `vn2008`; -DROP procedure IF EXISTS `bionic_from_ticket`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_from_ticket`( - -- DEPRECATED use vn.ticketComponentPreview - vLanded DATE, -- fecha de recepcion de mercancia - v_consigna INT, - v_agencia INT, - v_ticket INT) -BEGIN - DECLARE vWarehouseFk INT; - DECLARE vShipped DATE; - - SELECT warehouse_id INTO vWarehouseFk FROM Tickets WHERE Id_Ticket = v_ticket; - - CALL bionic_free(); - CALL vn.zoneGetShippedWarehouse(vLanded,v_consigna, v_agencia); - - SELECT shipped INTO vShipped FROM tmp.zoneGetShipped WHERE warehouseFk = vWarehouseFk; - - CALL item_last_buy_ (vWarehouseFk, vShipped); - - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_lot; - CREATE TEMPORARY TABLE tmp.bionic_lot - SELECT ilb.warehouse_id, NULL available, - m.Id_Article item_id, ilb.buy_id - FROM Movimientos m - LEFT JOIN t_item_last_buy ilb ON ilb.item_id = m.Id_Article - WHERE m.Id_Ticket = v_ticket - AND m.Id_Article != 100 - GROUP BY warehouse_id, item_id; - - DROP TEMPORARY TABLE t_item_last_buy; - - CALL bionic_calc_component ( v_consigna, v_agencia); - - REPLACE INTO tmp.bionic_component (warehouse_id, item_id, component_id, cost) - SELECT t.warehouse_id, m.Id_Article, mc.Id_Componente, mc.Valor - FROM Movimientos_componentes mc - JOIN Movimientos m ON m.Id_Movimiento = mc.Id_Movimiento - JOIN Tickets t ON t.Id_Ticket = m.Id_Ticket - JOIN tarifa_componentes tc ON tc.Id_componente = mc.Id_Componente - WHERE m.Id_Ticket = v_ticket AND tc.is_renewable = FALSE; - - -- para recuperar el shipment en caso de que se necesite - - SET @shipment = vShipped; - DROP TEMPORARY TABLE tmp.bionic_lot; - - IF IFNULL(vShipped,CURDATE() - 1) < CURDATE() THEN - SIGNAL SQLSTATE '45000' - SET MESSAGE_TEXT = 'No se puede realizar el cambio'; - END IF; -END$$ - -DELIMITER ; - */ --- ticketCalculate ---------------------------------------------------------------------- - -USE `vn`; -DROP procedure IF EXISTS `ticketCalculate`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculate`( - vLanded DATE, - vAddressFk INT, - vAgencyModeFk INT) -proc: BEGIN -/** - * Calcula los articulos disponibles y sus precios - * - * @table tmp.item(itemFk) Listado de artículos a calcular - * @param vLanded Fecha de recepcion de mercancia - * @param vAddressFk Id del consignatario - * @param vAgencyModeFk Id de la agencia - * @return tmp.ticketCalculateItem(itemFk, available, producer, - * item, size, stems, category, inkFk, image, origin, price) - * @return tmp.ticketLot(warehouseFk, itemFk, available, buyFk) - * @return tmp.ticketComponent - * @return tmp.ticketComponentPrice - * @return tmp.zoneGetShipped - - **/ - - DECLARE vAvailableCalc INT; - DECLARE vShipment DATE; - DECLARE vClient INT; - DECLARE vWarehouseFk SMALLINT; - DECLARE vDone BOOL; - DECLARE cTravelTree CURSOR FOR - SELECT warehouseFk, shipped FROM tmp.zoneGetShipped; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - -- Establece los almacenes y las fechas que van a entrar al disponible - - SELECT clientFk INTO vClient - FROM address WHERE id = vAddressFk; - - CALL vn.zoneGetShippedWarehouse(vLanded, vAddressFk, vAgencyModeFk); - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; - CREATE TEMPORARY TABLE tmp.ticketLot( - `warehouseFk` smallint(5) unsigned NOT NULL, - `itemFk` int(11) NOT NULL, - `available` double DEFAULT NULL, - `buyFk` int(11) DEFAULT NULL, - `fix` tinyint(3) unsigned DEFAULT '0', - KEY `itemFk` (`itemFk`), - KEY `item_warehouse` (`itemFk`,`warehouseFk`) USING HASH - ) ENGINE=MEMORY DEFAULT CHARSET=utf8; - - OPEN cTravelTree; - - l: LOOP - SET vDone = FALSE; - FETCH cTravelTree INTO vWarehouseFk, vShipment; - - IF vDone THEN - LEAVE l; - END IF; - - CALL `cache`.available_refresh (vAvailableCalc, FALSE, vWarehouseFk, vShipment); - CALL buyUltimate (vWarehouseFk, vShipment); - - INSERT INTO tmp.ticketLot (warehouseFk, itemFk, available, buyFk) - SELECT vWarehouseFk, - i.item_id, - IFNULL(i.available, 0), - bu.buyFk - FROM `cache`.available i - JOIN tmp.item br ON br.itemFk = i.item_id - LEFT JOIN item it ON it.id = i.item_id - LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = i.item_id - WHERE i.calc_id = vAvailableCalc - AND it.id != 100 - AND i.available > 0; - - DROP TEMPORARY TABLE tmp.buyUltimate; - END LOOP; - - CLOSE cTravelTree; - - CALL vn.ticketComponentCalculate(vAddressFk, vAgencyModeFk); - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketCalculateItem; - CREATE TEMPORARY TABLE tmp.ticketCalculateItem - ENGINE = MEMORY - SELECT - b.itemFk, - SUM(b.available) available, - p.name producer, - i.name item, - i.size size, - i.stems, - i.category, - i.inkFk, - i.image, - o.code origin, bl.price - FROM tmp.ticketLot b - JOIN item i ON b.itemFk = i.id - LEFT JOIN producer p ON p.id = i.producerFk AND p.isVisible - JOIN origin o ON o.id = i.originFk - JOIN ( - SELECT MIN(price) price, itemFk - FROM tmp.ticketComponentPrice - GROUP BY itemFk - ) bl ON bl.itemFk = b.itemFk - GROUP BY b.itemFk; - -END$$ - -DELIMITER ; - --- ticketCalculateSale ---------------------------------------------------------------------- - -USE `vn`; -DROP procedure IF EXISTS `ticketCalculateSale`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculateSale`(IN vSale BIGINT) -proc: BEGIN - - DECLARE vShipped DATE; - DECLARE vWarehouse SMALLINT; - DECLARE vAgencyMode INT; - DECLARE vAddress INT; - DECLARE vTicket BIGINT; - DECLARE vItem BIGINT; - DECLARE vLanded DATE; - DECLARE vTicketFree BOOLEAN DEFAULT TRUE; - - SELECT FALSE - INTO vTicketFree - FROM vn.ticket t - JOIN vn.sale s ON s.ticketFk = t.id - LEFT JOIN vn.ticketState ts ON ts.ticketFk = t.id - WHERE s.id = vSale - AND (t.refFk != "" OR (ts.alertLevel > 0 AND s.price != 0)) - LIMIT 1; - - SELECT ticketFk, itemFk - INTO vTicket, vItem - FROM sale - WHERE id = vSale; - - SELECT t.warehouseFk, DATE(t.shipped), t.addressFk, t.agencyModeFk, t.landed - INTO vWarehouse, vShipped, vAddress, vAgencyMode, vLanded - FROM agencyMode a - JOIN ticket t ON t.agencyModeFk = a.id - WHERE t.id = vTicket; - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetShipped; - CREATE TEMPORARY TABLE tmp.zoneGetShipped ENGINE = MEMORY - SELECT vWarehouse warehouseFk, vShipped shipped, vLanded landed; - - CALL buyUltimate (vWarehouse, vShipped); - - DELETE FROM tmp.buyUltimate WHERE itemFk != vItem; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; - CREATE TEMPORARY TABLE tmp.ticketLot - SELECT vWarehouse warehouseFk, NULL available, vItem itemFk, buyFk - FROM tmp.buyUltimate - WHERE itemFk = vItem; - - CALL ticketComponentCalculate(vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.sale; - CREATE TEMPORARY TABLE tmp.sale - (PRIMARY KEY (saleFk)) ENGINE = MEMORY - SELECT vSale saleFk,vWarehouse warehouseFk; - - CALL ticketComponentUpdateSale(IF(vTicketFree,1,6)); - - INSERT INTO vn.ticketLog (originFk, userFk, `action`, description) - VALUES (vTicket, account.userGetId(), 'update', CONCAT('Bionizo linea id ', vSale)); - - DROP TEMPORARY TABLE tmp.buyUltimate; -END$$ - -DELIMITER ; - --- zoneGetAgency --------------------------------------------------------------------------------- -USE `vn`; -DROP procedure IF EXISTS `zoneGetAgency`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `zoneGetAgency`(vAddress INT, vLanded DATE) -BEGIN -/** - * Devuelve el listado de agencias disponibles para la fecha - * y dirección pasadas. - * - * @param vAddress Id de dirección de envío, %NULL si es recogida - * @param vDate Fecha de recogida - * @select Listado de agencias disponibles - */ - - DECLARE vPostalCode varchar(10); - - SELECT postalCode INTO vPostalCode - FROM address WHERE id = vAddress; - - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGetAgency; - CREATE TEMPORARY TABLE tmp.zoneGetAgency - (INDEX (agencyModeFk)) ENGINE = MEMORY - SELECT * FROM ( - SELECT am.id agencyModeFk, - am.name agencyMode, - am.description, - am.deliveryMethodFk, - TIMESTAMPADD(DAY,-z.travelingDays, vLanded) shipped, - zi.isIncluded, - z.warehouseFk - FROM zoneGeo zgSon - JOIN zoneGeo zgFather ON zgSon.lft BETWEEN zgFather.lft AND zgFather.rgt - JOIN zoneIncluded zi ON zi.geoFk = zgFather.id - JOIN zone z ON z.id = zi.zoneFk - JOIN zoneCalendar zc ON zc.zoneFk = z.id - JOIN agencyMode am ON am.id = z.agencyModeFk - WHERE zgSon.`name` LIKE vPostalCode - AND zc.delivered = vLanded - AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) - ORDER BY zgFather.depth DESC) t - GROUP BY agencyModeFk - HAVING isIncluded > 0; - -END$$ - -DELIMITER ; - --- bionic_available_type_filters --------------------------------------------------------------------- -USE `vn2008`; -DROP procedure IF EXISTS `bionic_available_types_filter`; - -DELIMITER $$ - -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_types_filter`( - v_date DATE, - v_consigna INT, - v_agencia INT) -BEGIN -/** - * Este procedimiento devuelve una tabla t_bionic_available_types - * que debe de ser borrar por quien la llame, y se conecta con la tabla articlelist - * que tambien hay que eliminar. - * - * @param vDatefecha de recepcion de mercancia - * @table t_bionic_available_types - */ - - CALL vn.ticketCalculate(v_date, v_consigna, v_agencia); - - -- Introducimos los valores en una tabla temporal - DROP TEMPORARY TABLE IF EXISTS t_bionic_available_types; - - CALL check_table_existence('articlelist'); - - IF @table_exists THEN - call util.throw('No usar articlelist'); - -- SET v_list = 'JOIN vn2008.articlelist AL ON AL.Id_Article = a.Id_Article '; - END IF; - - CREATE TEMPORARY TABLE t_bionic_available_types - SELECT a.tipo_id, t.Tipo, r.reino, count(*) as item_count - FROM tmp.ticketCalculateItem tci - JOIN vn2008.Articles a ON tci.itemFk = a.Id_Article - JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id - JOIN vn2008.reinos r ON r.id = t.reino_id - WHERE tci.available > 0 - GROUP BY a.tipo_id; - - DROP TEMPORARY TABLE tmp.ticketCalculateItem; -END$$ - -DELIMITER ; --- ticketCalculateFromType --------------------------------------------------------------------- -USE `vn`; -DROP procedure IF EXISTS `ticketCalculateFromType`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculateFromType`( vLanded DATE, - vAddressFk INT, - vAgencyModeFk INT, - vTypeFk INT) -BEGIN - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - (INDEX (itemFk)) - ENGINE = MEMORY - SELECT id itemFk FROM vn.item - WHERE typeFk = vTypeFk; - - CALL ticketCalculate(vLanded, vAddressFk, vAgencyModeFk); - DROP TEMPORARY TABLE tmp.item; - DROP TEMPORARY TABLE tmp.ticketLot; - -END$$ - -DELIMITER ; - --- order_confirmWithUser` --------------------------------------------------------------------- - -USE `hedera`; -DROP PROCEDURE IF EXISTS `orderConfirm`; -DROP procedure IF EXISTS `order_confirm_bionic`; -DROP procedure IF EXISTS `orderConfirmWithUser`; - -DROP procedure IF EXISTS `order_confirmWithUser`; -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `order_confirmWithUser`(IN `vOrder` INT, IN `vUserId` INT) -BEGIN -/** - * Confirms an order, creating each of its tickets on the corresponding - * date, store and user. - * - * @param vOrder The order identifier - * @param vUser The user identifier - */ - DECLARE vOk BOOL; - DECLARE vDone BOOL DEFAULT FALSE; - DECLARE vWarehouse INT; - DECLARE vShipment DATETIME; - DECLARE vTicket INT; - DECLARE vNotes VARCHAR(255); - DECLARE vItem INT; - DECLARE vConcept VARCHAR(30); - DECLARE vAmount INT; - DECLARE vPrice DECIMAL(10,2); - DECLARE vSale INT; - DECLARE vRate INT; - DECLARE vRowId INT; - DECLARE vDelivery DATE; - DECLARE vAddress INT; - DECLARE vIsConfirmed BOOL; - DECLARE vClientId INT; - DECLARE vCompanyId INT; - DECLARE vAgencyModeId INT; - - DECLARE TICKET_FREE INT DEFAULT 2; - DECLARE SYSTEM_WORKER INT DEFAULT 20; - - DECLARE cDates CURSOR FOR - SELECT zgs.shipped, r.warehouse_id - FROM `order` o - JOIN order_row r ON r.order_id = o.id - LEFT JOIN tmp.zoneGetShipped zgs ON zgs.warehouseFk = r.warehouse_id - WHERE o.id = vOrder AND r.amount != 0 - GROUP BY r.warehouse_id; - - DECLARE cRows CURSOR FOR - SELECT r.id, r.item_id, a.Article, r.amount, r.price, r.rate - FROM order_row r - JOIN vn2008.Articles a ON a.Id_Article = r.item_id - WHERE r.amount != 0 - AND r.warehouse_id = vWarehouse - AND r.order_id = vOrder - ORDER BY r.rate DESC; - - DECLARE CONTINUE HANDLER FOR NOT FOUND - SET vDone = TRUE; - - DECLARE EXIT HANDLER FOR SQLEXCEPTION - BEGIN - ROLLBACK; - RESIGNAL; - END; - - -- Carga los datos del pedido - - SELECT o.date_send, o.address_id, o.note, - o.confirmed, cs.Id_Cliente, o.company_id, o.agency_id - INTO vDelivery, vAddress, vNotes, - vIsConfirmed, vClientId, vCompanyId, vAgencyModeId - FROM hedera.`order` o - JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = o.address_id - WHERE id = vOrder; - - -- Comprueba que el pedido no está confirmado - - IF vIsConfirmed THEN - CALL util.throw ('ORDER_ALREADY_CONFIRMED'); - END IF; - - -- Comprueba que el pedido no está vacío - - SELECT COUNT(*) > 0 INTO vOk - FROM order_row WHERE order_id = vOrder AND amount > 0; - - IF !vOk THEN - CALL util.throw ('ORDER_EMPTY'); - END IF; - - -- Carga las fechas de salida de cada almacén - - CALL vn.zoneGetShippedWarehouse (vDelivery, vAddress, vAgencyModeId); - - -- Trabajador que realiza la acción - - IF vUserId IS NULL THEN - SELECT employeeFk INTO vUserId FROM orderConfig; - END IF; - - -- Crea los tickets del pedido - - START TRANSACTION; - - OPEN cDates; - - lDates: - LOOP - SET vTicket = NULL; - SET vDone = FALSE; - FETCH cDates INTO vShipment, vWarehouse; - - IF vDone THEN - LEAVE lDates; - END IF; - - -- Busca un ticket existente que coincida con los parametros - - SELECT Id_Ticket INTO vTicket - FROM vn2008.Tickets t - LEFT JOIN vn.ticketState tls on tls.ticket = t.Id_Ticket - JOIN `order` o - ON o.address_id = t.Id_Consigna - AND vWarehouse = t.warehouse_id - AND o.agency_id = t.Id_Agencia - AND t.landing = o.date_send - AND vShipment = DATE(t.Fecha) - WHERE o.id = vOrder - AND t.Factura IS NULL - AND IFNULL(tls.alertLevel,0) = 0 - AND t.Id_Cliente <> 1118 - LIMIT 1; - - -- Crea el ticket en el caso de no existir uno adecuado - - IF vTicket IS NULL - THEN - CALL vn.ticketCreateWithUser( - vClientId, - IFNULL(vShipment, CURDATE()), - vWarehouse, - vCompanyId, - vAddress, - vAgencyModeId, - NULL, - vDelivery, - vUserId, - vTicket - ); - ELSE - INSERT INTO vncontrol.inter - SET Id_Ticket = vTicket, - Id_Trabajador = SYSTEM_WORKER, - state_id = TICKET_FREE; - END IF; - - INSERT IGNORE INTO vn2008.order_Tickets - SET order_id = vOrder, - Id_Ticket = vTicket; - - -- Añade las notas - - IF vNotes IS NOT NULL AND vNotes != '' - THEN - INSERT INTO vn2008.ticket_observation SET - Id_Ticket = vTicket, - observation_type_id = 4 /* salesperson */, - `text` = vNotes - ON DUPLICATE KEY UPDATE - `text` = CONCAT(VALUES(`text`),'. ', `text`); - END IF; - - -- Añade los movimientos y sus componentes - - OPEN cRows; - - lRows: - LOOP - SET vDone = FALSE; - FETCH cRows INTO vRowId, vItem, vConcept, vAmount, vPrice, vRate; - - IF vDone THEN - LEAVE lRows; - END IF; - - INSERT INTO vn2008.Movimientos - SET - Id_Article = vItem, - Id_Ticket = vTicket, - Concepte = vConcept, - Cantidad = vAmount, - Preu = vPrice, - CostFixat = 0, - PrecioFijado = TRUE; - - SET vSale = LAST_INSERT_ID(); - - INSERT INTO vn2008.Movimientos_componentes - (Id_Movimiento, Id_Componente, Valor) - SELECT vSale, cm.component_id, cm.price - FROM order_component cm - JOIN bi.tarifa_componentes tc - ON tc.Id_Componente = cm.component_id - WHERE cm.order_row_id = vRowId - GROUP BY vSale, cm.component_id; - - UPDATE order_row SET Id_Movimiento = vSale - WHERE id = vRowId; - - END LOOP; - - CLOSE cRows; - - -- Fija el coste - - DROP TEMPORARY TABLE IF EXISTS tComponents; - CREATE TEMPORARY TABLE tComponents - (INDEX (saleFk)) - ENGINE = MEMORY - SELECT SUM(mc.Valor) valueSum, mc.Id_Movimiento saleFk - FROM vn2008.Movimientos_componentes mc - JOIN bi.tarifa_componentes tc USING(Id_Componente) - JOIN bi.tarifa_componentes_series tcs - ON tcs.tarifa_componentes_series_id = tc.tarifa_componentes_series_id - AND tcs.base - JOIN vn2008.Movimientos m - ON m.Id_Movimiento = mc.Id_Movimiento - WHERE m.Id_Ticket = vTicket - GROUP BY mc.Id_Movimiento; - - UPDATE vn2008.Movimientos m - JOIN tComponents mc ON mc.saleFk = m.Id_Movimiento - SET m.CostFixat = valueSum; - - DROP TEMPORARY TABLE tComponents; - END LOOP; - - CLOSE cDates; - - DELETE FROM basketOrder WHERE orderFk = vOrder; - UPDATE `order` SET confirmed = TRUE, confirm_date = NOW() - WHERE id = vOrder; - - COMMIT; -END$$ - -DELIMITER ; - --- orderConfirmWithUser` --------------------------------------------------------------------- - -USE `vn`; -DROP procedure IF EXISTS `vn`.`agencyHourGetAgency`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `agencyHourGetAgencyKk`(vAddress INT, vDate DATE) -BEGIN -/** - * DEPRECATED usar zoneGetAgency - * Devuelve el listado de agencias disponibles para la fecha - * y dirección pasadas. - * - * @param vAddress Id de dirección de envío, %NULL si es recogida - * @param vDate Fecha de recogida - * @table agencyModeList Listado de agencias disponibles - */ - DECLARE vAgency INT; - DECLARE vDone BOOL DEFAULT FALSE; - - DECLARE vCur CURSOR FOR - SELECT DISTINCT a.id - FROM agency a - JOIN agencyHour ah ON ah.agencyFk = a.id; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - DROP TEMPORARY TABLE IF EXISTS agencyModeList; - CREATE TEMPORARY TABLE agencyModeList ( - id INT NOT NULL, - agency VARCHAR(20), - description VARCHAR(45), - deliveryMethodFk VARCHAR(45), - shipped DATE, - warehouse VARCHAR(45), - PRIMARY KEY(id) - ) - ENGINE = MEMORY; - - OPEN vCur; - FETCH vCur INTO vAgency; - - WHILE NOT vDone - DO - CALL vn.agencyHourGetShipped(vDate, vAddress, vAgency); - INSERT INTO agencyModeList - SELECT a.id, a.name, a.description, - a.deliveryMethodFk, ah.shipped, w.name - FROM agencyMode a - JOIN tmp.agencyHourGetShipped ah - JOIN warehouse w on w.id = ah.warehouseFk - WHERE a.agencyFk = vAgency - AND a.web - ON DUPLICATE KEY UPDATE - warehouse = CONCAT(warehouse, ', ', w.name); - - FETCH vCur INTO vAgency; - END WHILE; - - CLOSE vCur; - - DROP TEMPORARY TABLE tmp.agencyHourGetShipped; - SELECT * FROM agencyModeList; - DROP TEMPORARY TABLE IF EXISTS agencyModeList; -END$$ - -DELIMITER ; - --- ticketComponentPreview` --------------------------------------------------------------------- -USE `vn`; -DROP procedure IF EXISTS `ticketComponentPreview`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketComponentPreview`( - vTicketFk INT, - vLanded DATE, - vAddressFk INT, - vAgencyModeFk INT, - vWarehouseFk SMALLINT) -BEGIN - - DECLARE vShipped DATE; - DECLARE vBuyOrderItem INT DEFAULT 100; - - DECLARE vHasDataChanged BOOL DEFAULT FALSE; - DECLARE vHasAddressChanged BOOL; - DECLARE vHasAgencyModeChanged BOOL DEFAULT FALSE; - DECLARE vHasWarehouseChanged BOOL DEFAULT FALSE; - - DECLARE vAddressTypeRateFk INT DEFAULT NULL; - DECLARE vAgencyModeTypeRateFk INT DEFAULT NULL; - - DECLARE vHasChangeAll BOOL DEFAULT FALSE; - - SELECT DATE(landed) <> vLanded, - addressFk <> vAddressFk, - agencyModeFk <> vAgencyModeFk, - warehouseFk <> vWarehouseFk - INTO - vHasDataChanged, - vHasAddressChanged, - vHasAgencyModeChanged, - vHasWarehouseChanged - FROM vn.ticket t - WHERE t.id = vTicketFk; - - IF vHasDataChanged OR vHasWarehouseChanged THEN - SET vHasChangeAll = TRUE; - END IF; - - IF vHasAddressChanged THEN - SET vAddressTypeRateFk = 5; - END IF; - - IF vHasAgencyModeChanged THEN - SET vAgencyModeTypeRateFk = 6; - END IF; - - CALL zoneGetShippedWarehouse(vLanded, vAddressFk, vAgencyModeFk); - - SELECT shipped INTO vShipped - FROM tmp.zoneGetShipped - WHERE warehouseFk = vWarehouseFk; - - CALL buyUltimate(vWarehouseFk, vShipped); - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; - CREATE TEMPORARY TABLE tmp.ticketLot ENGINE = MEMORY ( - SELECT - vWarehouseFk AS warehouseFk, - NULL AS available, - s.itemFk, - bu.buyFk - FROM sale s - LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk - WHERE s.ticketFk = vTicketFk - AND s.itemFk != vBuyOrderItem - GROUP BY bu.warehouseFk, bu.itemFk); - - CALL ticketComponentCalculate(vAddressFk, vAgencyModeFk); - - REPLACE INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost) - SELECT t.warehouseFk, s.itemFk, sc.componentFk, sc.value - FROM saleComponent sc - JOIN sale s ON s.id = sc.saleFk - JOIN ticket t ON t.id = s.ticketFk - JOIN componentRate cr ON cr.id = sc.componentFk - WHERE s.ticketFk = vTicketFk - AND (cr.isRenewable = FALSE - OR - (NOT vHasChangeAll - AND (NOT (cr.componentTypeRate <=> vAddressTypeRateFk - OR cr.componentTypeRate <=> vAgencyModeTypeRateFk)))); - - SET @shipped = vShipped; - - DROP TEMPORARY TABLE - tmp.zoneGetShipped, - tmp.buyUltimate, - tmp.ticketLot; - - IF IFNULL(vShipped, CURDATE() - 1) < CURDATE() THEN - CALL util.throw('NO_AGENCY_AVAILABLE'); - END IF; -END$$ - -DELIMITER ; - --- orderCheckConfig` --------------------------------------------------------------------- - -USE `hedera`; -DROP procedure IF EXISTS `orderCheckConfig`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `orderCheckConfig`(vOrder INT) -proc: BEGIN -/** - * Comprueba que la configuración del pedido es correcta. - * - * @param vOrder Identificador del pedido - */ - DECLARE vDeliveryMethod VARCHAR(255); - DECLARE vLanded DATE; - DECLARE vAgencyMode INT; - DECLARE vAddress INT; - DECLARE vIsAvailable BOOL; - - -- Obtiene los datos del pedido - - SELECT d.code, o.date_send, o.agency_id, o.address_id - INTO vDeliveryMethod, vLanded, vAgencyMode, vAddress - FROM `order` o - JOIN vn.deliveryMethod d ON d.id = o.delivery_method_id - WHERE o.id = vOrder; - - -- Comprueba que se ha seleccionado una dirección - - IF vDeliveryMethod IN ('AGENCY', 'DELIVERY') - && vAddress IS NULL - THEN - CALL util.throw ('ORDER_EMPTY_ADDRESS'); - END IF; - - -- Comprueba que la agencia es correcta - - CALL vn.zoneGetAgency(vAddress, vLanded); - - SELECT COUNT(*) > 0 INTO vIsAvailable - FROM tmp.zoneGetAgency - WHERE agencyModeFk = vAgencyMode; - - IF !vIsAvailable THEN - CALL util.throw ('ORDER_INVALID_AGENCY'); - END IF; - - DROP TEMPORARY TABLE tmp.zoneGetAgency; -END$$ - -DELIMITER ; - --- agencyListAvailable` --------------------------------------------------------------------- - -DROP procedure IF EXISTS `vn`.`agencyListAvailable`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`__agencyListAvailable`(vDate DATE, vAddress INT) - READS SQL DATA -BEGIN -/** - * DEPRECATED usar zoneGetAgency - * Devuelve la lista de almacenes disponibles y la fecha de - * envío desde cada uno. - * - * @param vDate Fecha de recepción de mercancía - * @param vAddress Id consignatario, %NULL para recogida - * @return agencyAvailable Lista de almacenes disponibles - */ - DECLARE vMaxDays INT DEFAULT DATEDIFF(vDate, CURDATE()); - DECLARE vWday TINYINT DEFAULT WEEKDAY(vDate); - DECLARE vHour TINYINT DEFAULT HOUR(NOW()); - DECLARE vProvince INT; - - SELECT provinceFk INTO vProvince - FROM address - WHERE id = vAddress; - - DROP TEMPORARY TABLE IF EXISTS tmp.agencyAvailable; - CREATE TEMPORARY TABLE tmp.agencyAvailable - (INDEX (agencyFk)) - ENGINE = MEMORY - SELECT agencyFk, warehouseFk - FROM agencyHour h - WHERE (provinceFk = vProvince - OR provinceFk IS NULL) - AND (weekDay = vWday - OR weekDay IS NULL) - AND (substractDay < vMaxDays - OR (substractDay = vMaxDays AND maxHour > vHour)); -END$$ -DELIMITER ; - --- agencyIsAvailable` --------------------------------------------------------------------- - -DROP function IF EXISTS `vn`.`agencyIsAvailable`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` FUNCTION `vn`.`__agencyIsAvailable`(vAgency INT, vDate DATE, vAddress INT) - RETURNS tinyint(1) - READS SQL DATA -BEGIN -/** - * Comprueba si la agencia esta disponible para la fecha y - * dirección dadas, es decir, si es posible enviar mercancía - * desde al menos uno de los almacenes por la agencia, fecha - * y direcciones especificadas. - * - * @param vAgency Id de agencia - * @param vDate Fecha de recepción de mercancía - * @param vAddress Id consignatario, %NULL para recogida - * @return %TRUE si la agencia esta disponible, %FALSE en caso contrario - */ - DECLARE vMaxDays INT DEFAULT DATEDIFF(vDate, CURDATE()); - DECLARE vWday TINYINT DEFAULT WEEKDAY(vDate); - DECLARE vHour TINYINT DEFAULT HOUR(NOW()); - DECLARE vProvince INT; - DECLARE isAvailable BOOL; - - SELECT provinceFk INTO vProvince - FROM address - WHERE id = vAddress; - - SELECT COUNT(*) > 0 INTO isAvailable - FROM agencyHour h - JOIN agencyMode a - ON a.agencyFk = h.agencyFk - WHERE (h.provinceFk = vProvince - OR h.provinceFk IS NULL) - AND (h.weekDay = vWday - OR h.weekDay IS NULL) - AND (h.substractDay < vMaxDays - OR (h.substractDay = vMaxDays AND h.maxHour > vHour)) - AND a.id = vAgency; - - RETURN isAvailable; -END$$ -DELIMITER ; - --- ticket_recalcComponents` --------------------------------------------------------------------- - -USE `vn2008`; -DROP procedure IF EXISTS `vn2008`.`bionic_calc_ticket`; -USE `vn`; -DROP procedure IF EXISTS `ticket_recalcComponents`; - -USE `vn`; -DROP procedure IF EXISTS `ticket_recalcComponents`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticket_recalcComponents`(IN vTicketFk BIGINT ) -proc: BEGIN - -/** - * Este procedimiento trata de "rebionizar" un ticket, - * eliminando los componentes existentes e insertandolos de nuevo - * - * @param vTicketFk Id del ticket - * @return tmp.buyUltimate - */ - DECLARE vShipped DATE; - DECLARE vWarehouseFk SMALLINT; - DECLARE vAgencyModeFk INT; - DECLARE vAddressFk INT; - DECLARE vLanded DATE; - DECLARE vIsTicketEditable BOOLEAN; - - SELECT (IFNULL(ts.alertLevel,0) >0 or IFNULL(t.refFk,"") != "") = FALSE - INTO vIsTicketEditable - FROM ticket t LEFT JOIN ticketState ts ON t.id = ts.ticket - WHERE id = vTicketFk; - - SELECT warehouseFk, date(shipped), addressFk, agencyModeFk, landed - INTO vWarehouseFk, vShipped, vAddressFk, vAgencyModeFk, vLanded - FROM ticket - WHERE id = vTicketFk; - - CALL zoneGetShippedWarehouse(vLanded, vAddressFk , vAgencyModeFk); - - CALL vn.buyUltimate (vWarehouseFk, vShipped); -- rellena la tabla buyUltimate con la ultima compra - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; - CREATE TEMPORARY TABLE tmp.ticketLot - SELECT vWarehouseFk warehouseFk, NULL available, - s.itemFk, bu.buyFk - FROM sale s - LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk - WHERE s.ticketFk = vTicketFk - GROUP BY s.itemFk; - - CALL vn.ticketComponentCalculate(vAddressFk,vAgencyModeFk); - - DROP TEMPORARY TABLE IF EXISTS tmp.sale; - CREATE TEMPORARY TABLE tmp.sale - (PRIMARY KEY (saleFk)) ENGINE = MEMORY - SELECT id saleFk, vWarehouseFk warehouseFk - FROM sale s - WHERE s.ticketFk = vTicketFk; - - CALL vn.ticketComponentUpdateSale(IF(vIsTicketEditable,1,6)); -- si el ticket esta facturado, respeta los precios - - IF vLanded IS NULL THEN - - CALL zoneGetLanded(vShipped, vAddressFk, vAgencyModeFk, vWarehouseFk); - - UPDATE vn2008.Tickets t - SET t.landing = (SELECT landed FROM tmp.zoneGetLanded) - WHERE Id_Ticket = vTicketFk; - - DROP TEMPORARY TABLE tmp.zoneGetLanded; - - END IF; - - DROP TEMPORARY TABLE tmp.buyUltimate; - DROP TEMPORARY TABLE tmp.ticketComponentPrice; - DROP TEMPORARY TABLE tmp.ticketComponent; - DROP TEMPORARY TABLE tmp.sale; -END$$ - --- ticketCalculatePurge` --------------------------------------------------------------------- - -DELIMITER ; - -USE `vn`; -DROP procedure IF EXISTS `ticketCalculatePurge`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculatePurge`() -BEGIN - DROP TEMPORARY TABLE - tmp.ticketCalculateItem, - tmp.ticketComponentPrice, - tmp.ticketComponent, - tmp.ticketLot, - tmp.zoneGetShipped; -END$$ - -DELIMITER ; - --- `vn`.`component` ----------------------------------------------- - -CREATE OR REPLACE - ALGORITHM = UNDEFINED - DEFINER = `root`@`%` - SQL SECURITY DEFINER -VIEW `vn`.`component` AS - SELECT - `t`.`Id_Componente` AS `id`, - `t`.`Componente` AS `name`, - `t`.`tarifa_componentes_series_id` AS `typeFk`, - `t`.`tarifa_class` AS `classRate`, - `t`.`tax` AS `tax`, - `t`.`is_renewable` AS `isRenewable` - FROM - `bi`.`tarifa_componentes` `t`; - --- componentType -------------------------------------------------------- - -CREATE OR REPLACE - ALGORITHM = UNDEFINED - DEFINER = `root`@`%` - SQL SECURITY DEFINER -VIEW `vn`.`componentType` AS - SELECT - `t`.`tarifa_componentes_series_id` AS `id`, - `t`.`Serie` AS `type`, - `t`.`base` AS `base` - FROM - `bi`.`tarifa_componentes_series` `t`; \ No newline at end of file diff --git a/db/changes/10031-zone/00-zoneNest.sql b/db/changes/10031-zone/00-zoneNest.sql deleted file mode 100644 index 2691aa8a9..000000000 --- a/db/changes/10031-zone/00-zoneNest.sql +++ /dev/null @@ -1,28 +0,0 @@ -DROP procedure IF EXISTS `vn`.`zoneNest`; - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNest`() -BEGIN - DROP TEMPORARY TABLE IF EXISTS tmp.zoneGeo; - CREATE TEMPORARY TABLE tmp.zoneGeo - (id INT AUTO_INCREMENT PRIMARY KEY) - ENGINE = MEMORY - SELECT * FROM vn.zoneGeo; - - DROP TEMPORARY TABLE IF EXISTS tmp.country; - CREATE TEMPORARY TABLE tmp.country - SELECT id FROM country - WHERE country IN('España exento'); - - CALL vn.zoneNestCountry(); - CALL vn.zoneNestProvince(); - CALL vn.zoneNestTown(); - CALL vn.zoneNestPostcode(); - CALL vn.nestTree('tmp', 'zoneGeo', 'vn', 'zoneGeo'); - - DROP TEMPORARY TABLE - tmp.zoneGeo, - tmp.country; -END$$ - -DELIMITER ; diff --git a/db/changes/10031-zone/00-zoneNestCountry.sql b/db/changes/10031-zone/00-zoneNestCountry.sql deleted file mode 100644 index acc3a4d12..000000000 --- a/db/changes/10031-zone/00-zoneNestCountry.sql +++ /dev/null @@ -1,55 +0,0 @@ -DROP procedure IF EXISTS `vn`.`zoneNestCountry`; - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestCountry`() -BEGIN - - DECLARE vDone BOOL; - DECLARE vParent INT DEFAULT 1; - DECLARE vGeoFk INT; - DECLARE vChildFk INT; - DECLARE vChildName VARCHAR(100); - DECLARE countryCur CURSOR FOR - SELECT 1, c.id, c.`country` - FROM vn.country c - JOIN tmp.country tc ON tc.id = c.id - ORDER BY c.`country`; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - -- Remove existing countries - DELETE zg FROM vn.country c - JOIN tmp.country tc ON tc.id = c.id - JOIN tmp.zoneGeo zg ON zg.id = c.geoFk; - - -- Reset country geoFk - UPDATE vn.country c - JOIN tmp.country tc ON tc.id = c.id - SET c.geoFk = NULL - WHERE c.geoFk IS NOT NULL; - - -- > Country cursor start - OPEN countryCur; - - countryLoop: LOOP - SET vDone = FALSE; - - FETCH countryCur INTO vParent, vChildFk, vChildName; - - IF vDone THEN - LEAVE countryLoop; - END IF; - - CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName); - END LOOP; - CLOSE countryCur; - -- < Country cursor end - - UPDATE country c - JOIN tmp.zoneGeo z ON z.name = c.country - SET c.geoFk = z.id - WHERE c.geoFk IS NULL; -END$$ - -DELIMITER ; - diff --git a/db/changes/10031-zone/00-zoneNestPostcode.sql b/db/changes/10031-zone/00-zoneNestPostcode.sql deleted file mode 100644 index cd62deee8..000000000 --- a/db/changes/10031-zone/00-zoneNestPostcode.sql +++ /dev/null @@ -1,61 +0,0 @@ -DROP procedure IF EXISTS `vn`.`zoneNestPostcode`; - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestPostcode`() -BEGIN - - DECLARE vDone BOOL; - DECLARE vParent INT DEFAULT 1; - DECLARE vGeoFk INT; - DECLARE vChildFk INT; - DECLARE vChildName VARCHAR(100); - DECLARE postcodeCur CURSOR FOR - SELECT t.geoFk, pc.`code`, pc.`code` - FROM vn.postCode pc - JOIN vn.town t ON t.id = pc.townFk - JOIN vn.province p ON p.id = t.provinceFk - JOIN tmp.country tc ON tc.id = p.countryFk - ORDER BY t.geoFk, pc.`code`; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - -- Remove existing postCodes from zoneGeo - DELETE zg FROM vn.postCode pc - JOIN vn.town t ON t.id = pc.townFk - JOIN vn.province p ON p.id = t.provinceFk - JOIN tmp.country tc ON tc.id = p.countryFk - JOIN tmp.zoneGeo zg ON zg.id = pc.geoFk; - - -- Reset town geoFk - UPDATE vn.postCode pc - JOIN vn.town t ON t.id = pc.townFk - JOIN vn.province p ON p.id = t.provinceFk - JOIN tmp.country tc ON tc.id = p.countryFk - SET pc.geoFk = NULL - WHERE pc.geoFk IS NOT NULL; - - -- > Postcode cursor start - OPEN postcodeCur; - - postcodeLoop: LOOP - SET vDone = FALSE; - - FETCH postcodeCur INTO vParent, vChildFk, vChildName; - - IF vDone THEN - LEAVE postcodeLoop; - END IF; - - CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName); - END LOOP; - CLOSE postcodeCur; - -- < Postcode cursor end - - UPDATE postCode p - JOIN tmp.zoneGeo z ON z.name = p.code - SET p.geoFk = z.id - WHERE p.geoFk IS NULL; -END$$ - -DELIMITER ; - diff --git a/db/changes/10031-zone/00-zoneNestProvince.sql b/db/changes/10031-zone/00-zoneNestProvince.sql deleted file mode 100644 index 4467e0c46..000000000 --- a/db/changes/10031-zone/00-zoneNestProvince.sql +++ /dev/null @@ -1,56 +0,0 @@ -DROP procedure IF EXISTS `vn`.`zoneNestProvince`; - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestProvince`() -BEGIN - - DECLARE vDone BOOL; - DECLARE vParent INT DEFAULT 1; - DECLARE vGeoFk INT; - DECLARE vChildFk INT; - DECLARE vChildName VARCHAR(100); - DECLARE provinceCur CURSOR FOR - SELECT c.geoFk, p.id, p.`name` - FROM province p - JOIN tmp.country tc ON tc.id = p.countryFk - JOIN vn.country c ON c.id = tc.id - ORDER BY c.geoFk, p.`name`; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - -- Remove existing provinces from zoneGeo - DELETE zg FROM vn.province p - JOIN tmp.country tc ON tc.id = p.countryFk - JOIN tmp.zoneGeo zg ON zg.id = p.geoFk; - - -- Reset country geoFk - UPDATE vn.province p - JOIN tmp.country tc ON tc.id = p.countryFk - SET p.geoFk = NULL - WHERE p.geoFk IS NOT NULL; - - -- > Province cursor start - OPEN provinceCur; - - provinceLoop: LOOP - SET vDone = FALSE; - - FETCH provinceCur INTO vParent, vChildFk, vChildName; - - IF vDone THEN - LEAVE provinceLoop; - END IF; - - CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName); - END LOOP; - CLOSE provinceCur; - -- < Province cursor end - - UPDATE province p - JOIN tmp.zoneGeo z ON z.name = p.name - SET p.geoFk = z.id - WHERE p.geoFk IS NULL; -END$$ - -DELIMITER ; - diff --git a/db/changes/10031-zone/00-zoneNestTown.sql b/db/changes/10031-zone/00-zoneNestTown.sql deleted file mode 100644 index 8ca1a426c..000000000 --- a/db/changes/10031-zone/00-zoneNestTown.sql +++ /dev/null @@ -1,59 +0,0 @@ -DROP procedure IF EXISTS `vn`.`zoneNestTown`; - -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestTown`() -BEGIN - - DECLARE vDone BOOL; - DECLARE vParent INT DEFAULT 1; - DECLARE vGeoFk INT; - DECLARE vChildFk INT; - DECLARE vChildName VARCHAR(100); - DECLARE townCur CURSOR FOR - SELECT p.geoFk, t.id, t.`name` - FROM vn.town t - JOIN vn.province p ON p.id = t.provinceFk - JOIN tmp.country tc ON tc.id = p.countryFk - ORDER BY p.geoFk, t.`name`; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - -- Remove existing towns from zoneGeo - DELETE zg FROM vn.town t - JOIN vn.province p ON p.id = t.provinceFk - JOIN tmp.country tc ON tc.id = p.countryFk - JOIN tmp.zoneGeo zg ON zg.id = t.geoFk; - - -- Reset town geoFk - UPDATE vn.town t - JOIN vn.province p ON p.id = t.provinceFk - JOIN tmp.country tc ON tc.id = p.countryFk - SET t.geoFk = NULL - WHERE t.geoFk IS NOT NULL; - - -- > Town cursor start - OPEN townCur; - - townLoop: LOOP - SET vDone = FALSE; - - FETCH townCur INTO vParent, vChildFk, vChildName; - - IF vDone THEN - LEAVE townLoop; - END IF; - - CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName); - END LOOP; - CLOSE townCur; - -- < Town cursor end - - UPDATE town t - JOIN tmp.zoneGeo z ON z.name = t.name - LEFT JOIN province p ON p.geoFk = z.id - SET t.geoFk = z.id - WHERE p.geoFk IS NULL; -END$$ - -DELIMITER ; - diff --git a/db/changes/10031-zone/01-ticketGetVolume.sql b/db/changes/10031-zone/01-ticketGetVolume.sql deleted file mode 100644 index e8443fb8e..000000000 --- a/db/changes/10031-zone/01-ticketGetVolume.sql +++ /dev/null @@ -1,19 +0,0 @@ - -CREATE - OR REPLACE ALGORITHM = UNDEFINED - DEFINER = `root`@`%` - SQL SECURITY DEFINER -VIEW `vn`.`ticketGetVolume` AS - SELECT - `s`.`ticketFk` AS `ticketFk`, - `t`.`routeFk` AS `routeFk`, - `s`.`id` AS `saleFk`, - `t`.`shipped` AS `Fecha`, - (((`s`.`quantity` * `r`.`cm3`) * `i`.`compression`) / 1000000) AS `volume` - FROM - (((`vn`.`sale` `s` - JOIN `vn`.`item` `i` ON ((`i`.`id` = `s`.`itemFk`))) - JOIN `vn`.`ticket` `t` ON ((`t`.`id` = `s`.`ticketFk`))) - JOIN `bi`.`rotacion` `r` ON (((`r`.`Id_Article` = `s`.`itemFk`) - AND (`r`.`warehouse_id` = `t`.`warehouseFk`)))); - diff --git a/db/changes/10031-zone/02-ticketTotalVolume.sql b/db/changes/10031-zone/02-ticketTotalVolume.sql deleted file mode 100644 index ff4b5c080..000000000 --- a/db/changes/10031-zone/02-ticketTotalVolume.sql +++ /dev/null @@ -1,30 +0,0 @@ - -DROP function IF EXISTS `vn`.`ticketTotalVolume`; - -DELIMITER $$ -USE `vn`$$ -CREATE DEFINER=`root`@`%` FUNCTION `ticketTotalVolume`(vTicketId INT) RETURNS decimal(10,3) - READS SQL DATA -BEGIN - -- Devuelte el volumen total del ticket sumado - -- DECLARE vWarehouseId INTEGER; - -- DECLARE vShippedDate DATE; - DECLARE vVolume DECIMAL(10,3); - /* - SELECT warehouseFk, shipped INTO vWarehouseId,vShippedDate FROM vn.ticket WHERE id = vTicketId; - - SELECT IFNULL(SUM(s.quantity * i.compression * r.cm3)/1000000,0) INTO vVolume - FROM sale s - JOIN vn.item i ON i.id = s.itemFk - JOIN bi.rotacion r on r.Id_Article = s.itemFk AND r.warehouse_id = vWarehouseId - WHERE s.ticketFk = vTicketId; - */ - SELECT sum(volume) INTO vVolume - FROM ticketGetVolume - WHERE ticketFk = vTicketId; - RETURN vVolume; - -END$$ - -DELIMITER ; - diff --git a/db/changes/10032-webZone/00-available_calc.sql b/db/changes/10032-webZone/00-available_calc.sql deleted file mode 100644 index 0a2429cdc..000000000 --- a/db/changes/10032-webZone/00-available_calc.sql +++ /dev/null @@ -1,61 +0,0 @@ - -DROP procedure IF EXISTS `vn`.`available_calc`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`available_calc`( - vDate DATE, - vAddress INT, - vAgencyMode INT) -BEGIN -/** - * Calculates the available for all available stores - * according to the given parameters. - * - * @param vDate The delivery date - * @param vAddress The delivery address id - * @param vAgencyMode The shipping agency - * @return tmp.availableCalc(calcFk) The available cache ids - */ - DECLARE vCalcFk INT; - DECLARE vShipment DATE; - DECLARE vWarehouse INT; - DECLARE vDone BOOL; - - DECLARE cWarehouses CURSOR FOR - SELECT warehouseFk, shipped FROM tmp.zoneGetShipped; - - DECLARE CONTINUE HANDLER FOR NOT FOUND - SET vDone = TRUE; - - -- Establecemos los almacenes y las fechas que van a entrar al disponible - - CALL vn.zoneGetShippedWarehouse(vDate, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.availableCalc; - CREATE TEMPORARY TABLE tmp.availableCalc( - calcFk INT UNSIGNED, - PRIMARY KEY (calcFk) - ) - ENGINE = MEMORY; - - OPEN cWarehouses; - - l: LOOP - SET vDone = FALSE; - FETCH cWarehouses INTO vWarehouse, vShipment; - - IF vDone THEN - LEAVE l; - END IF; - - CALL `cache`.available_refresh(vCalcFk, FALSE, vWarehouse, vShipment); - - INSERT IGNORE INTO tmp.availableCalc - SET calcFk = vCalcFk; - END LOOP; - - CLOSE cWarehouses; - DROP TEMPORARY TABLE tmp.zoneGetShipped; -END$$ - -DELIMITER ; - diff --git a/db/changes/10032-webZone/00-catalog_calcFromItem.sql b/db/changes/10032-webZone/00-catalog_calcFromItem.sql deleted file mode 100644 index 03823d65c..000000000 --- a/db/changes/10032-webZone/00-catalog_calcFromItem.sql +++ /dev/null @@ -1,28 +0,0 @@ - -DROP procedure IF EXISTS `vn`.`catalog_calcFromItem`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`catalog_calcFromItem`( - vLanded DATE, - vAddressFk INT, - vAgencyModeFk INT, - vItemFk INT) -BEGIN -/** - * Calculates available and price for a single item. - * - * @param vItemFk The item id - * @return tmp.ticketCalculateItem - * @return tmp.ticketComponentPrice - * @return tmp.ticketComponent - * @return tmp.ticketLot - * @return tmp.zoneGetShipped - */ - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - ENGINE = MEMORY - SELECT vItemFk itemFk; - - CALL ticketCalculate(vLanded, vAddressFk, vAgencyModeFk); - DROP TEMPORARY TABLE tmp.item; -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-catalog_calcFromMyAddress.sql b/db/changes/10032-webZone/00-catalog_calcFromMyAddress.sql deleted file mode 100644 index ee2996bd6..000000000 --- a/db/changes/10032-webZone/00-catalog_calcFromMyAddress.sql +++ /dev/null @@ -1,41 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`catalog_calcFromMyAddress`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`catalog_calcFromMyAddress`(vDelivery DATE, vAddress INT) -BEGIN -/** - * Gets the available items list. - * - * @param vDelivery Delivery date - * @param vAddress Address id - * @return tmp.ticketCalculateItem - * @return tmp.ticketComponentPrice - * @return tmp.ticketComponent - * @return tmp.ticketLot - * @return tmp.zoneGetShipped - */ - DECLARE vAgencyMode INT; - - SELECT a.agencyModeFk - INTO vAgencyMode - FROM myClient c - JOIN vn.address a ON a.clientFk = c.id - WHERE a.id = vAddress; - - CALL vn.available_calc(vDelivery, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - (INDEX (itemFk)) - ENGINE = MEMORY - SELECT c.item_id itemFk - FROM `cache`.available c - JOIN tmp.availableCalc a ON a.calcFk = c.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE tmp.item; -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-deprecate.sql b/db/changes/10032-webZone/00-deprecate.sql deleted file mode 100644 index 373cb7ccb..000000000 --- a/db/changes/10032-webZone/00-deprecate.sql +++ /dev/null @@ -1,398 +0,0 @@ - -USE `vn2008`; -DROP procedure IF EXISTS `vn2008`.`bionic_available_`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_available_`( - vDate DATE, - vAddress INT, - vAgency INT) -BEGIN -/** - * Calcula el disponible para un conjunto de almacenes y fechas - * devueltos por el procedimiento agencyHourGetShipped() - * - * @deprecated Use vn.available_calc() - * @table t_bionic_available Tabla con los ids de cache - */ - DECLARE vAvailableCalc INT; - DECLARE vShipment DATE; - DECLARE vAgencyId INT; - DECLARE vWh INT; - DECLARE vDone BOOL; - DECLARE cTravelTree CURSOR FOR - SELECT warehouseFk, shipped FROM tmp.agencyHourGetShipped; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - -- Establecemos los almacenes y las fechas que van a entrar al disponible - - SELECT agency_id INTO vAgencyId - FROM Agencias WHERE Id_Agencia = vAgency; - - CALL vn.agencyHourGetShipped (vDate, vAddress, vAgencyId); - - DROP TEMPORARY TABLE IF EXISTS t_bionic_available; - CREATE TEMPORARY TABLE t_bionic_available( - calc_id INT UNSIGNED, - PRIMARY KEY (calc_id) - ) - ENGINE = MEMORY; - - OPEN cTravelTree; - l: LOOP - SET vDone = FALSE; - FETCH cTravelTree INTO vWh, vShipment; - - IF vDone THEN - LEAVE l; - END IF; - - CALL `cache`.available_refresh (vAvailableCalc, FALSE, vWh, vShipment); - - INSERT IGNORE INTO t_bionic_available - SET calc_id = vAvailableCalc; - END LOOP; - - CLOSE cTravelTree; - DROP TEMPORARY TABLE tmp.agencyHourGetShipped; -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`bionic_from_item`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_from_item`(vItem INT) -BEGIN - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT sent, addressFk, agencyModeFk - INTO vDate, vAddress, vAgencyMode - FROM myBasket; - - CALL vn2008.bionic_from_item(vDate, vAddress, vAgencyMode, vItem); -END$$ - -DELIMITER ; -; - - -USE `vn2008`; -DROP procedure IF EXISTS `vn2008`.`bionic_from_order`; - -DELIMITER $$ -USE `vn2008`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_from_order`( - v_date DATE, -- fecha de recepcion de mercancia - v_consigna INT, - v_agencia INT, - v_order INT) -BEGIN - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_calc; - CREATE TEMPORARY TABLE tmp.bionic_calc - (PRIMARY KEY (item_id)) - ENGINE = MEMORY - SELECT item_id FROM order_row - WHERE order_id = v_order GROUP BY item_id; - - CALL bionic_calc (v_date, v_consigna, v_agencia); - DROP TEMPORARY TABLE tmp.bionic_calc; -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`bionicCalcWithDate`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__bionicCalcWithDate`(vDate DATE) -BEGIN - DECLARE vMyAddressFk INTEGER; - DECLARE vMyAgencyModeFk INTEGER; - - SELECT id, agencyModeFk INTO vMyAddressFk, vMyAgencyModeFk - FROM myAddress - WHERE isDefaultAddress; - - CALL vn2008.bionic_calc(vDate, vMyAddressFk, vMyAgencyModeFk); -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`bionic_calc`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_calc`() -BEGIN - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT sent, addressFk, agencyModeFk - INTO vDate, vAddress, vAgencyMode - FROM myBasket; - - CALL vn2008.bionic_calc(vDate, vAddress, vAgencyMode); - - IF account.myUserGetName() = 'visitor' - THEN - DROP TEMPORARY TABLE tmp.bionic_component; - UPDATE tmp.bionic_item SET price = NULL; - END IF; -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`itemGetAvailableOrder`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__itemGetAvailableOrder`(vOrder INT) -BEGIN -/** - * Gets the available items list with an order params. - * - * @table tmp.itemAvailable - */ - DECLARE vDelivery DATE; - DECLARE vAddress INT; - DECLARE vAgency INT; - - SELECT landed, addressFk, agencyModeFk - INTO vDelivery, vAddress, vAgency - FROM myOrder - WHERE id = vOrder; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgency); - - DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable; - CREATE TEMPORARY TABLE tmp.itemAvailable - (INDEX (id)) - ENGINE = MEMORY - SELECT c.item_id id - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - DROP TEMPORARY TABLE vn2008.t_bionic_available; - -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`itemGetAvailable`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__itemGetAvailable`() -BEGIN -/** - * Gets the available items list. - * - * @table tmp.itemAvailable - */ - DECLARE vDelivery DATE; - DECLARE vAddress INT; - DECLARE vAgency INT; - - SELECT sent, addressFk, agencyModeFk - INTO vDelivery, vAddress, vAgency - FROM myBasket; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgency); - - DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable; - CREATE TEMPORARY TABLE tmp.itemAvailable - (INDEX (id)) - ENGINE = MEMORY - SELECT c.item_id id - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - DROP TEMPORARY TABLE vn2008.t_bionic_available; -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`myItemGetAvailableFromDate`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__myItemGetAvailableFromDate`(vDelivery DATE) -BEGIN -/** - * Gets the available items list. - * - * @deprecated Use item_calcCatalogFromMyAddress() - * @param vDelivery Delivery date - */ - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT a.agencyModeFk, a.id - INTO vAgencyMode, vAddress - FROM myClient c - JOIN vn.address a ON a.id = c.defaultAddressFk; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - (INDEX (itemFk)) - ENGINE = MEMORY - SELECT c.item_id itemFk - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode); --- ------------------- - /*SELECT b.itemFk, b.item, b.available, b.price - FROM tmp.ticketCalculateItem b - JOIN vn.item i ON i.id = b.itemFk - WHERE b.available > 0 - ORDER BY i.relevancy DESC, i.name, i.size; - - select * from tmp.ticketComponentPrice;*/ --- ------------------- - DROP TEMPORARY TABLE vn2008.t_bionic_available; -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`myItemGetAvailable`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__myItemGetAvailable`(vDelivery DATE, vAddress INT) -BEGIN -/** - * Gets the available items list. - * - * @deprecated Use item_calcCatalogFromMyAddress() - * @param vDelivery Delivery date - * @param vAddress Id Address - */ - DECLARE vAgencyMode INT; - - SELECT a.agencyModeFk - INTO vAgencyMode - FROM myClient c - JOIN vn.address a ON a.clientFk = c.id - WHERE a.id = vAddress; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - (INDEX (itemFk)) - ENGINE = MEMORY - SELECT c.item_id itemFk - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode); --- ------------------- - /*SELECT b.itemFk, b.item, b.available, b.price - FROM tmp.ticketCalculateItem b - JOIN vn.item i ON i.id = b.itemFk - WHERE b.available > 0 - ORDER BY i.relevancy DESC, i.name, i.size; - - select * from tmp.ticketComponentPrice;*/ --- ------------------- - DROP TEMPORARY TABLE vn2008.t_bionic_available; -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`myOrderAddItem`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderAddItem`( - vSelf INT, - vWarehouse INT, - vItem INT, - vAmount INT) -BEGIN -/** - * @deprecated Use myOrder_addItem() - */ - CALL myOrder_addItem(vSelf, vWarehouse, vItem, vAmount); -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`myOrderConfirm`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderConfirm`(vSelf INT) -BEGIN -/** - * @deprecated Use myOrder_confirm() - */ - CALL myOrder_confirm(vSelf); -END$$ - -DELIMITER ; -; - - -USE `hedera`; -DROP procedure IF EXISTS `hedera`.`myOrderNewFromDate`; - -DELIMITER $$ -USE `hedera`$$ -CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderNewFromDate`( - OUT vSelf INT, - vLandingDate DATE) -BEGIN -/** - * @deprecated Use myOrder_newWithDate() - */ - CALL myOrder_newWithDate(vSelf, vLandingDate); -END$$ - -DELIMITER ; -; diff --git a/db/changes/10032-webZone/00-myBasket_calcCatalogFromItem.sql b/db/changes/10032-webZone/00-myBasket_calcCatalogFromItem.sql deleted file mode 100644 index edde8f389..000000000 --- a/db/changes/10032-webZone/00-myBasket_calcCatalogFromItem.sql +++ /dev/null @@ -1,19 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`myBasket_calcCatalogFromItem`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myBasket_calcCatalogFromItem`(vItem INT) -BEGIN -/** - * Gets the availability and prices for the given item - * using current user basket parameters. - * - * @table tmp.item(itemFk) - * @return tmp.ticketCalculateItem - * @return tmp.ticketComponentPrice - * @return tmp.ticketComponent - * @return tmp.ticketLot - * @return tmp.zoneGetShipped - */ - CALL order_calcCatalogFromItem(myBasket_getId(), vItem); -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-myBasket_calcCatalogFull.sql b/db/changes/10032-webZone/00-myBasket_calcCatalogFull.sql deleted file mode 100644 index 8e182faa9..000000000 --- a/db/changes/10032-webZone/00-myBasket_calcCatalogFull.sql +++ /dev/null @@ -1,19 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`myBasket_calcCatalogFull`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myBasket_calcCatalogFull`() -BEGIN -/** - * Gets the availability and prices for the given items - * using current user basket parameters. - * - * @table tmp.item(itemFk) - * @return tmp.ticketCalculateItem - * @return tmp.ticketComponentPrice - * @return tmp.ticketComponent - * @return tmp.ticketLot - * @return tmp.zoneGetShipped - */ - CALL order_calcCatalogFull(myBasket_getId()); -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-myBasket_getAvailable.sql b/db/changes/10032-webZone/00-myBasket_getAvailable.sql deleted file mode 100644 index 246bbb567..000000000 --- a/db/changes/10032-webZone/00-myBasket_getAvailable.sql +++ /dev/null @@ -1,14 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`myBasket_getAvailable`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myBasket_getAvailable`() -BEGIN -/** - * Gets the available items list. - * - * @table tmp.itemAvailable - */ - CALL order_getAvailable(myBasket_getId()); -END$$ -DELIMITER ; - diff --git a/db/changes/10032-webZone/00-myOrder_getAvailable.sql b/db/changes/10032-webZone/00-myOrder_getAvailable.sql deleted file mode 100644 index 01ceb0228..000000000 --- a/db/changes/10032-webZone/00-myOrder_getAvailable.sql +++ /dev/null @@ -1,22 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`myOrder_getAvailable`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myOrder_getAvailable`(vSelf INT) -BEGIN -/** - * Gets the available items list. - * - * @param vSelf The order id - * @table tmp.itemAvailable - */ - DECLARE isMine BOOL; - - SELECT COUNT(*) INTO isMine - FROM myOrder - WHERE id = vSelf; - - IF isMine THEN - CALL order_getAvailable(vSelf); - END IF; -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-order_addItem.sql b/db/changes/10032-webZone/00-order_addItem.sql deleted file mode 100644 index 90a4efaad..000000000 --- a/db/changes/10032-webZone/00-order_addItem.sql +++ /dev/null @@ -1,105 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`order_addItem`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_addItem`( - vSelf INT, - vWarehouse INT, - vItem INT, - vAmount INT) -BEGIN -/** - * Adds an item to the order, checking availability and grouping. - * - * @param vSelf The order id - * @param vWarehouse The warehouse id - * @param vItem The item id - * @param vAmount The amount to add - */ - DECLARE vRow INT; - DECLARE vAdd INT; - DECLARE vAvailable INT; - DECLARE vDone BOOL; - DECLARE vGrouping INT; - DECLARE vRate INT; - DECLARE vShipment DATE; - DECLARE vPrice DECIMAL(10,2); - DECLARE cur CURSOR FOR - SELECT `grouping`, price, rate - FROM tmp.ticketComponentPrice - WHERE warehouseFk = vWarehouse - AND itemFk = vItem - ORDER BY `grouping` DESC; - - DECLARE CONTINUE HANDLER FOR NOT FOUND - SET vDone = TRUE; - - DECLARE EXIT HANDLER FOR SQLEXCEPTION - BEGIN - ROLLBACK; - RESIGNAL; - END; - - CALL order_calcCatalogFromItem(vSelf, vItem); - START TRANSACTION; - - SELECT shipped INTO vShipment - FROM tmp.zoneGetShipped - WHERE warehouseFk = vWarehouse; - - SELECT available INTO vAvailable - FROM tmp.ticketLot - WHERE warehouseFk = vWarehouse - AND itemFk = vItem; - - IF vAmount > IFNULL(vAvailable, 0) THEN - CALL util.throw ('ORDER_ROW_UNAVAILABLE'); - END IF; - - OPEN cur; - - l: LOOP - SET vDone = FALSE; - FETCH cur INTO vGrouping, vPrice, vRate; - - IF vDone THEN - LEAVE l; - END IF; - - SET vAdd = vAmount - MOD(vAmount, vGrouping); - SET vAmount = vAmount - vAdd; - - IF vAdd = 0 THEN - ITERATE l; - END IF; - - INSERT INTO orderRow SET - orderFk = vSelf, - itemFk = vItem, - warehouseFk = vWarehouse, - shipment = vShipment, - rate = vRate, - amount = vAdd, - price = vPrice; - - SET vRow = LAST_INSERT_ID(); - - INSERT INTO orderRowComponent (rowFk, componentFk, price) - SELECT vRow, c.componentFk, c.cost - FROM tmp.ticketComponent c - JOIN vn.component t - ON t.id = c.componentFk - AND (t.classRate IS NULL OR t.classRate = vRate) - WHERE c.warehouseFk = vWarehouse - AND c.itemFk = vItem; - END LOOP; - - CLOSE cur; - - IF vAmount > 0 THEN - CALL util.throw ('AMOUNT_NOT_MATCH_GROUPING'); - END IF; - - COMMIT; - CALL vn.ticketCalculatePurge; -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-order_calcCatalog.sql b/db/changes/10032-webZone/00-order_calcCatalog.sql deleted file mode 100644 index 2a50d747b..000000000 --- a/db/changes/10032-webZone/00-order_calcCatalog.sql +++ /dev/null @@ -1,36 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`order_calcCatalog`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_calcCatalog`(vSelf INT) -BEGIN -/** - * Gets the availability and prices for order items. - * - * @param vSelf The order id - * @return tmp.ticketCalculateItem - * @return tmp.ticketComponentPrice - * @return tmp.ticketComponent - * @return tmp.ticketLot - */ - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT date_send, address_id, agency_id - INTO vDate, vAddress, vAgencyMode - FROM `order` - WHERE id = vSelf; - - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - (PRIMARY KEY (itemFk)) - ENGINE = MEMORY - SELECT itemFk FROM orderRow - WHERE orderFk = vSelf - GROUP BY itemFk; - - CALL vn.ticketCalculate(vDate, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE tmp.item; -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-order_calcCatalogFromItem.sql b/db/changes/10032-webZone/00-order_calcCatalogFromItem.sql deleted file mode 100644 index 8f4ca6012..000000000 --- a/db/changes/10032-webZone/00-order_calcCatalogFromItem.sql +++ /dev/null @@ -1,30 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`order_calcCatalogFromItem`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_calcCatalogFromItem`(vSelf INT, vItem INT) -BEGIN -/** - * Gets the availability and prices for the given item - * using the order parameters. - * - * @param vSelf The order id - * @table tmp.item(itemFk) - * @return tmp.ticketCalculateItem - * @return tmp.ticketComponentPrice - * @return tmp.ticketComponent - * @return tmp.ticketLot - * @return tmp.zoneGetShipped - */ - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT date_send, address_id, agency_id - INTO vDate, vAddress, vAgencyMode - FROM `order` - WHERE id = vSelf; - - CALL vn.catalog_calcFromItem(vDate, vAddress, vAgencyMode, vItem); -END$$ -DELIMITER ; - diff --git a/db/changes/10032-webZone/00-order_calcCatalogFull.sql b/db/changes/10032-webZone/00-order_calcCatalogFull.sql deleted file mode 100644 index 7d57be472..000000000 --- a/db/changes/10032-webZone/00-order_calcCatalogFull.sql +++ /dev/null @@ -1,35 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`order_calcCatalogFull`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_calcCatalogFull`(vSelf INT) -BEGIN -/** - * Gets the availability and prices for the given items - * using the order parameters. - * - * @param vSelf The order id - * @table tmp.item(itemFk) - * @return tmp.ticketCalculateItem - * @return tmp.ticketComponentPrice - * @return tmp.ticketComponent - * @return tmp.ticketLot - * @return tmp.zoneGetShipped - */ - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT date_send, address_id, agency_id - INTO vDate, vAddress, vAgencyMode - FROM `order` - WHERE id = vSelf; - - CALL vn.ticketCalculate(vDate, vAddress, vAgencyMode); - - IF account.myUserGetName() = 'visitor' - THEN - DROP TEMPORARY TABLE tmp.ticketComponent; - UPDATE tmp.ticketCalculateItem SET price = NULL; - END IF; -END$$ -DELIMITER ; diff --git a/db/changes/10032-webZone/00-order_getAvailable.sql b/db/changes/10032-webZone/00-order_getAvailable.sql deleted file mode 100644 index 1182b4840..000000000 --- a/db/changes/10032-webZone/00-order_getAvailable.sql +++ /dev/null @@ -1,34 +0,0 @@ -DROP procedure IF EXISTS `hedera`.`order_getAvailable`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_getAvailable`(vSelf INT) -BEGIN -/** - * Gets the available items list. - * - * @param vSelf The order id - * @table tmp.itemAvailable - */ - DECLARE vDelivery DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT date_send, address_id, agency_id - INTO vDelivery, vAddress, vAgencyMode - FROM `order` - WHERE id = vSelf; - - CALL vn.available_calc(vDelivery, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable; - CREATE TEMPORARY TABLE tmp.itemAvailable - (INDEX (id)) - ENGINE = MEMORY - SELECT DISTINCT a.item_id id - FROM `cache`.available a - JOIN tmp.availableCalc c ON c.calcFk = a.calc_id - WHERE a.available > 0; - - DROP TEMPORARY TABLE tmp.availableCalc; -END$$ - -DELIMITER ; \ No newline at end of file diff --git a/db/changes/10032-webZone/00-order_update.sql b/db/changes/10032-webZone/00-order_update.sql deleted file mode 100644 index 23e4045e5..000000000 --- a/db/changes/10032-webZone/00-order_update.sql +++ /dev/null @@ -1,71 +0,0 @@ - -DROP procedure IF EXISTS `hedera`.`order_update`; -DELIMITER $$ -CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_update`(vSelf INT) -proc: BEGIN -/** - * Actualiza las líneas de un pedido. - * - * @param vSelf Id del pedido - */ - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - DECLARE vNRows INT; - - DECLARE EXIT HANDLER FOR SQLEXCEPTION - BEGIN - ROLLBACK; - RESIGNAL; - END; - - START TRANSACTION; - - SELECT COUNT(*) INTO vNRows - FROM orderRow WHERE orderFk = vSelf; - - IF vNRows > 0 - THEN - CALL order_calcCatalog(vSelf); - - DELETE c - FROM orderRow r - JOIN orderRowComponent c ON c.rowFk = r.id - WHERE r.orderFk = vSelf; - - UPDATE orderRow r - LEFT JOIN tmp.ticketComponentPrice p - ON p.warehouseFk = r.warehouseFk - AND p.itemFk = r.itemFk - AND p.rate = r.rate - LEFT JOIN tmp.zoneGetShipped t - ON t.warehouseFk = r.warehouseFk - SET - r.price = p.price, - r.amount = IF(p.itemFk IS NOT NULL, - r.amount + IF(@m := MOD(r.amount, p.`grouping`), p.`grouping` - @m, 0), 0), - r.shipment = t.shipped - WHERE r.orderFk = vSelf; - - INSERT INTO orderRowComponent(rowFk, componentFk, price) - SELECT r.id, c.componentFk, c.cost - FROM orderRow r - JOIN tmp.ticketComponent c - ON c.warehouseFk = r.warehouseFk - AND c.itemFk = r.itemFk - JOIN vn.component t - ON t.id = c.componentFk - AND (t.classRate IS NULL OR t.classRate = r.rate) - WHERE r.orderFk = vSelf; - - CALL vn.ticketCalculatePurge; - END IF; - - UPDATE `order` SET date_make = NOW() - WHERE id = vSelf; - - COMMIT; -END$$ - -DELIMITER ; - diff --git a/db/changes/10032-webZone/98-rename.sql b/db/changes/10032-webZone/98-rename.sql deleted file mode 100644 index d0799b6e6..000000000 --- a/db/changes/10032-webZone/98-rename.sql +++ /dev/null @@ -1 +0,0 @@ -RENAME TABLE hedera.myOrderMyTicket TO hedera.myOrderTicket; \ No newline at end of file diff --git a/db/changes/10032-webZone/99-privs.sql b/db/changes/10032-webZone/99-privs.sql deleted file mode 100644 index 477a7f0d4..000000000 --- a/db/changes/10032-webZone/99-privs.sql +++ /dev/null @@ -1,10 +0,0 @@ -GRANT EXECUTE ON PROCEDURE vn.zoneGetAgency TO `account`@`%`; -GRANT EXECUTE ON PROCEDURE hedera.myBasket_calcCatalogFromItem TO `guest`@`%`; -GRANT EXECUTE ON PROCEDURE hedera.myBasket_calcCatalogFull TO `guest`@`%`; -GRANT EXECUTE ON PROCEDURE hedera.myBasket_getAvailable TO `guest`@`%`; -GRANT EXECUTE ON PROCEDURE hedera.myOrder_getAvailable TO `guest`@`%`; -GRANT EXECUTE ON PROCEDURE hedera.catalog_calcFromMyAddress TO account@'%'; -REVOKE SELECT ON TABLE hedera.myOrderMyTicket FROM account@'%'; -GRANT SELECT ON TABLE hedera.myOrderTicket TO account@'%'; - -CALL account.privSync; diff --git a/db/changes/10060-summer/00-ACL.sql b/db/changes/10060-summer/00-ACL.sql new file mode 100644 index 000000000..90f25f089 --- /dev/null +++ b/db/changes/10060-summer/00-ACL.sql @@ -0,0 +1,5 @@ +INSERT INTO `salix`.`ACL` (`model`, `property`, `accessType`, `permission`, `principalType`, `principalId`) + VALUES + ('Zone', 'editPrices', 'WRITE', 'ALLOW', 'ROLE', 'deliveryBoss'), + ('Postcode', '*', 'WRITE', 'ALLOW', 'ROLE', 'employee'), + ('Ticket', 'addSale', 'WRITE', 'ALLOW', 'ROLE', 'employee'); diff --git a/db/changes/10060-summer/00-zoneCalendar.sql b/db/changes/10060-summer/00-zoneCalendar.sql new file mode 100644 index 000000000..a3c091643 --- /dev/null +++ b/db/changes/10060-summer/00-zoneCalendar.sql @@ -0,0 +1,3 @@ +ALTER TABLE `vn`.`zoneCalendar` +ADD COLUMN `price` DOUBLE NOT NULL AFTER `delivered`, +ADD COLUMN `bonus` DOUBLE NOT NULL AFTER `price`; diff --git a/db/changes/10060-summer/01-ticketGetProblems.sql b/db/changes/10060-summer/01-ticketGetProblems.sql new file mode 100644 index 000000000..9bc8b5e2d --- /dev/null +++ b/db/changes/10060-summer/01-ticketGetProblems.sql @@ -0,0 +1,139 @@ +DROP procedure IF EXISTS `vn`.`ticketGetProblems`; + +DELIMITER $$ +CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`ticketGetProblems`() +BEGIN + + DECLARE vWarehouse INT; + DECLARE vDate DATE; + DECLARE vAvailableCache INT; + DECLARE vVisibleCache INT; + DECLARE vDone INT DEFAULT 0; + + DECLARE vCursor CURSOR FOR + SELECT DISTINCT tt.warehouseFk, date(tt.shipped) + FROM tmp.ticketGetProblems tt + WHERE DATE(tt.shipped) BETWEEN CURDATE() + AND TIMESTAMPADD(DAY, 1.9, CURDATE()); + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketProblems; + CREATE TEMPORARY TABLE tmp.ticketProblems ( + ticketFk INT(11) PRIMARY KEY, + isFreezed INTEGER(1) DEFAULT 0, + risk DECIMAL(10,2) DEFAULT 0, + hasTicketRequest INTEGER(1) DEFAULT 0, + isAvailable INTEGER(1) DEFAULT 1 + ) ENGINE = MEMORY; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketList; + CREATE TEMPORARY TABLE tmp.ticketList + (PRIMARY KEY (ticketFk)) + ENGINE = MEMORY + SELECT tp.ticketFk, c.id clientFk + FROM tmp.ticketGetProblems tp + JOIN vn.client c ON c.id = tp.clientFk; + + + INSERT INTO tmp.ticketProblems(ticketFk, isFreezed) + SELECT DISTINCT tl.ticketFk, 1 + FROM tmp.ticketList tl + JOIN vn.client c ON c.id = tl.clientFk + WHERE c.isFreezed; + + DROP TEMPORARY TABLE IF EXISTS tmp.clientGetDebt; + CREATE TEMPORARY TABLE tmp.clientGetDebt + (PRIMARY KEY (clientFk)) + ENGINE = MEMORY + SELECT DISTINCT clientFk + FROM tmp.ticketList; + + CALL clientGetDebt(CURDATE()); + + + INSERT INTO tmp.ticketProblems(ticketFk, risk) + SELECT DISTINCT tl.ticketFk, r.risk + FROM tmp.ticketList tl + JOIN vn.ticket t ON t.id = tl.ticketFk + JOIN vn.agencyMode a ON t.agencyModeFk = a.id + JOIN tmp.risk r ON r.clientFk = t.clientFk + JOIN vn.client c ON c.id = t.clientFk + WHERE r.risk > c.credit + 10 + AND a.deliveryMethodFk != 3 + ON DUPLICATE KEY UPDATE + risk = r.risk; + + INSERT INTO tmp.ticketProblems(ticketFk, hasTicketRequest) + SELECT DISTINCT tl.ticketFk, 1 + FROM tmp.ticketList tl + JOIN vn.ticketRequest tr ON tr.ticketFk = tl.ticketFk + WHERE tr.isOK IS NULL + ON DUPLICATE KEY UPDATE + hasTicketRequest = 1; + + OPEN vCursor; + + WHILE NOT vDone + DO + FETCH vCursor INTO vWarehouse, vDate; + + CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouse); + CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouse, vDate); + + + INSERT INTO tmp.ticketProblems(ticketFk, isAvailable) + SELECT tl.ticketFk, 0 + FROM tmp.ticketList tl + JOIN vn.ticket t ON t.id = tl.ticketFk + LEFT JOIN vn.sale s ON s.ticketFk = t.id + JOIN vn.item i ON i.id = s.itemFk + JOIN vn.itemType it on it.id = i.typeFk + LEFT JOIN cache.available av ON av.item_id = i.id + AND av.calc_id = vAvailableCache + WHERE date(t.shipped) = vDate + AND categoryFk != 6 + AND IFNULL(av.available, 0) < 0 + AND s.isPicked = FALSE + AND NOT i.generic + AND vWarehouse = t.warehouseFk + GROUP BY tl.ticketFk + ON DUPLICATE KEY UPDATE + isAvailable = 0; + + INSERT INTO tmp.ticketProblems(ticketFk, isAvailable) + SELECT tl.ticketFk, 0 + FROM tmp.ticketList tl + JOIN vn.ticket t ON t.id = tl.ticketFk + LEFT JOIN vn.sale s ON s.ticketFk = t.id + JOIN vn.item i ON i.id = s.itemFk + JOIN vn.itemType it on it.id = i.typeFk + LEFT JOIN cache.visible v ON i.id = v.item_id AND v.calc_id = vVisibleCache + LEFT JOIN cache.available av ON av.item_id = i.id AND av.calc_id = vAvailableCache + WHERE IFNULL(av.available, 0) >= 0 + AND s.quantity > IFNULL(v.visible, 0) + AND s.isPicked = FALSE + AND s.reserved = FALSE + AND it.categoryFk != 6 + AND date(t.shipped) = vDate + AND NOT i.generic + AND CURDATE() = vDate + AND t.warehouseFk = vWarehouse + GROUP BY tl.ticketFk + ON DUPLICATE KEY UPDATE + isAvailable = 0; + + END WHILE; + + CLOSE vCursor; + + SELECT * FROM tmp.ticketProblems; + + DROP TEMPORARY TABLE + tmp.clientGetDebt, + tmp.ticketList; + +END$$ + +DELIMITER ; + diff --git a/db/dump/dumpedFixtures.sql b/db/dump/dumpedFixtures.sql index 604fac290..565786917 100644 --- a/db/dump/dumpedFixtures.sql +++ b/db/dump/dumpedFixtures.sql @@ -36,7 +36,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:09 +-- Dump completed on 2019-07-04 11:10:33 USE `account`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -61,7 +61,7 @@ USE `account`; LOCK TABLES `role` WRITE; /*!40000 ALTER TABLE `role` DISABLE KEYS */; -INSERT INTO `role` VALUES (0,'root','Rol con todos los privilegios',0,'2018-04-23 14:33:36','2018-04-23 14:33:59'),(1,'employee','Empleado básico',1,'2017-05-19 07:04:58','2017-11-29 10:06:31'),(2,'customer','Privilegios básicos de un cliente',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(3,'agency','Consultar tablas de predicciones de bultos',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(5,'administrative','Tareas relacionadas con la contabilidad',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(6,'guest','Privilegios para usuarios sin cuenta',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(9,'developer','Desarrolladores del sistema',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(11,'account','Privilegios relacionados con el login',0,'2017-05-19 07:04:58','2017-09-20 17:06:35'),(13,'teamBoss','Jefe de departamento',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(15,'logistic','Departamento de compras, responsables de la logistica',1,'2017-05-19 07:04:58','2018-02-12 10:50:10'),(16,'logisticBoss','Jefe del departamento de logística',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(17,'adminBoss','Jefe del departamento de administración',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(18,'salesPerson','Departamento de ventas',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(19,'salesBoss','Jefe del departamento de ventas',1,'2017-05-19 07:04:58','2017-08-16 12:38:27'),(20,'manager','Departamento de gerencia',1,'2017-06-01 14:57:02','2017-06-01 14:57:51'),(21,'salesAssistant','Jefe auxiliar de ventas',1,'2017-08-16 12:40:52','2017-08-16 12:40:52'),(22,'teamManager','Jefe de departamento con privilegios de auxiliar de venta.',1,'2017-09-07 09:08:12','2017-09-07 09:08:12'),(30,'financialBoss','Director finaciero',1,'2017-09-21 11:05:36','2017-09-21 11:05:36'),(31,'freelancer','Trabajadores por cuenta ajena',1,'2017-10-10 12:57:26','2017-10-10 12:59:27'),(32,'ett','Trabajadores de empresa temporal',1,'2017-10-10 12:58:58','2017-10-10 12:59:20'),(33,'invoicing','Personal con acceso a facturación',0,'2018-01-29 16:43:34','2018-01-29 16:43:34'),(34,'agencyBoss','Jefe/a del departamento de agencias',1,'2018-01-29 16:44:39','2018-02-23 07:58:53'),(35,'buyer','Departamento de compras',1,'2018-02-12 10:35:42','2018-02-12 10:35:42'),(36,'replenisher','Trabajadores de camara',1,'2018-02-16 14:07:10','2019-04-12 05:38:08'),(37,'hr','Gestor/a de recursos humanos',1,'2018-02-22 17:34:53','2018-02-22 17:34:53'),(38,'hrBoss','Jefe/a de recursos humanos',1,'2018-02-22 17:35:09','2018-02-22 17:35:09'),(39,'adminAssistant','Jefe auxiliar administrativo',1,'2018-02-23 10:37:36','2018-02-23 10:38:41'),(40,'handmade','Departamento de confección',1,'2018-02-23 11:14:53','2018-02-23 11:39:12'),(41,'handmadeBoss','Jefe de departamento de confección',1,'2018-02-23 11:15:09','2018-02-23 11:39:26'),(42,'artificial','Departamento de artificial',1,'2018-02-23 11:39:59','2018-02-23 11:39:59'),(43,'artificialBoss','Jefe del departamento de artificial',1,'2018-02-23 11:40:16','2018-02-23 11:40:16'),(44,'accessory','Departamento de complementos',1,'2018-02-23 11:41:12','2018-02-23 11:41:12'),(45,'accessoryBoss','Jefe del departamento de complementos',1,'2018-02-23 11:41:23','2018-02-23 11:41:23'),(47,'cooler','Empleados de cámara',1,'2018-02-23 13:08:18','2018-02-23 13:08:18'),(48,'coolerBoss','Jefe del departamento de cámara',1,'2018-02-23 13:12:01','2018-02-23 13:12:01'),(49,'production','Empleado de producción',0,'2018-02-26 15:28:23','2019-01-21 12:57:21'),(50,'productionBoss','Jefe de producción',1,'2018-02-26 15:34:12','2018-02-26 15:34:12'),(51,'marketing','Departamento de marketing',1,'2018-03-01 07:28:39','2018-03-01 07:28:39'),(52,'marketingBoss','Jefe del departamento de marketing',1,'2018-03-01 07:28:57','2018-03-01 07:28:57'),(53,'insurance','Gestor de seguros de cambio',0,'2018-03-05 07:44:35','2019-02-01 13:47:57'),(54,'itemPicker','Sacador en cámara',1,'2018-03-05 12:08:17','2018-03-05 12:08:17'),(55,'itemPickerBoss','Jefe de sacadores',1,'2018-03-05 12:08:31','2018-03-05 12:08:31'),(56,'delivery','Personal de reparto',1,'2018-05-30 06:07:02','2018-05-30 06:07:02'),(57,'deliveryBoss','Jefe de personal de reparto',1,'2018-05-30 06:07:19','2018-05-30 06:07:19'),(58,'packager','Departamento encajadores',1,'2019-01-21 12:43:45','2019-01-21 12:43:45'),(59,'packagerBoss','Jefe departamento encajadores',1,'2019-01-21 12:44:10','2019-01-21 12:44:10'),(60,'productionAssi','Tareas relacionadas con producción y administración',1,'2019-01-29 13:29:01','2019-01-29 13:29:01'); +INSERT INTO `role` VALUES (0,'root','Rol con todos los privilegios',0,'2018-04-23 14:33:36','2018-04-23 14:33:59'),(1,'employee','Empleado básico',1,'2017-05-19 07:04:58','2017-11-29 10:06:31'),(2,'customer','Privilegios básicos de un cliente',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(3,'agency','Consultar tablas de predicciones de bultos',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(5,'administrative','Tareas relacionadas con la contabilidad',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(6,'guest','Privilegios para usuarios sin cuenta',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(9,'developer','Desarrolladores del sistema',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(11,'account','Privilegios relacionados con el login',0,'2017-05-19 07:04:58','2017-09-20 17:06:35'),(13,'teamBoss','Jefe de departamento',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(15,'logistic','Departamento de compras, responsables de la logistica',1,'2017-05-19 07:04:58','2018-02-12 10:50:10'),(16,'logisticBoss','Jefe del departamento de logística',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(17,'adminBoss','Jefe del departamento de administración',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(18,'salesPerson','Departamento de ventas',1,'2017-05-19 07:04:58','2017-05-19 07:04:58'),(19,'salesBoss','Jefe del departamento de ventas',1,'2017-05-19 07:04:58','2017-08-16 12:38:27'),(20,'manager','Departamento de gerencia',1,'2017-06-01 14:57:02','2017-06-01 14:57:51'),(21,'salesAssistant','Jefe auxiliar de ventas',1,'2017-08-16 12:40:52','2017-08-16 12:40:52'),(22,'teamManager','Jefe de departamento con privilegios de auxiliar de venta.',1,'2017-09-07 09:08:12','2017-09-07 09:08:12'),(30,'financialBoss','Director finaciero',1,'2017-09-21 11:05:36','2017-09-21 11:05:36'),(31,'freelancer','Trabajadores por cuenta ajena',1,'2017-10-10 12:57:26','2017-10-10 12:59:27'),(32,'ett','Trabajadores de empresa temporal',1,'2017-10-10 12:58:58','2017-10-10 12:59:20'),(33,'invoicing','Personal con acceso a facturación',0,'2018-01-29 16:43:34','2018-01-29 16:43:34'),(34,'agencyBoss','Jefe/a del departamento de agencias',1,'2018-01-29 16:44:39','2018-02-23 07:58:53'),(35,'buyer','Departamento de compras',1,'2018-02-12 10:35:42','2018-02-12 10:35:42'),(36,'replenisher','Trabajadores de camara',1,'2018-02-16 14:07:10','2019-04-12 05:38:08'),(37,'hr','Gestor/a de recursos humanos',1,'2018-02-22 17:34:53','2018-02-22 17:34:53'),(38,'hrBoss','Jefe/a de recursos humanos',1,'2018-02-22 17:35:09','2018-02-22 17:35:09'),(39,'adminAssistant','Jefe auxiliar administrativo',1,'2018-02-23 10:37:36','2018-02-23 10:38:41'),(40,'handmade','Departamento de confección',1,'2018-02-23 11:14:53','2018-02-23 11:39:12'),(41,'handmadeBoss','Jefe de departamento de confección',1,'2018-02-23 11:15:09','2018-02-23 11:39:26'),(42,'artificial','Departamento de artificial',1,'2018-02-23 11:39:59','2018-02-23 11:39:59'),(43,'artificialBoss','Jefe del departamento de artificial',1,'2018-02-23 11:40:16','2018-02-23 11:40:16'),(44,'accessory','Departamento de complementos',1,'2018-02-23 11:41:12','2018-02-23 11:41:12'),(45,'accessoryBoss','Jefe del departamento de complementos',1,'2018-02-23 11:41:23','2018-02-23 11:41:23'),(47,'cooler','Empleados de cámara',1,'2018-02-23 13:08:18','2018-02-23 13:08:18'),(48,'coolerBoss','Jefe del departamento de cámara',1,'2018-02-23 13:12:01','2018-02-23 13:12:01'),(49,'production','Empleado de producción',0,'2018-02-26 15:28:23','2019-01-21 12:57:21'),(50,'productionBoss','Jefe de producción',1,'2018-02-26 15:34:12','2018-02-26 15:34:12'),(51,'marketing','Departamento de marketing',1,'2018-03-01 07:28:39','2018-03-01 07:28:39'),(52,'marketingBoss','Jefe del departamento de marketing',1,'2018-03-01 07:28:57','2018-03-01 07:28:57'),(53,'insurance','Gestor de seguros de cambio',0,'2018-03-05 07:44:35','2019-02-01 13:47:57'),(54,'itemPicker','Sacador en cámara',1,'2018-03-05 12:08:17','2018-03-05 12:08:17'),(55,'itemPickerBoss','Jefe de sacadores',1,'2018-03-05 12:08:31','2018-03-05 12:08:31'),(56,'delivery','Personal de reparto',1,'2018-05-30 06:07:02','2018-05-30 06:07:02'),(57,'deliveryBoss','Jefe de personal de reparto',1,'2018-05-30 06:07:19','2018-05-30 06:07:19'),(58,'packager','Departamento encajadores',1,'2019-01-21 12:43:45','2019-01-21 12:43:45'),(59,'packagerBoss','Jefe departamento encajadores',1,'2019-01-21 12:44:10','2019-01-21 12:44:10'),(60,'productionAssi','Tareas relacionadas con producción y administración',1,'2019-01-29 13:29:01','2019-01-29 13:29:01'),(61,'replenisherBos','Jefe de Complementos/Camara',1,'2019-07-01 06:44:07','2019-07-01 06:44:07'),(62,'noLogin','Role without login access to MySQL',0,'2019-07-01 06:50:19','2019-07-02 13:42:05'); /*!40000 ALTER TABLE `role` ENABLE KEYS */; UNLOCK TABLES; @@ -71,7 +71,7 @@ UNLOCK TABLES; LOCK TABLES `roleInherit` WRITE; /*!40000 ALTER TABLE `roleInherit` DISABLE KEYS */; -INSERT INTO `roleInherit` VALUES (9,0),(5,1),(13,1),(18,1),(31,1),(32,1),(34,1),(35,1),(37,1),(40,1),(42,1),(44,1),(47,1),(51,1),(53,1),(54,1),(56,1),(58,1),(1,2),(1,3),(30,5),(39,5),(60,5),(11,6),(1,11),(2,11),(3,11),(16,13),(20,13),(21,13),(22,13),(34,13),(41,13),(43,13),(45,13),(48,13),(50,13),(52,13),(55,13),(57,13),(59,13),(16,15),(21,18),(5,19),(52,19),(17,20),(30,20),(19,21),(22,21),(39,21),(30,22),(5,33),(34,33),(15,35),(20,35),(52,35),(49,36),(17,37),(38,37),(17,39),(41,40),(43,42),(36,44),(45,44),(36,47),(48,47),(50,49),(60,50),(52,51),(21,53),(30,53),(55,54),(57,56),(50,57),(60,57),(49,58),(59,58),(50,59); +INSERT INTO `roleInherit` VALUES (9,0),(5,1),(13,1),(18,1),(31,1),(32,1),(34,1),(35,1),(37,1),(40,1),(42,1),(44,1),(47,1),(51,1),(53,1),(54,1),(56,1),(58,1),(1,2),(1,3),(30,5),(39,5),(60,5),(11,6),(1,11),(2,11),(3,11),(16,13),(20,13),(21,13),(22,13),(34,13),(41,13),(43,13),(45,13),(48,13),(50,13),(52,13),(55,13),(57,13),(59,13),(61,13),(16,15),(21,18),(5,19),(52,19),(17,20),(30,20),(19,21),(22,21),(39,21),(30,22),(5,33),(34,33),(15,35),(20,35),(52,35),(49,36),(61,36),(17,37),(38,37),(17,39),(41,40),(43,42),(36,44),(45,44),(36,47),(48,47),(50,49),(60,50),(52,51),(21,53),(30,53),(55,54),(57,56),(50,57),(60,57),(49,58),(59,58),(50,59); /*!40000 ALTER TABLE `roleInherit` ENABLE KEYS */; UNLOCK TABLES; @@ -81,7 +81,7 @@ UNLOCK TABLES; LOCK TABLES `roleRole` WRITE; /*!40000 ALTER TABLE `roleRole` DISABLE KEYS */; -INSERT INTO `roleRole` VALUES (0,0),(0,1),(0,2),(0,3),(0,5),(0,6),(0,9),(0,11),(0,13),(0,15),(0,16),(0,17),(0,18),(0,19),(0,20),(0,21),(0,22),(0,30),(0,31),(0,32),(0,33),(0,34),(0,35),(0,36),(0,37),(0,38),(0,39),(0,40),(0,41),(0,42),(0,43),(0,44),(0,45),(0,47),(0,48),(0,49),(0,50),(0,51),(0,52),(0,53),(0,54),(0,55),(0,56),(0,57),(0,58),(0,59),(0,60),(1,1),(1,2),(1,3),(1,6),(1,11),(2,2),(2,6),(2,11),(3,3),(3,6),(3,11),(5,1),(5,2),(5,3),(5,5),(5,6),(5,11),(5,13),(5,18),(5,19),(5,21),(5,33),(5,53),(6,6),(9,0),(9,1),(9,2),(9,3),(9,5),(9,6),(9,9),(9,11),(9,13),(9,15),(9,16),(9,17),(9,18),(9,19),(9,20),(9,21),(9,22),(9,30),(9,31),(9,32),(9,33),(9,34),(9,35),(9,36),(9,37),(9,38),(9,39),(9,40),(9,41),(9,42),(9,43),(9,44),(9,45),(9,47),(9,48),(9,49),(9,50),(9,51),(9,52),(9,53),(9,54),(9,55),(9,56),(9,57),(9,58),(9,59),(9,60),(11,6),(11,11),(13,1),(13,2),(13,3),(13,6),(13,11),(13,13),(15,1),(15,2),(15,3),(15,6),(15,11),(15,15),(15,35),(16,1),(16,2),(16,3),(16,6),(16,11),(16,13),(16,15),(16,16),(16,35),(17,1),(17,2),(17,3),(17,5),(17,6),(17,11),(17,13),(17,17),(17,18),(17,19),(17,20),(17,21),(17,33),(17,35),(17,37),(17,39),(17,53),(18,1),(18,2),(18,3),(18,6),(18,11),(18,18),(19,1),(19,2),(19,3),(19,6),(19,11),(19,13),(19,18),(19,19),(19,21),(19,53),(20,1),(20,2),(20,3),(20,6),(20,11),(20,13),(20,20),(20,35),(21,1),(21,2),(21,3),(21,6),(21,11),(21,13),(21,18),(21,21),(21,53),(22,1),(22,2),(22,3),(22,6),(22,11),(22,13),(22,18),(22,21),(22,22),(22,53),(30,1),(30,2),(30,3),(30,5),(30,6),(30,11),(30,13),(30,18),(30,19),(30,20),(30,21),(30,22),(30,30),(30,33),(30,35),(30,53),(31,1),(31,2),(31,3),(31,6),(31,11),(31,31),(32,1),(32,2),(32,3),(32,6),(32,11),(32,32),(33,33),(34,1),(34,2),(34,3),(34,6),(34,11),(34,13),(34,33),(34,34),(35,1),(35,2),(35,3),(35,6),(35,11),(35,35),(36,1),(36,2),(36,3),(36,6),(36,11),(36,36),(36,44),(36,47),(37,1),(37,2),(37,3),(37,6),(37,11),(37,37),(38,1),(38,2),(38,3),(38,6),(38,11),(38,37),(38,38),(39,1),(39,2),(39,3),(39,5),(39,6),(39,11),(39,13),(39,18),(39,19),(39,21),(39,33),(39,39),(39,53),(40,1),(40,2),(40,3),(40,6),(40,11),(40,40),(41,1),(41,2),(41,3),(41,6),(41,11),(41,13),(41,40),(41,41),(42,1),(42,2),(42,3),(42,6),(42,11),(42,42),(43,1),(43,2),(43,3),(43,6),(43,11),(43,13),(43,42),(43,43),(44,1),(44,2),(44,3),(44,6),(44,11),(44,44),(45,1),(45,2),(45,3),(45,6),(45,11),(45,13),(45,44),(45,45),(47,1),(47,2),(47,3),(47,6),(47,11),(47,47),(48,1),(48,2),(48,3),(48,6),(48,11),(48,13),(48,47),(48,48),(49,1),(49,2),(49,3),(49,6),(49,11),(49,36),(49,44),(49,47),(49,49),(49,58),(50,1),(50,2),(50,3),(50,6),(50,11),(50,13),(50,36),(50,44),(50,47),(50,49),(50,50),(50,56),(50,57),(50,58),(50,59),(51,1),(51,2),(51,3),(51,6),(51,11),(51,51),(52,1),(52,2),(52,3),(52,6),(52,11),(52,13),(52,18),(52,19),(52,21),(52,35),(52,51),(52,52),(52,53),(53,1),(53,2),(53,3),(53,6),(53,11),(53,53),(54,1),(54,2),(54,3),(54,6),(54,11),(54,54),(55,1),(55,2),(55,3),(55,6),(55,11),(55,13),(55,54),(55,55),(56,1),(56,2),(56,3),(56,6),(56,11),(56,56),(57,1),(57,2),(57,3),(57,6),(57,11),(57,13),(57,56),(57,57),(58,1),(58,2),(58,3),(58,6),(58,11),(58,58),(59,1),(59,2),(59,3),(59,6),(59,11),(59,13),(59,58),(59,59),(60,1),(60,2),(60,3),(60,5),(60,6),(60,11),(60,13),(60,18),(60,19),(60,21),(60,33),(60,36),(60,44),(60,47),(60,49),(60,50),(60,53),(60,56),(60,57),(60,58),(60,59),(60,60); +INSERT INTO `roleRole` VALUES (0,0),(0,1),(0,2),(0,3),(0,5),(0,6),(0,9),(0,11),(0,13),(0,15),(0,16),(0,17),(0,18),(0,19),(0,20),(0,21),(0,22),(0,30),(0,31),(0,32),(0,33),(0,34),(0,35),(0,36),(0,37),(0,38),(0,39),(0,40),(0,41),(0,42),(0,43),(0,44),(0,45),(0,47),(0,48),(0,49),(0,50),(0,51),(0,52),(0,53),(0,54),(0,55),(0,56),(0,57),(0,58),(0,59),(0,60),(0,61),(1,1),(1,2),(1,3),(1,6),(1,11),(2,2),(2,6),(2,11),(3,3),(3,6),(3,11),(5,1),(5,2),(5,3),(5,5),(5,6),(5,11),(5,13),(5,18),(5,19),(5,21),(5,33),(5,53),(6,6),(9,0),(9,1),(9,2),(9,3),(9,5),(9,6),(9,9),(9,11),(9,13),(9,15),(9,16),(9,17),(9,18),(9,19),(9,20),(9,21),(9,22),(9,30),(9,31),(9,32),(9,33),(9,34),(9,35),(9,36),(9,37),(9,38),(9,39),(9,40),(9,41),(9,42),(9,43),(9,44),(9,45),(9,47),(9,48),(9,49),(9,50),(9,51),(9,52),(9,53),(9,54),(9,55),(9,56),(9,57),(9,58),(9,59),(9,60),(9,61),(11,6),(11,11),(13,1),(13,2),(13,3),(13,6),(13,11),(13,13),(15,1),(15,2),(15,3),(15,6),(15,11),(15,15),(15,35),(16,1),(16,2),(16,3),(16,6),(16,11),(16,13),(16,15),(16,16),(16,35),(17,1),(17,2),(17,3),(17,5),(17,6),(17,11),(17,13),(17,17),(17,18),(17,19),(17,20),(17,21),(17,33),(17,35),(17,37),(17,39),(17,53),(18,1),(18,2),(18,3),(18,6),(18,11),(18,18),(19,1),(19,2),(19,3),(19,6),(19,11),(19,13),(19,18),(19,19),(19,21),(19,53),(20,1),(20,2),(20,3),(20,6),(20,11),(20,13),(20,20),(20,35),(21,1),(21,2),(21,3),(21,6),(21,11),(21,13),(21,18),(21,21),(21,53),(22,1),(22,2),(22,3),(22,6),(22,11),(22,13),(22,18),(22,21),(22,22),(22,53),(30,1),(30,2),(30,3),(30,5),(30,6),(30,11),(30,13),(30,18),(30,19),(30,20),(30,21),(30,22),(30,30),(30,33),(30,35),(30,53),(31,1),(31,2),(31,3),(31,6),(31,11),(31,31),(32,1),(32,2),(32,3),(32,6),(32,11),(32,32),(33,33),(34,1),(34,2),(34,3),(34,6),(34,11),(34,13),(34,33),(34,34),(35,1),(35,2),(35,3),(35,6),(35,11),(35,35),(36,1),(36,2),(36,3),(36,6),(36,11),(36,36),(36,44),(36,47),(37,1),(37,2),(37,3),(37,6),(37,11),(37,37),(38,1),(38,2),(38,3),(38,6),(38,11),(38,37),(38,38),(39,1),(39,2),(39,3),(39,5),(39,6),(39,11),(39,13),(39,18),(39,19),(39,21),(39,33),(39,39),(39,53),(40,1),(40,2),(40,3),(40,6),(40,11),(40,40),(41,1),(41,2),(41,3),(41,6),(41,11),(41,13),(41,40),(41,41),(42,1),(42,2),(42,3),(42,6),(42,11),(42,42),(43,1),(43,2),(43,3),(43,6),(43,11),(43,13),(43,42),(43,43),(44,1),(44,2),(44,3),(44,6),(44,11),(44,44),(45,1),(45,2),(45,3),(45,6),(45,11),(45,13),(45,44),(45,45),(47,1),(47,2),(47,3),(47,6),(47,11),(47,47),(48,1),(48,2),(48,3),(48,6),(48,11),(48,13),(48,47),(48,48),(49,1),(49,2),(49,3),(49,6),(49,11),(49,36),(49,44),(49,47),(49,49),(49,58),(50,1),(50,2),(50,3),(50,6),(50,11),(50,13),(50,36),(50,44),(50,47),(50,49),(50,50),(50,56),(50,57),(50,58),(50,59),(51,1),(51,2),(51,3),(51,6),(51,11),(51,51),(52,1),(52,2),(52,3),(52,6),(52,11),(52,13),(52,18),(52,19),(52,21),(52,35),(52,51),(52,52),(52,53),(53,1),(53,2),(53,3),(53,6),(53,11),(53,53),(54,1),(54,2),(54,3),(54,6),(54,11),(54,54),(55,1),(55,2),(55,3),(55,6),(55,11),(55,13),(55,54),(55,55),(56,1),(56,2),(56,3),(56,6),(56,11),(56,56),(57,1),(57,2),(57,3),(57,6),(57,11),(57,13),(57,56),(57,57),(58,1),(58,2),(58,3),(58,6),(58,11),(58,58),(59,1),(59,2),(59,3),(59,6),(59,11),(59,13),(59,58),(59,59),(60,1),(60,2),(60,3),(60,5),(60,6),(60,11),(60,13),(60,18),(60,19),(60,21),(60,33),(60,36),(60,44),(60,47),(60,49),(60,50),(60,53),(60,56),(60,57),(60,58),(60,59),(60,60),(61,1),(61,2),(61,3),(61,6),(61,11),(61,13),(61,36),(61,44),(61,47),(61,61); /*!40000 ALTER TABLE `roleRole` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -94,7 +94,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:09 +-- Dump completed on 2019-07-04 11:10:34 USE `salix`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -119,7 +119,7 @@ USE `salix`; LOCK TABLES `ACL` WRITE; /*!40000 ALTER TABLE `ACL` DISABLE KEYS */; -INSERT INTO `ACL` VALUES (1,'Account','*','*','ALLOW','ROLE','employee'),(3,'Address','*','*','ALLOW','ROLE','employee'),(5,'AgencyService','*','READ','ALLOW','ROLE','employee'),(7,'Client','*','*','ALLOW','ROLE','employee'),(9,'ClientObservation','*','*','ALLOW','ROLE','employee'),(11,'ContactChannel','*','READ','ALLOW','ROLE','employee'),(13,'Employee','*','READ','ALLOW','ROLE','employee'),(14,'PayMethod','*','READ','ALLOW','ROLE','employee'),(16,'FakeProduction','*','READ','ALLOW','ROLE','employee'),(17,'Warehouse','* ','READ','ALLOW','ROLE','employee'),(18,'State','*','READ','ALLOW','ROLE','employee'),(20,'TicketState','*','*','ALLOW','ROLE','employee'),(24,'Delivery','*','READ','ALLOW','ROLE','employee'),(25,'Zone','*','READ','ALLOW','ROLE','employee'),(26,'ClientCredit','*','*','ALLOW','ROLE','employee'),(27,'ClientCreditLimit','*','READ','ALLOW','ROLE','employee'),(30,'GreugeType','*','READ','ALLOW','ROLE','employee'),(31,'Mandate','*','READ','ALLOW','ROLE','employee'),(32,'MandateType','*','READ','ALLOW','ROLE','employee'),(33,'Company','*','READ','ALLOW','ROLE','employee'),(34,'Greuge','*','READ','ALLOW','ROLE','employee'),(35,'AddressObservation','*','*','ALLOW','ROLE','employee'),(36,'ObservationType','*','*','ALLOW','ROLE','employee'),(37,'Greuge','*','WRITE','ALLOW','ROLE','employee'),(38,'AgencyMode','*','READ','ALLOW','ROLE','employee'),(39,'ItemTag','*','WRITE','ALLOW','ROLE','buyer'),(40,'ItemBotanical','*','WRITE','ALLOW','ROLE','buyer'),(41,'ItemBotanical','*','READ','ALLOW','ROLE','employee'),(42,'ItemPlacement','*','WRITE','ALLOW','ROLE','buyer'),(43,'ItemPlacement','*','WRITE','ALLOW','ROLE','replenisher'),(44,'ItemPlacement','*','READ','ALLOW','ROLE','employee'),(45,'ItemBarcode','*','READ','ALLOW','ROLE','employee'),(46,'ItemBarcode','*','WRITE','ALLOW','ROLE','buyer'),(47,'ItemBarcode','*','WRITE','ALLOW','ROLE','replenisher'),(48,'ItemNiche','*','READ','ALLOW','ROLE','employee'),(49,'ItemNiche','*','WRITE','ALLOW','ROLE','buyer'),(50,'ItemNiche','*','WRITE','ALLOW','ROLE','replenisher'),(51,'ItemTag','*','READ','ALLOW','ROLE','employee'),(53,'Item','*','READ','ALLOW','ROLE','employee'),(54,'Item','*','WRITE','ALLOW','ROLE','buyer'),(55,'Recovery','*','READ','ALLOW','ROLE','employee'),(56,'Recovery','*','WRITE','ALLOW','ROLE','administrative'),(58,'CreditClassification','*','*','ALLOW','ROLE','insurance'),(60,'CreditInsurance','*','*','ALLOW','ROLE','insurance'),(61,'InvoiceOut','*','READ','ALLOW','ROLE','employee'),(62,'Ticket','*','*','ALLOW','ROLE','employee'),(63,'TicketObservation','*','*','ALLOW','ROLE','employee'),(64,'Route','*','READ','ALLOW','ROLE','employee'),(65,'Sale','*','READ','ALLOW','ROLE','employee'),(66,'TicketTracking','*','READ','ALLOW','ROLE','employee'),(68,'TicketPackaging','*','*','ALLOW','ROLE','employee'),(69,'Packaging','*','READ','ALLOW','ROLE','employee'),(70,'Packaging','*','WRITE','ALLOW','ROLE','logistic'),(71,'SaleChecked','*','READ','ALLOW','ROLE','employee'),(72,'SaleComponent','*','READ','ALLOW','ROLE','employee'),(73,'Expedition','*','READ','ALLOW','ROLE','employee'),(74,'Expedition','*','WRITE','ALLOW','ROLE','deliveryBoss'),(75,'Expedition','*','WRITE','ALLOW','ROLE','production'),(76,'AnnualAverageInvoiced','*','READ','ALLOW','ROLE','employee'),(77,'WorkerMana','*','READ','ALLOW','ROLE','employee'),(78,'TicketTracking','*','WRITE','ALLOW','ROLE','production'),(79,'TicketTracking','changeState','*','ALLOW','ROLE','employee'),(80,'Sale','removes','*','ALLOW','ROLE','employee'),(81,'Sale','moveToTicket','*','ALLOW','ROLE','employee'),(82,'Sale','updateQuantity','*','ALLOW','ROLE','employee'),(83,'Sale','updatePrice','*','ALLOW','ROLE','employee'),(84,'Sale','updateDiscount','*','ALLOW','ROLE','employee'),(85,'SaleTracking','*','READ','ALLOW','ROLE','employee'),(86,'Order','*','*','ALLOW','ROLE','employee'),(87,'OrderRow','*','*','ALLOW','ROLE','employee'),(88,'ClientContact','*','*','ALLOW','ROLE','employee'),(89,'Sale','moveToNewTicket','*','ALLOW','ROLE','employee'),(90,'Sale','reserve','*','ALLOW','ROLE','employee'),(91,'TicketWeekly','*','*','ALLOW','ROLE','employee'),(94,'Agency','landsThatDay','*','ALLOW','ROLE','employee'),(96,'ClaimEnd','*','READ','ALLOW','ROLE','employee'),(97,'ClaimEnd','*','WRITE','ALLOW','ROLE','salesAssistant'),(98,'ClaimBeginning','*','*','ALLOW','ROLE','employee'),(99,'ClaimDevelopment','*','READ','ALLOW','ROLE','employee'),(100,'ClaimDevelopment','*','WRITE','ALLOW','ROLE','salesAssistant'),(101,'Claim','*','*','ALLOW','ROLE','employee'),(102,'Claim','createFromSales','*','ALLOW','ROLE','employee'),(103,'ClaimEnd','importTicketSales','WRITE','ALLOW','ROLE','salesAssistant'),(104,'Item','*','WRITE','ALLOW','ROLE','marketingBoss'),(105,'ItemBarcode','*','WRITE','ALLOW','ROLE','marketingBoss'),(106,'ItemBotanical','*','WRITE','ALLOW','ROLE','marketingBoss'),(107,'ItemNiche','*','WRITE','ALLOW','ROLE','marketingBoss'),(108,'ItemPlacement','*','WRITE','ALLOW','ROLE','marketingBoss'),(109,'UserConfig','*','*','ALLOW','ROLE','employee'),(110,'Bank','*','READ','ALLOW','ROLE','employee'),(111,'ClientLog','*','READ','ALLOW','ROLE','employee'),(112,'Defaulter','*','READ','ALLOW','ROLE','employee'),(113,'ClientRisk','*','READ','ALLOW','ROLE','employee'),(114,'Receipt','*','READ','ALLOW','ROLE','employee'),(115,'Receipt','*','WRITE','ALLOW','ROLE','administrative'),(116,'BankEntity','*','*','ALLOW','ROLE','employee'),(117,'ClientSample','*','*','ALLOW','ROLE','employee'),(118,'WorkerTeam','*','*','ALLOW','ROLE','salesPerson'),(119,'Travel','*','READ','ALLOW','ROLE','employee'),(120,'Travel','*','WRITE','ALLOW','ROLE','buyer'),(121,'Item','regularize','*','ALLOW','ROLE','employee'),(122,'TicketRequest','*','*','ALLOW','ROLE','salesPerson'),(123,'Worker','*','*','ALLOW','ROLE','employee'),(124,'Client','confirmTransaction','WRITE','ALLOW','ROLE','administrative'),(125,'Agency','getAgenciesWithWarehouse','*','ALLOW','ROLE','employee'),(126,'Client','activeWorkersWithRole','*','ALLOW','ROLE','employee'),(127,'TicketLog','*','READ','ALLOW','ROLE','employee'),(129,'TicketService','*','*','ALLOW','ROLE','employee'),(130,'Expedition','*','WRITE','ALLOW','ROLE','packager'),(131,'CreditInsurance','*','READ','ALLOW','ROLE','employee'),(132,'CreditClassification','*','READ','ALLOW','ROLE','employee'),(133,'ItemTag','*','WRITE','ALLOW','ROLE','marketingBoss'),(135,'ZoneGeo','*','READ','ALLOW','ROLE','employee'),(136,'ZoneCalendar','*','READ','ALLOW','ROLE','employee'),(137,'ZoneIncluded','*','READ','ALLOW','ROLE','employee'),(138,'LabourHoliday','*','READ','ALLOW','ROLE','employee'),(139,'LabourHolidayLegend','*','READ','ALLOW','ROLE','employee'),(140,'LabourHolidayType','*','READ','ALLOW','ROLE','employee'),(141,'Zone','*','WRITE','ALLOW','ROLE','deliveryBoss'),(142,'ZoneCalendar','*','WRITE','ALLOW','ROLE','deliveryBoss'),(143,'ZoneIncluded','*','*','ALLOW','ROLE','deliveryBoss'),(144,'Stowaway','*','*','ALLOW','ROLE','employee'),(145,'Ticket','getPossibleStowaways','READ','ALLOW','ROLE','employee'),(147,'UserConfigView','*','*','ALLOW','ROLE','employee'),(148,'UserConfigView','*','*','ALLOW','ROLE','employee'),(149,'Sip','*','READ','ALLOW','ROLE','employee'),(150,'Sip','*','WRITE','ALLOW','ROLE','hr'),(151,'Department','*','READ','ALLOW','ROLE','employee'),(152,'Department','*','WRITE','ALLOW','ROLE','hr'),(153,'Route','*','READ','ALLOW','ROLE','employee'),(154,'Route','*','WRITE','ALLOW','ROLE','delivery'),(155,'WorkerCalendar','*','READ','ALLOW','ROLE','hr'),(156,'WorkerLabour','*','READ','ALLOW','ROLE','hr'),(157,'WorkerCalendar','absences','READ','ALLOW','ROLE','employee'),(158,'ItemTag','*','WRITE','ALLOW','ROLE','accessory'),(160,'TicketServiceType','*','READ','ALLOW','ROLE','employee'),(161,'TicketConfig','*','READ','ALLOW','ROLE','employee'),(162,'InvoiceOut','delete','WRITE','ALLOW','ROLE','invoicing'),(163,'InvoiceOut','book','WRITE','ALLOW','ROLE','invoicing'),(164,'InvoiceOut','regenerate','WRITE','ALLOW','ROLE','invoicing'),(165,'TicketDms','*','READ','ALLOW','ROLE','employee'),(166,'Dms','download','READ','ALLOW','ROLE','employee'),(172,'Sms','*','READ','ALLOW','ROLE','employee'),(173,'Sms','send','WRITE','ALLOW','ROLE','employee'),(174,'Agency','getLanded','READ','ALLOW','ROLE','employee'),(175,'Agency','getShipped','READ','ALLOW','ROLE','employee'),(176,'Device','*','*','ALLOW','ROLE','employee'),(177,'Device','*','*','ALLOW','ROLE','employee'),(178,'WorkerTimeControl','*','*','ALLOW','ROLE','employee'); +INSERT INTO `ACL` VALUES (1,'Account','*','*','ALLOW','ROLE','employee'),(3,'Address','*','*','ALLOW','ROLE','employee'),(5,'AgencyService','*','READ','ALLOW','ROLE','employee'),(7,'Client','*','*','ALLOW','ROLE','employee'),(9,'ClientObservation','*','*','ALLOW','ROLE','employee'),(11,'ContactChannel','*','READ','ALLOW','ROLE','employee'),(13,'Employee','*','READ','ALLOW','ROLE','employee'),(14,'PayMethod','*','READ','ALLOW','ROLE','employee'),(16,'FakeProduction','*','READ','ALLOW','ROLE','employee'),(17,'Warehouse','* ','READ','ALLOW','ROLE','employee'),(18,'State','*','READ','ALLOW','ROLE','employee'),(20,'TicketState','*','*','ALLOW','ROLE','employee'),(24,'Delivery','*','READ','ALLOW','ROLE','employee'),(25,'Zone','*','READ','ALLOW','ROLE','employee'),(26,'ClientCredit','*','*','ALLOW','ROLE','employee'),(27,'ClientCreditLimit','*','READ','ALLOW','ROLE','employee'),(30,'GreugeType','*','READ','ALLOW','ROLE','employee'),(31,'Mandate','*','READ','ALLOW','ROLE','employee'),(32,'MandateType','*','READ','ALLOW','ROLE','employee'),(33,'Company','*','READ','ALLOW','ROLE','employee'),(34,'Greuge','*','READ','ALLOW','ROLE','employee'),(35,'AddressObservation','*','*','ALLOW','ROLE','employee'),(36,'ObservationType','*','*','ALLOW','ROLE','employee'),(37,'Greuge','*','WRITE','ALLOW','ROLE','employee'),(38,'AgencyMode','*','READ','ALLOW','ROLE','employee'),(39,'ItemTag','*','WRITE','ALLOW','ROLE','buyer'),(40,'ItemBotanical','*','WRITE','ALLOW','ROLE','buyer'),(41,'ItemBotanical','*','READ','ALLOW','ROLE','employee'),(42,'ItemPlacement','*','WRITE','ALLOW','ROLE','buyer'),(43,'ItemPlacement','*','WRITE','ALLOW','ROLE','replenisher'),(44,'ItemPlacement','*','READ','ALLOW','ROLE','employee'),(45,'ItemBarcode','*','READ','ALLOW','ROLE','employee'),(46,'ItemBarcode','*','WRITE','ALLOW','ROLE','buyer'),(47,'ItemBarcode','*','WRITE','ALLOW','ROLE','replenisher'),(48,'ItemNiche','*','READ','ALLOW','ROLE','employee'),(49,'ItemNiche','*','WRITE','ALLOW','ROLE','buyer'),(50,'ItemNiche','*','WRITE','ALLOW','ROLE','replenisher'),(51,'ItemTag','*','READ','ALLOW','ROLE','employee'),(53,'Item','*','READ','ALLOW','ROLE','employee'),(54,'Item','*','WRITE','ALLOW','ROLE','buyer'),(55,'Recovery','*','READ','ALLOW','ROLE','employee'),(56,'Recovery','*','WRITE','ALLOW','ROLE','administrative'),(58,'CreditClassification','*','*','ALLOW','ROLE','insurance'),(60,'CreditInsurance','*','*','ALLOW','ROLE','insurance'),(61,'InvoiceOut','*','READ','ALLOW','ROLE','employee'),(62,'Ticket','*','*','ALLOW','ROLE','employee'),(63,'TicketObservation','*','*','ALLOW','ROLE','employee'),(64,'Route','*','READ','ALLOW','ROLE','employee'),(65,'Sale','*','READ','ALLOW','ROLE','employee'),(66,'TicketTracking','*','READ','ALLOW','ROLE','employee'),(68,'TicketPackaging','*','*','ALLOW','ROLE','employee'),(69,'Packaging','*','READ','ALLOW','ROLE','employee'),(70,'Packaging','*','WRITE','ALLOW','ROLE','logistic'),(71,'SaleChecked','*','READ','ALLOW','ROLE','employee'),(72,'SaleComponent','*','READ','ALLOW','ROLE','employee'),(73,'Expedition','*','READ','ALLOW','ROLE','employee'),(74,'Expedition','*','WRITE','ALLOW','ROLE','deliveryBoss'),(75,'Expedition','*','WRITE','ALLOW','ROLE','production'),(76,'AnnualAverageInvoiced','*','READ','ALLOW','ROLE','employee'),(77,'WorkerMana','*','READ','ALLOW','ROLE','employee'),(78,'TicketTracking','*','WRITE','ALLOW','ROLE','production'),(79,'TicketTracking','changeState','*','ALLOW','ROLE','employee'),(80,'Sale','removes','*','ALLOW','ROLE','employee'),(81,'Sale','moveToTicket','*','ALLOW','ROLE','employee'),(82,'Sale','updateQuantity','*','ALLOW','ROLE','employee'),(83,'Sale','updatePrice','*','ALLOW','ROLE','employee'),(84,'Sale','updateDiscount','*','ALLOW','ROLE','employee'),(85,'SaleTracking','*','READ','ALLOW','ROLE','employee'),(86,'Order','*','*','ALLOW','ROLE','employee'),(87,'OrderRow','*','*','ALLOW','ROLE','employee'),(88,'ClientContact','*','*','ALLOW','ROLE','employee'),(89,'Sale','moveToNewTicket','*','ALLOW','ROLE','employee'),(90,'Sale','reserve','*','ALLOW','ROLE','employee'),(91,'TicketWeekly','*','*','ALLOW','ROLE','employee'),(94,'Agency','landsThatDay','*','ALLOW','ROLE','employee'),(96,'ClaimEnd','*','READ','ALLOW','ROLE','employee'),(97,'ClaimEnd','*','WRITE','ALLOW','ROLE','salesAssistant'),(98,'ClaimBeginning','*','*','ALLOW','ROLE','employee'),(99,'ClaimDevelopment','*','READ','ALLOW','ROLE','employee'),(100,'ClaimDevelopment','*','WRITE','ALLOW','ROLE','salesAssistant'),(101,'Claim','*','*','ALLOW','ROLE','employee'),(102,'Claim','createFromSales','*','ALLOW','ROLE','employee'),(103,'ClaimEnd','importTicketSales','WRITE','ALLOW','ROLE','salesAssistant'),(104,'Item','*','WRITE','ALLOW','ROLE','marketingBoss'),(105,'ItemBarcode','*','WRITE','ALLOW','ROLE','marketingBoss'),(106,'ItemBotanical','*','WRITE','ALLOW','ROLE','marketingBoss'),(107,'ItemNiche','*','WRITE','ALLOW','ROLE','marketingBoss'),(108,'ItemPlacement','*','WRITE','ALLOW','ROLE','marketingBoss'),(109,'UserConfig','*','*','ALLOW','ROLE','employee'),(110,'Bank','*','READ','ALLOW','ROLE','employee'),(111,'ClientLog','*','READ','ALLOW','ROLE','employee'),(112,'Defaulter','*','READ','ALLOW','ROLE','employee'),(113,'ClientRisk','*','READ','ALLOW','ROLE','employee'),(114,'Receipt','*','READ','ALLOW','ROLE','employee'),(115,'Receipt','*','WRITE','ALLOW','ROLE','administrative'),(116,'BankEntity','*','*','ALLOW','ROLE','employee'),(117,'ClientSample','*','*','ALLOW','ROLE','employee'),(118,'WorkerTeam','*','*','ALLOW','ROLE','salesPerson'),(119,'Travel','*','READ','ALLOW','ROLE','employee'),(120,'Travel','*','WRITE','ALLOW','ROLE','buyer'),(121,'Item','regularize','*','ALLOW','ROLE','employee'),(122,'TicketRequest','*','*','ALLOW','ROLE','salesPerson'),(123,'Worker','*','*','ALLOW','ROLE','employee'),(124,'Client','confirmTransaction','WRITE','ALLOW','ROLE','administrative'),(125,'Agency','getAgenciesWithWarehouse','*','ALLOW','ROLE','employee'),(126,'Client','activeWorkersWithRole','*','ALLOW','ROLE','employee'),(127,'TicketLog','*','READ','ALLOW','ROLE','employee'),(129,'TicketService','*','*','ALLOW','ROLE','employee'),(130,'Expedition','*','WRITE','ALLOW','ROLE','packager'),(131,'CreditInsurance','*','READ','ALLOW','ROLE','employee'),(132,'CreditClassification','*','READ','ALLOW','ROLE','employee'),(133,'ItemTag','*','WRITE','ALLOW','ROLE','marketingBoss'),(135,'ZoneGeo','*','READ','ALLOW','ROLE','employee'),(136,'ZoneCalendar','*','READ','ALLOW','ROLE','employee'),(137,'ZoneIncluded','*','READ','ALLOW','ROLE','employee'),(138,'LabourHoliday','*','READ','ALLOW','ROLE','employee'),(139,'LabourHolidayLegend','*','READ','ALLOW','ROLE','employee'),(140,'LabourHolidayType','*','READ','ALLOW','ROLE','employee'),(141,'Zone','*','WRITE','ALLOW','ROLE','deliveryBoss'),(142,'ZoneCalendar','*','WRITE','ALLOW','ROLE','deliveryBoss'),(143,'ZoneIncluded','*','*','ALLOW','ROLE','deliveryBoss'),(144,'Stowaway','*','*','ALLOW','ROLE','employee'),(145,'Ticket','getPossibleStowaways','READ','ALLOW','ROLE','employee'),(147,'UserConfigView','*','*','ALLOW','ROLE','employee'),(148,'UserConfigView','*','*','ALLOW','ROLE','employee'),(149,'Sip','*','READ','ALLOW','ROLE','employee'),(150,'Sip','*','WRITE','ALLOW','ROLE','hr'),(151,'Department','*','READ','ALLOW','ROLE','employee'),(152,'Department','*','WRITE','ALLOW','ROLE','hr'),(153,'Route','*','READ','ALLOW','ROLE','employee'),(154,'Route','*','WRITE','ALLOW','ROLE','delivery'),(155,'WorkerCalendar','*','READ','ALLOW','ROLE','hr'),(156,'WorkerLabour','*','READ','ALLOW','ROLE','hr'),(157,'WorkerCalendar','absences','READ','ALLOW','ROLE','employee'),(158,'ItemTag','*','WRITE','ALLOW','ROLE','accessory'),(160,'TicketServiceType','*','READ','ALLOW','ROLE','employee'),(161,'TicketConfig','*','READ','ALLOW','ROLE','employee'),(162,'InvoiceOut','delete','WRITE','ALLOW','ROLE','invoicing'),(163,'InvoiceOut','book','WRITE','ALLOW','ROLE','invoicing'),(164,'InvoiceOut','regenerate','WRITE','ALLOW','ROLE','invoicing'),(165,'TicketDms','*','READ','ALLOW','ROLE','employee'),(166,'Dms','download','READ','ALLOW','ROLE','employee'),(172,'Sms','*','READ','ALLOW','ROLE','employee'),(173,'Sms','send','WRITE','ALLOW','ROLE','employee'),(174,'Agency','getLanded','READ','ALLOW','ROLE','employee'),(175,'Agency','getShipped','READ','ALLOW','ROLE','employee'),(176,'Device','*','*','ALLOW','ROLE','employee'),(177,'Device','*','*','ALLOW','ROLE','employee'),(178,'WorkerTimeControl','*','*','ALLOW','ROLE','employee'),(179,'ItemLog','*','READ','ALLOW','ROLE','employee'),(180,'RouteLog','*','READ','ALLOW','ROLE','employee'); /*!40000 ALTER TABLE `ACL` ENABLE KEYS */; UNLOCK TABLES; @@ -142,7 +142,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:09 +-- Dump completed on 2019-07-04 11:10:34 USE `vn`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -227,7 +227,7 @@ UNLOCK TABLES; LOCK TABLES `tag` WRITE; /*!40000 ALTER TABLE `tag` DISABLE KEYS */; -INSERT INTO `tag` VALUES (1,'Color',0,0,'ink',NULL,NULL),(2,'Forma',1,0,NULL,NULL,NULL),(3,'Material',1,0,NULL,NULL,NULL),(4,'Longitud',1,1,NULL,NULL,NULL),(5,'Diámetro',1,1,NULL,'mm',NULL),(6,'Perímetro',1,1,NULL,'mm',NULL),(7,'Ancho de la base',1,1,NULL,'mm',NULL),(8,'Altura',1,1,NULL,'mm',NULL),(9,'Volumen',1,1,NULL,'ml',NULL),(10,'Densidad',1,1,NULL,NULL,NULL),(11,'Calidad',1,0,NULL,NULL,NULL),(12,'Textura',1,0,NULL,NULL,NULL),(13,'Material del mango',1,0,NULL,NULL,NULL),(14,'Compra mínima',1,1,NULL,NULL,NULL),(15,'Nº pétalos',1,1,NULL,NULL,NULL),(16,'Ancho',1,1,NULL,'mm',NULL),(17,'Alto',1,1,NULL,'mm',NULL),(18,'Profundidad',1,1,NULL,'mm',NULL),(19,'Largo',1,1,NULL,'mm',NULL),(20,'Ancho superior',1,1,NULL,'mm',NULL),(21,'Ancho inferior',1,1,NULL,'mm',NULL),(22,'Gramaje',1,0,NULL,'g',NULL),(23,'Tallos',1,1,NULL,NULL,NULL),(24,'Estado',0,0,NULL,NULL,NULL),(25,'Color principal',0,0,NULL,NULL,NULL),(26,'Color secundario',0,0,NULL,NULL,NULL),(27,'Longitud(cm)',1,1,NULL,'cm',NULL),(28,'Diámetro base',1,1,NULL,NULL,NULL),(29,'Colección',1,0,NULL,NULL,NULL),(30,'Uds / caja',1,1,NULL,NULL,NULL),(31,'Contenido',1,0,NULL,NULL,NULL),(32,'Peso',1,1,NULL,'g',NULL),(33,'Grosor',1,1,NULL,'mm',NULL),(34,'Marca',1,0,NULL,NULL,NULL),(35,'Origen',0,0,'origin',NULL,NULL),(36,'Proveedor',1,0,NULL,NULL,NULL),(37,'Productor',1,0,'producer',NULL,NULL),(38,'Duración',1,1,NULL,'s',NULL),(39,'Flor',1,0,NULL,NULL,NULL),(40,'Soporte',1,0,NULL,NULL,NULL),(41,'Tamaño flor',1,1,NULL,NULL,NULL),(42,'Apertura',1,1,NULL,NULL,NULL),(43,'Tallo',0,1,NULL,NULL,NULL),(44,'Numero hojas',1,1,NULL,NULL,NULL),(45,'Dimensiones',1,1,NULL,NULL,NULL),(46,'Diámetro boca',1,1,NULL,NULL,NULL),(47,'Nº flores',1,1,NULL,NULL,NULL),(48,'Uds / paquete',1,1,NULL,NULL,NULL),(49,'Maceta',1,1,NULL,NULL,NULL),(50,'Textura flor',1,1,NULL,NULL,NULL),(51,'Textura hoja',1,1,NULL,NULL,NULL),(52,'Tipo de iva',1,1,NULL,NULL,NULL),(53,'Tronco',1,1,NULL,NULL,NULL),(54,'Hoja',1,1,NULL,NULL,NULL),(55,'Formato',1,1,NULL,NULL,NULL),(56,'Genero',1,1,NULL,NULL,NULL),(57,'Especie',1,1,NULL,NULL,NULL),(58,'Variedad',1,1,NULL,NULL,NULL),(59,'Medida grande',1,0,NULL,NULL,NULL),(60,'Medida mediano',1,0,NULL,NULL,NULL),(61,'Medida pequeño',1,0,NULL,NULL,NULL),(62,'Medida pequeño',1,0,NULL,NULL,NULL),(63,'Recipiente interior',1,1,NULL,NULL,NULL),(64,'Material secundario',1,1,NULL,NULL,NULL),(65,'Colores',1,1,NULL,NULL,NULL),(66,'Referencia',1,1,NULL,NULL,NULL),(67,'Categoria',1,0,NULL,NULL,NULL),(68,'Amb',0,1,NULL,NULL,NULL),(69,'Anchura',1,1,NULL,'cm',NULL),(70,'Hueco interior',-1,1,NULL,NULL,NULL),(71,'Tamaño',1,1,NULL,NULL,NULL),(72,'Color botón',1,1,NULL,NULL,NULL),(73,'Tamaño minimo del botón',1,1,NULL,NULL,NULL),(74,'Obtentor',1,1,NULL,NULL,NULL),(75,'Logitud del brote',1,1,NULL,NULL,NULL),(76,'Tallos / u.v.',1,1,NULL,NULL,NULL),(77,'Madera de',1,1,NULL,NULL,NULL),(78,'Unidad de venta',1,1,NULL,NULL,NULL),(79,'Temporal',1,1,NULL,NULL,NULL),(80,'Gramaje/tallo',1,1,NULL,NULL,NULL),(81,'Peso/paquete',1,1,NULL,NULL,NULL),(82,'Flexibilidad del tallo',1,1,NULL,NULL,NULL),(83,'Nº planchas',1,1,NULL,NULL,NULL),(84,'Nº páginas',1,1,NULL,NULL,NULL),(85,'Editorial',1,1,NULL,NULL,NULL),(86,'Idioma',1,1,NULL,NULL,NULL),(87,'Fecha publicación',1,1,NULL,NULL,NULL),(88,'Cubierta',1,1,NULL,NULL,NULL),(89,'Encuadernación',1,1,NULL,NULL,NULL),(90,'Autor',1,1,NULL,NULL,NULL),(91,'Envoltorio',1,1,NULL,NULL,NULL),(92,'Nombre temporal',1,1,NULL,NULL,NULL),(93,'Modelo',1,1,NULL,NULL,NULL),(94,'Producto',1,1,NULL,NULL,NULL),(95,'Título',1,1,NULL,NULL,NULL),(96,'Tomo',1,1,NULL,NULL,NULL),(97,'Articulo',1,1,NULL,NULL,NULL),(98,'Metodo de cultivo',1,1,NULL,NULL,NULL),(99,'Edad',1,1,NULL,NULL,NULL),(100,'Agotado',1,1,NULL,NULL,NULL),(101,'Altura con asa',1,1,NULL,NULL,NULL),(102,'Nº tallos',1,1,NULL,NULL,NULL); +INSERT INTO `tag` VALUES (1,'Color',0,0,'ink',NULL,NULL),(2,'Forma',1,0,NULL,NULL,NULL),(3,'Material',1,0,NULL,NULL,NULL),(4,'Longitud',1,1,NULL,'mm',NULL),(5,'Diámetro',1,1,NULL,'mm',NULL),(6,'Perímetro',1,1,NULL,'mm',NULL),(7,'Ancho de la base',1,1,NULL,'mm',NULL),(8,'Altura',1,1,NULL,'mm',NULL),(9,'Volumen',1,1,NULL,'ml',NULL),(10,'Densidad',1,1,NULL,NULL,NULL),(11,'Calidad',1,0,NULL,NULL,NULL),(12,'Textura',1,0,NULL,NULL,NULL),(13,'Material del mango',1,0,NULL,NULL,NULL),(14,'Compra mínima',1,0,NULL,NULL,NULL),(15,'Nº pétalos',1,1,NULL,NULL,NULL),(16,'Ancho',1,1,NULL,'mm',NULL),(17,'Alto',1,1,NULL,'mm',NULL),(18,'Profundidad',1,1,NULL,'mm',NULL),(19,'Largo',1,1,NULL,'mm',NULL),(20,'Ancho superior',1,1,NULL,'mm',NULL),(21,'Ancho inferior',1,1,NULL,'mm',NULL),(22,'Gramaje',1,0,NULL,'g',NULL),(23,'Tallos',1,1,NULL,NULL,NULL),(24,'Estado',0,0,NULL,NULL,NULL),(25,'Color principal',0,0,NULL,NULL,NULL),(26,'Color secundario',0,0,NULL,NULL,NULL),(27,'Longitud(cm)',1,1,NULL,'cm',NULL),(28,'Diámetro base',1,1,'','mm',NULL),(29,'Colección',1,0,NULL,NULL,NULL),(30,'Uds / caja',1,1,NULL,NULL,NULL),(31,'Contenido',1,0,NULL,NULL,NULL),(32,'Peso',1,1,NULL,'g',NULL),(33,'Grosor',1,1,NULL,'mm',NULL),(34,'Marca',1,0,NULL,NULL,NULL),(35,'Origen',0,0,'origin',NULL,NULL),(36,'Proveedor',1,0,NULL,NULL,NULL),(37,'Productor',1,0,'producer',NULL,NULL),(38,'Duración',1,1,NULL,'s',NULL),(39,'Flor',1,0,NULL,NULL,NULL),(40,'Soporte',1,0,NULL,NULL,NULL),(41,'Tamaño flor',1,0,NULL,NULL,NULL),(42,'Apertura',1,0,NULL,NULL,NULL),(43,'Tallo',0,0,NULL,NULL,NULL),(44,'Numero hojas',1,1,NULL,NULL,NULL),(45,'Dimensiones',1,0,NULL,NULL,NULL),(46,'Diámetro boca',1,1,NULL,'mm',NULL),(47,'Nº flores',1,1,NULL,NULL,NULL),(48,'Uds / paquete',1,1,NULL,NULL,NULL),(49,'Maceta',1,0,NULL,NULL,NULL),(50,'Textura flor',1,0,NULL,NULL,NULL),(51,'Textura hoja',1,0,NULL,NULL,NULL),(52,'Tipo de IVA',1,0,NULL,NULL,NULL),(53,'Tronco',1,0,NULL,NULL,NULL),(54,'Hoja',1,0,NULL,NULL,NULL),(55,'Formato',1,0,NULL,NULL,NULL),(56,'Genero',1,0,NULL,NULL,NULL),(57,'Especie',1,0,NULL,NULL,NULL),(58,'Variedad',1,0,NULL,NULL,NULL),(59,'Medida grande',1,0,NULL,NULL,NULL),(60,'Medida mediano',1,0,NULL,NULL,NULL),(61,'Medida pequeño',1,0,NULL,NULL,NULL),(62,'Medida pequeño',1,0,NULL,NULL,NULL),(63,'Recipiente interior',1,0,NULL,NULL,NULL),(64,'Material secundario',1,0,NULL,NULL,NULL),(65,'Colores',1,0,NULL,NULL,NULL),(66,'Referencia',1,0,NULL,NULL,NULL),(67,'Categoria',1,0,NULL,NULL,NULL),(68,'Amb',0,0,NULL,NULL,NULL),(69,'Anchura',1,1,NULL,'cm',NULL),(70,'Hueco interior',-1,0,NULL,NULL,NULL),(71,'Tamaño',1,0,NULL,NULL,NULL),(72,'Color botón',1,0,NULL,NULL,NULL),(73,'Tamaño minimo del botón',1,0,NULL,NULL,NULL),(74,'Obtentor',1,0,NULL,NULL,NULL),(75,'Logitud del brote',1,0,NULL,NULL,NULL),(76,'Tallos / u.v.',1,0,NULL,NULL,NULL),(77,'Madera de',1,0,NULL,NULL,NULL),(78,'Unidad de venta',1,0,NULL,NULL,NULL),(79,'Temporal',1,0,NULL,NULL,NULL),(80,'Gramaje/tallo',1,1,NULL,'g',NULL),(81,'Peso/paquete',1,1,NULL,'g',NULL),(82,'Flexibilidad del tallo',1,0,NULL,NULL,NULL),(83,'Nº planchas',1,1,NULL,NULL,NULL),(84,'Nº páginas',1,1,NULL,NULL,NULL),(85,'Editorial',1,0,NULL,NULL,NULL),(86,'Idioma',1,0,NULL,NULL,NULL),(87,'Fecha publicación',1,0,NULL,NULL,NULL),(88,'Cubierta',1,0,NULL,NULL,NULL),(89,'Encuadernación',1,0,NULL,NULL,NULL),(90,'Autor',1,0,NULL,NULL,NULL),(91,'Envoltorio',1,0,NULL,NULL,NULL),(92,'Nombre temporal',1,0,NULL,NULL,NULL),(93,'Modelo',1,0,NULL,NULL,NULL),(94,'Producto',1,0,NULL,NULL,NULL),(95,'Título',1,0,NULL,NULL,NULL),(96,'Tomo',1,0,NULL,NULL,NULL),(97,'Articulo',1,0,NULL,NULL,NULL),(98,'Metodo de cultivo',1,0,NULL,NULL,NULL),(99,'Edad',1,0,NULL,NULL,NULL),(100,'Agotado',1,0,NULL,NULL,NULL),(101,'Altura con asa',1,0,NULL,NULL,NULL),(102,'Nº tallos',1,1,NULL,NULL,NULL),(103,'Cultivo',1,0,NULL,NULL,NULL); /*!40000 ALTER TABLE `tag` ENABLE KEYS */; UNLOCK TABLES; @@ -237,7 +237,7 @@ UNLOCK TABLES; LOCK TABLES `zoneGeo` WRITE; /*!40000 ALTER TABLE `zoneGeo` DISABLE KEYS */; -INSERT INTO `zoneGeo` VALUES (1,'Origin',1,47620,0,23809),(2,'España',2,44727,1,22362),(3,'Francia',44728,45429,1,350),(4,'Holanda',45430,45463,1,16),(5,'Portugal',45464,46605,1,570),(6,'Açoures',45465,45466,2,0),(7,'Ain',44729,44734,2,2),(8,'Aisne',44735,44736,2,0),(9,'Álava',3,370,2,183),(10,'Albacete',371,894,2,261),(11,'Alicante',895,1674,2,389),(12,'Allier',44737,44738,2,0),(13,'Almería',1675,2322,2,323),(14,'Alpes-de-Haute-Provence',44739,44756,2,8),(15,'Alpes-Maritimes',44757,44758,2,0),(16,'Ardèche',44759,44760,2,0),(17,'Ardennes',44761,44762,2,0),(18,'Ariège',44763,44764,2,0),(19,'Asturias',2323,3372,2,524),(20,'Aube',44765,44766,2,0),(21,'Aude',44767,44768,2,0),(22,'Aveiro',45467,45552,2,42),(23,'Aveyron',44769,44774,2,2),(24,'Ávila',3373,4460,2,543),(25,'Badajoz',4461,5232,2,385),(26,'Baleares (Formentera)',5233,5234,2,0),(27,'Baleares (Ibiza)',5235,5296,2,30),(28,'Baleares (Mallorca)',5297,5682,2,192),(29,'Baleares (Menorca)',5683,5736,2,26),(30,'Barcelona',5737,7260,2,761),(31,'Bas-Rhin',44775,44776,2,0),(32,'Beja',45553,45558,2,2),(33,'Bouches-du-Rhône',44777,44852,2,37),(34,'Braga',45559,45664,2,52),(35,'Braganza',45665,45670,2,2),(36,'Burgos',7261,9088,2,913),(37,'Cáceres',9089,10140,2,525),(38,'Cádiz',10141,10462,2,160),(39,'Calvados',44853,44858,2,2),(40,'Cantabria',10463,11248,2,392),(41,'Cantal',44859,44860,2,0),(42,'Castellón',11249,11854,2,302),(43,'Castelo Branco',45671,45706,2,17),(44,'Ceuta',45707,45720,2,6),(45,'Charente',44861,44866,2,2),(46,'Charente-Maritime',44867,44872,2,2),(47,'Cher',44873,44874,2,0),(48,'Ciudad Real',11855,12364,2,254),(49,'Coimbra',45721,45778,2,28),(50,'Córdoba',12365,12880,2,257),(51,'Corrèze',44875,44876,2,0),(52,'Corse-du-Sud',44877,44878,2,0),(53,'Côte-d’Or',44879,44880,2,0),(54,'Côtes-d’Armor',44881,44894,2,6),(55,'Creuse',44895,44896,2,0),(56,'Cuenca',12881,13936,2,527),(57,'Deux-Sèvres',44897,44898,2,0),(58,'Dordogne',44899,44900,2,0),(59,'Doubs',44901,44906,2,2),(60,'Drôme',44907,44916,2,4),(61,'Essonne',44917,44918,2,0),(62,'Eure',44919,44928,2,4),(63,'Eure-et-Loir',44929,44930,2,0),(64,'Évora',45779,45786,2,3),(65,'Faro',45787,45872,2,42),(66,'Finistère',44931,44968,2,18),(67,'Funchal',45873,45878,2,2),(68,'Gard',44969,44982,2,6),(69,'Gers',44983,44984,2,0),(70,'Girona',13937,15030,2,546),(71,'Gironde',44985,44990,2,2),(72,'Granada',15031,15918,2,443),(73,'Guadalajara',15919,17272,2,676),(74,'Guarda',45879,45908,2,14),(75,'Guipuzcoa',17273,17714,2,220),(76,'Haut-Rhin',44991,44992,2,0),(77,'Haute-Corse',44993,44994,2,0),(78,'Haute-Garonne',44995,45004,2,4),(79,'Haute-Loire',45005,45006,2,0),(80,'Haute-Marne',45007,45008,2,0),(81,'Haute-Saone',45009,45010,2,0),(82,'Haute-Savoie',45011,45020,2,4),(83,'Haute-Vienne',45021,45022,2,0),(84,'Hautes-Alpes',45023,45024,2,0),(85,'Hautes-Pyrénées',45025,45026,2,0),(86,'Hauts-de-Seine',45027,45032,2,2),(87,'Hérault',45033,45050,2,8),(88,'Honserlersdijk',45431,45432,2,0),(89,'Huelva',17715,18170,2,227),(90,'Huesca',18171,19392,2,610),(91,'Ille-et-Vilaine',45051,45052,2,0),(92,'Indre',45053,45054,2,0),(93,'Indre-et-Loire',45055,45064,2,4),(94,'Isère',45065,45070,2,2),(95,'Jaén',19393,19986,2,296),(96,'Jura',45071,45072,2,0),(97,'La Coruña',19987,21006,2,509),(98,'La Rioja',21007,21766,2,379),(99,'Landes',45073,45088,2,7),(100,'Leiria',45909,45992,2,41),(101,'León',21767,23336,2,784),(102,'Lérida',23337,23338,2,0),(103,'Lisboa',45993,46158,2,82),(104,'Lleida',23339,24622,2,641),(105,'Loir-et-Cher',45089,45090,2,0),(106,'Loire',45091,45092,2,0),(107,'Loire-Atlantique',45093,45098,2,2),(108,'Loiret',45099,45100,2,0),(109,'Lot',45101,45102,2,0),(110,'Lot-et-Garonne',45103,45104,2,0),(111,'Lozère',45105,45106,2,0),(112,'Lugo',24623,25780,2,578),(113,'Madrid',25781,26822,2,520),(114,'Maine-et-Loire',45107,45116,2,4),(115,'Málaga',26823,27422,2,299),(116,'Manche',45117,45122,2,2),(117,'Marne',45123,45128,2,2),(118,'Mayenne',45129,45130,2,0),(119,'Melilla',46159,46174,2,7),(120,'Meurthe-et-Moselle',45131,45132,2,0),(121,'Meuse',45133,45134,2,0),(122,'Morbihan',45135,45144,2,4),(123,'Moselle',45145,45146,2,0),(124,'Murcia',27423,27994,2,285),(125,'Navarra',27995,29296,2,650),(126,'Nièvre',45147,45148,2,0),(127,'Noord Holland',45433,45462,2,14),(128,'Nord',45149,45166,2,8),(129,'Oise',45167,45172,2,2),(130,'Orense',29297,30322,2,512),(131,'Orne',45173,45174,2,0),(132,'Palencia',30323,31258,2,467),(133,'París',45175,45190,2,7),(134,'Pas-de-Calais',45191,45200,2,4),(135,'Pontevedra',31259,32212,2,476),(136,'Portalegre',46175,46188,2,6),(137,'Porto',46189,46404,2,107),(138,'Puy-de-Dôme',45201,45202,2,0),(139,'Pyrénées-Atlantiques',45203,45282,2,39),(140,'Pyrénées-Orientales',45283,45296,2,6),(141,'Rhône',45297,45308,2,5),(142,'Salamanca',32213,33966,2,876),(143,'Santarém',46405,46432,2,13),(144,'Saone-et-Loire',45309,45314,2,2),(145,'Sarthe',45315,45316,2,0),(146,'Savoie',45317,45318,2,0),(147,'Segovia',33967,34948,2,490),(148,'Seine-et-Marne',45319,45320,2,0),(149,'Seine-Maritime',45321,45330,2,4),(150,'Seine-Saint-Denis',45331,45340,2,4),(151,'Setúbal',46433,46498,2,32),(152,'Sevilla',34949,35512,2,281),(153,'Somme',45341,45342,2,0),(154,'Soria',35513,36460,2,473),(155,'Tarn',45343,45356,2,6),(156,'Tarn-et-Garonne',45357,45362,2,2),(157,'Tarragona',36461,37344,2,441),(158,'Territoire de Belfort',45363,45364,2,0),(159,'Teruel',37345,38404,2,529),(160,'Toledo',38405,39316,2,455),(161,'Val-d’Oise',45365,45374,2,4),(162,'Val-de-Marne',45375,45386,2,5),(163,'Valencia',39317,40546,2,614),(164,'Valladolid',40547,41542,2,497),(165,'Var',45387,45400,2,6),(166,'Vaucluse',45401,45406,2,2),(167,'Vendée',45407,45408,2,0),(168,'Viana do Castelo',46499,46522,2,11),(169,'Vienne',45409,45410,2,0),(170,'Vila Real',46523,46544,2,10),(171,'Viseu',46545,46604,2,29),(172,'Vizcaya',41543,42088,2,272),(173,'Vosges',45411,45424,2,6),(174,'Yonne',45425,45426,2,0),(175,'Yvelines',45427,45428,2,0),(176,'Zamora',42089,43404,2,657),(177,'Zaragoza',43405,44726,2,660),(178,'A Arnoia',29298,29301,3,1),(179,'A Baña',19988,19995,3,3),(180,'A Bola',29302,29305,3,1),(181,'A Cañiza',31260,31277,3,8),(182,'A Capela',19996,19999,3,1),(183,'A Coruña',20000,20031,3,15),(184,'A Estrada',31278,31309,3,15),(185,'A Fonsagrada',24624,24651,3,13),(186,'A Guarda',31310,31317,3,3),(187,'A Gudiña',29306,29317,3,5),(188,'A Illa de Arousa',31318,31321,3,1),(189,'A Lama',31322,31339,3,8),(190,'A Laracha',20032,20039,3,3),(191,'A Merca',29318,29327,3,4),(192,'A Mezquita',29328,29337,3,4),(193,'A Pastoriza',24652,24661,3,4),(194,'A Peroxa',29338,29351,3,6),(195,'A Pobra de Trives',29352,29363,3,5),(196,'A Pobra do Brollón',24662,24687,3,12),(197,'A Pobra do Caramiñal',20040,20047,3,3),(198,'A Pontenova',24688,24711,3,11),(199,'A Rúa',29364,29371,3,3),(200,'A Teixeira',29372,29377,3,2),(201,'A Veiga',29378,29393,3,7),(202,'Ababuj',37346,37349,3,1),(203,'Abades',33968,33971,3,1),(204,'Abadía',9090,9093,3,1),(205,'Abadín',24712,24725,3,6),(206,'Abadiño',41544,41547,3,1),(207,'Abáigar',27996,27999,3,1),(208,'Abajas',7262,7267,3,2),(209,'Ábalos',21008,21011,3,1),(210,'Abaltzisketa',17274,17277,3,1),(211,'Abánades',15920,15923,3,1),(212,'Abanilla',27424,27433,3,4),(213,'Abanto',43406,43409,3,1),(214,'Abanto y Ciérvana-Abanto Zierbena',41548,41553,3,2),(215,'Abarán',27434,27439,3,2),(216,'Abarca de Campos',30324,30327,3,1),(217,'Abárzuza/Abartzuza',28000,28003,3,1),(218,'Abaurregaina/Abaurrea Alta',28004,28007,3,1),(219,'Abaurrepea/Abaurrea Baja',28008,28011,3,1),(220,'Abegondo',20048,20051,3,1),(221,'Abejar',35514,35517,3,1),(222,'Abejuela',37350,37353,3,1),(223,'Abella de la Conca',23340,23347,3,3),(224,'Abengibre',372,375,3,1),(225,'Abenójar',11856,11861,3,2),(226,'Aberin',28012,28017,3,2),(227,'Abertura',9094,9097,3,1),(228,'Abezames',42090,42093,3,1),(229,'Abia de la Obispalía',12882,12885,3,1),(230,'Abia de las Torres',30328,30331,3,1),(231,'Abiego',18172,18177,3,2),(232,'Abizanda',18178,18183,3,2),(233,'Abla',1676,1679,3,1),(234,'Ablanque',15924,15927,3,1),(235,'Ablitas',28018,28021,3,1),(236,'Abrera',5738,5741,3,1),(237,'Abrucena',1680,1685,3,2),(238,'Abusejo',32214,32217,3,1),(239,'Acebedo',21768,21773,3,2),(240,'Acebo',9098,9101,3,1),(241,'Acedera',4462,4467,3,2),(242,'Acehúche',9102,9105,3,1),(243,'Aceituna',9106,9109,3,1),(244,'Acered',43410,43413,3,1),(245,'Aceuchal',4468,4473,3,2),(246,'Adahuesca',18184,18187,3,1),(247,'Adalia',40548,40551,3,1),(248,'Adamuz',12366,12373,3,3),(249,'Adanero',3374,3377,3,1),(250,'Ademuz',39318,39321,3,1),(251,'Adiós',28022,28025,3,1),(252,'Adobes',15928,15931,3,1),(253,'Ador',39322,39325,3,1),(254,'Adra',1686,1693,3,3),(255,'Adrada de Haza',7268,7271,3,1),(256,'Adrada de Pirón',33972,33975,3,1),(257,'Adradas',35518,35521,3,1),(258,'Adrados',33976,33979,3,1),(259,'Aduna',17278,17281,3,1),(260,'Adzaneta de Albaida',39326,39329,3,1),(261,'Agallas',32218,32221,3,1),(262,'Àger',23348,23355,3,3),(263,'Agolada',31340,31357,3,8),(264,'Agón',43414,43417,3,1),(265,'Agoncillo',21012,21015,3,1),(266,'Agost',896,899,3,1),(267,'Agramunt',23356,23365,3,4),(268,'Ágreda',35522,35529,3,3),(269,'Agres',900,903,3,1),(270,'Agrón',15032,15035,3,1),(271,'Aguadulce',34950,34953,3,1),(272,'Aguarón',43418,43421,3,1),(273,'Aguas Cándidas',7272,7275,3,1),(274,'Aguasal',40552,40555,3,1),(275,'Aguatón',37354,37357,3,1),(276,'Aguaviva',37358,37361,3,1),(277,'Agudo',11862,11865,3,1),(278,'Agüero',18188,18191,3,1),(279,'Aguilafuente',33980,33983,3,1),(280,'Aguilar de Bureba',7276,7279,3,1),(281,'Aguilar de Campoo',30332,30347,3,7),(282,'Aguilar de Campos',40556,40559,3,1),(283,'Aguilar de Codés',28026,28029,3,1),(284,'Aguilar de la Frontera',12374,12377,3,1),(285,'Aguilar de Segarra',5742,5745,3,1),(286,'Aguilar del Alfambra',37362,37365,3,1),(287,'Aguilar del Río Alhama',21016,21021,3,2),(288,'Águilas',27440,27445,3,2),(289,'Aguilón',43422,43425,3,1),(290,'Agullana',13938,13941,3,1),(291,'Agullent',39330,39333,3,1),(292,'Agurain/Salvatierra',4,9,3,2),(293,'Ahigal',9110,9113,3,1),(294,'Ahigal de los Aceiteros',32222,32225,3,1),(295,'Ahigal de Villarino',32226,32229,3,1),(296,'Ahillones',4474,4477,3,1),(297,'Aia',17282,17287,3,2),(298,'Aibar/Oibar',28030,28033,3,1),(299,'Aiguafreda',5746,5749,3,1),(300,'Aiguamúrcia',36462,36467,3,2),(301,'Aiguaviva',13942,13945,3,1),(302,'Aigües',904,907,3,1),(303,'Aín',11250,11253,3,1),(304,'Aínsa-Sobrarbe',18192,18207,3,7),(305,'Ainzón',43426,43429,3,1),(306,'Aisa',18208,18213,3,2),(307,'Aitona',23366,23369,3,1),(308,'Aizarnazabal',17288,17291,3,1),(309,'Ajalvir',25782,25785,3,1),(310,'Ajamil de Cameros',21022,21025,3,1),(311,'Ajangiz',41554,41557,3,1),(312,'Ajofrín',38406,38409,3,1),(313,'Alacón',37366,37369,3,1),(314,'Alacuás',39334,39337,3,1),(315,'Aladrén',43430,43433,3,1),(316,'Alaejos',40560,40563,3,1),(317,'Alagón',43434,43439,3,2),(318,'Alagón del Río',9114,9117,3,1),(319,'Alaior',5684,5687,3,1),(320,'Alájar',17716,17719,3,1),(321,'Alameda',26824,26827,3,1),(322,'Alameda de la Sagra',38410,38413,3,1),(323,'Alameda del Valle',25786,25789,3,1),(324,'Alamedilla',15036,15041,3,2),(325,'Alamillo',11866,11869,3,1),(326,'Alaminos',15932,15935,3,1),(327,'Alange',4478,4481,3,1),(328,'Alanís',34954,34957,3,1),(329,'Alar del Rey',30348,30355,3,3),(330,'Alaraz',32230,32233,3,1),(331,'Alarba',43440,43443,3,1),(332,'Alarcón',12886,12889,3,1),(333,'Alarilla',15936,15939,3,1),(334,'Alaró',5298,5301,3,1),(335,'Alàs i Cerc',23370,23377,3,3),(336,'Alatoz',376,379,3,1),(337,'Alba',37370,37373,3,1),(338,'Alba de Cerrato',30356,30359,3,1),(339,'Alba de Tormes',32234,32243,3,4),(340,'Alba de Yeltes',32244,32247,3,1),(341,'Albacete',380,413,3,16),(342,'Albaida',39338,39341,3,1),(343,'Albaida del Aljarafe',34958,34961,3,1),(344,'Albal',39342,39345,3,1),(345,'Albalá',9118,9123,3,2),(346,'Albaladejo',11870,11873,3,1),(347,'Albaladejo del Cuende',12890,12893,3,1),(348,'Albalat de la Ribera',39346,39349,3,1),(349,'Albalat dels Sorells',39350,39353,3,1),(350,'Albalat dels Tarongers',39354,39357,3,1),(351,'Albalate de Cinca',18214,18217,3,1),(352,'Albalate de las Nogueras',12894,12897,3,1),(353,'Albalate de Zorita',15940,15945,3,2),(354,'Albalate del Arzobispo',37374,37377,3,1),(355,'Albalatillo',18218,18221,3,1),(356,'Albánchez',1694,1699,3,2),(357,'Albanchez de Mágina',19394,19397,3,1),(358,'Albanyà',13946,13951,3,2),(359,'Albares',15946,15949,3,1),(360,'Albarracín',37378,37385,3,3),(361,'Albarreal de Tajo',38414,38417,3,1),(362,'Albatana',414,417,3,1),(363,'Albatàrrec',23378,23381,3,1),(364,'Albatera',908,911,3,1),(365,'Albelda',18222,18225,3,1),(366,'Albelda de Iregua',21026,21029,3,1),(367,'Albendea',12898,12901,3,1),(368,'Albendiego',15950,15953,3,1),(369,'Albentosa',37386,37391,3,2),(370,'Alberique',39358,39361,3,1),(371,'Alberite',21030,21035,3,2),(372,'Alberite de San Juan',43444,43447,3,1),(373,'Albero Alto',18226,18229,3,1),(374,'Albero Bajo',18230,18233,3,1),(375,'Alberuela de Tubo',18234,18237,3,1),(376,'Albesa',23382,23385,3,1),(377,'Albeta',43448,43451,3,1),(378,'Albillos',7280,7283,3,1),(379,'Albinyana',36468,36473,3,2),(380,'Albiztur',17292,17295,3,1),(381,'Albocàsser',11254,11257,3,1),(382,'Alboloduy',1700,1705,3,2),(383,'Albolote',15042,15047,3,2),(384,'Albondón',15048,15051,3,1),(385,'Albons',13952,13955,3,1),(386,'Alborache',39362,39365,3,1),(387,'Alboraya',39366,39373,3,3),(388,'Alborea',418,421,3,1),(389,'Alborge',43452,43455,3,1),(390,'Albornos',3378,3381,3,1),(391,'Albox',1706,1719,3,6),(392,'Albudeite',27446,27449,3,1),(393,'Albuixech',39374,39377,3,1),(394,'Albuñán',15052,15055,3,1),(395,'Albuñol',15056,15063,3,3),(396,'Albuñuelas',15064,15067,3,1),(397,'Alburquerque',4482,4487,3,2),(398,'Alcabón',38418,38421,3,1),(399,'Alcácer',39378,39383,3,2),(400,'Alcadozo',422,427,3,2),(401,'Alcaine',37392,37395,3,1),(402,'Alcalá de Ebro',43456,43459,3,1),(403,'Alcalá de Guadaíra',34962,34967,3,2),(404,'Alcalá de Gurrea',18238,18243,3,2),(405,'Alcalá de Henares',25790,25805,3,7),(406,'Alcalá de la Selva',37396,37401,3,2),(407,'Alcalá de la Vega',12902,12905,3,1),(408,'Alcalá de los Gazules',10142,10145,3,1),(409,'Alcalá de Moncayo',43460,43463,3,1),(410,'Alcalà de Xivert',11258,11263,3,2),(411,'Alcalá del Júcar',428,437,3,4),(412,'Alcalá del Obispo',18244,18247,3,1),(413,'Alcalá del Río',34968,34975,3,3),(414,'Alcalá del Valle',10146,10149,3,1),(415,'Alcalá la Real',19398,19417,3,9),(416,'Alcalalí',912,917,3,2),(417,'Alcampell',18248,18251,3,1),(418,'Alcanadre',21036,21039,3,1),(419,'Alcanar',36474,36479,3,2),(420,'Alcañices',42094,42103,3,4),(421,'Alcañiz',37402,37409,3,3),(422,'Alcañizo',38422,38425,3,1),(423,'Alcanó',23386,23389,3,1),(424,'Alcántara',9124,9131,3,3),(425,'Alcántara de Júcar',39384,39387,3,1),(426,'Alcantarilla',27450,27453,3,1),(427,'Alcantud',12906,12909,3,1),(428,'Alcaracejos',12378,12381,3,1),(429,'Alcaraz',438,447,3,4),(430,'Alcarràs',23390,23395,3,2),(431,'Alcaucín',26828,26833,3,2),(432,'Alcaudete',19418,19425,3,3),(433,'Alcaudete de la Jara',38426,38429,3,1),(434,'Alcázar de San Juan',11874,11883,3,4),(435,'Alcázar del Rey',12910,12913,3,1),(436,'Alcazarén',40564,40567,3,1),(437,'Alcoba',11884,11889,3,2),(438,'Alcobendas',25806,25813,3,3),(439,'Alcocer',15954,15957,3,1),(440,'Alcocer de Planes',918,921,3,1),(441,'Alcocero de Mola',7284,7287,3,1),(442,'Alcohujate',12914,12917,3,1),(443,'Alcolea',1720,1725,3,2),(444,'Alcolea de Calatrava',11890,11893,3,1),(445,'Alcolea de Cinca',18252,18255,3,1),(446,'Alcolea de las Peñas',15958,15961,3,1),(447,'Alcolea de Tajo',38430,38433,3,1),(448,'Alcolea del Pinar',15962,15969,3,3),(449,'Alcolea del Río',34976,34981,3,2),(450,'Alcoleja',922,925,3,1),(451,'Alcoletge',23396,23401,3,2),(452,'Alcollarín',9132,9135,3,1),(453,'Alconaba',35530,35533,3,1),(454,'Alconada',32248,32251,3,1),(455,'Alconada de Maderuelo',33984,33987,3,1),(456,'Alconchel',4488,4491,3,1),(457,'Alconchel de Ariza',43464,43467,3,1),(458,'Alconchel de la Estrella',12918,12921,3,1),(459,'Alconera',4492,4495,3,1),(460,'Alcóntar',1726,1731,3,2),(461,'Alcorcón',25814,25825,3,5),(462,'Alcorisa',37410,37413,3,1),(463,'Alcoroches',15970,15973,3,1),(464,'Alcover',36480,36483,3,1),(465,'Alcoy/Alcoi',926,939,3,6),(466,'Alcubierre',18256,18259,3,1),(467,'Alcubilla de Avellaneda',35534,35539,3,2),(468,'Alcubilla de las Peñas',35540,35543,3,1),(469,'Alcubilla de Nogales',42104,42107,3,1),(470,'Alcubillas',11894,11897,3,1),(471,'Alcublas',39388,39391,3,1),(472,'Alcúdia',5302,5305,3,1),(473,'Alcudia de Crespins',39392,39395,3,1),(474,'Alcudia de Monteagud',1732,1735,3,1),(475,'Alcudia de Veo',11264,11267,3,1),(476,'Alcuéscar',9136,9139,3,1),(477,'Aldaya',39396,39399,3,1),(478,'Aldea de San Miguel',40568,40571,3,1),(479,'Aldea del Cano',9140,9143,3,1),(480,'Aldea del Fresno',25826,25829,3,1),(481,'Aldea del Obispo',32252,32255,3,1),(482,'Aldea del Rey',11898,11901,3,1),(483,'Aldea en Cabo',38434,38437,3,1),(484,'Aldea Real',33988,33991,3,1),(485,'Aldeacentenera',9144,9147,3,1),(486,'Aldeacipreste',32256,32259,3,1),(487,'Aldeadávila de la Ribera',32260,32267,3,3),(488,'Aldealafuente',35544,35547,3,1),(489,'Aldealcorvo',33992,33995,3,1),(490,'Aldealengua',32268,32271,3,1),(491,'Aldealengua de Pedraza',33996,33999,3,1),(492,'Aldealengua de Santa María',34000,34003,3,1),(493,'Aldealices',35548,35551,3,1),(494,'Aldealpozo',35552,35555,3,1),(495,'Aldealseñor',35556,35559,3,1),(496,'Aldeamayor de San Martín',40572,40577,3,2),(497,'Aldeanueva de Barbarroya',38438,38441,3,1),(498,'Aldeanueva de Ebro',21040,21043,3,1),(499,'Aldeanueva de Figueroa',32272,32275,3,1),(500,'Aldeanueva de Guadalajara',15974,15977,3,1),(501,'Aldeanueva de la Serrezuela',34004,34007,3,1),(502,'Aldeanueva de la Sierra',32276,32279,3,1),(503,'Aldeanueva de la Vera',9148,9151,3,1),(504,'Aldeanueva de San Bartolomé',38442,38445,3,1),(505,'Aldeanueva de Santa Cruz',3382,3385,3,1),(506,'Aldeanueva del Camino',9152,9155,3,1),(507,'Aldeanueva del Codonal',34008,34011,3,1),(508,'Aldeaquemada',19426,19429,3,1),(509,'Aldearrodrigo',32280,32283,3,1),(510,'Aldearrubia',32284,32287,3,1),(511,'Aldeaseca',3386,3389,3,1),(512,'Aldeaseca de Alba',32288,32291,3,1),(513,'Aldeaseca de la Frontera',32292,32295,3,1),(514,'Aldeasoña',34012,34015,3,1),(515,'Aldeatejada',32296,32307,3,5),(516,'Aldeavieja de Tormes',32308,32311,3,1),(517,'Aldehorno',34016,34019,3,1),(518,'Aldehuela de Jerte',9156,9159,3,1),(519,'Aldehuela de la Bóveda',32312,32317,3,2),(520,'Aldehuela de Liestos',43468,43471,3,1),(521,'Aldehuela de Periáñez',35560,35563,3,1),(522,'Aldehuela de Yeltes',32318,32323,3,2),(523,'Aldehuela del Codonal',34020,34023,3,1),(524,'Aldeire',15068,15071,3,1),(525,'Aldeonte',34024,34029,3,2),(526,'Aldover',36484,36487,3,1),(527,'Aledo',27454,27457,3,1),(528,'Alegia',17296,17299,3,1),(529,'Alegría-Dulantzi',10,15,3,2),(530,'Alella',5750,5753,3,1),(531,'Alentisque',35564,35567,3,1),(532,'Alerre',18260,18263,3,1),(533,'Alesanco',21044,21047,3,1),(534,'Alesón',21048,21051,3,1),(535,'Alfacar',15072,15077,3,2),(536,'Alfafar',39400,39403,3,1),(537,'Alfafara',940,943,3,1),(538,'Alfajarín',43472,43475,3,1),(539,'Alfambra',37414,37417,3,1),(540,'Alfamén',43476,43479,3,1),(541,'Alfántega',18264,18267,3,1),(542,'Alfara de Carles',36488,36491,3,1),(543,'Alfara de la Baronia',39404,39407,3,1),(544,'Alfara del Patriarca',39408,39411,3,1),(545,'Alfaraz de Sayago',42108,42111,3,1),(546,'Alfarnate',26834,26837,3,1),(547,'Alfarnatejo',26838,26841,3,1),(548,'Alfaro',21052,21055,3,1),(549,'Alfarp',39412,39415,3,1),(550,'Alfarràs',23402,23405,3,1),(551,'Alfarrasí',39416,39419,3,1),(552,'Alfauir',39420,39423,3,1),(553,'Alfés',23406,23409,3,1),(554,'Alfondeguilla',11268,11271,3,1),(555,'Alforja',36492,36495,3,1),(556,'Alforque',43480,43483,3,1),(557,'Alfoz',24726,24737,3,5),(558,'Alfoz de Bricia',7288,7297,3,4),(559,'Alfoz de Lloredo',10464,10477,3,6),(560,'Alfoz de Quintanadueñas',7298,7303,3,2),(561,'Alfoz de Santa Gadea',7304,7309,3,2),(562,'Algadefe',21774,21777,3,1),(563,'Algaida',5306,5313,3,3),(564,'Algámitas',34982,34985,3,1),(565,'Algar',10150,10153,3,1),(566,'Algar de Mesa',15978,15981,3,1),(567,'Algar de Palancia',39424,39427,3,1),(568,'Algarinejo',15078,15083,3,2),(569,'Algarra',12922,12925,3,1),(570,'Algarrobo',26842,26845,3,1),(571,'Algatocín',26846,26849,3,1),(572,'Algeciras',10154,10173,3,9),(573,'Algemesí',39428,39431,3,1),(574,'Algerri',23410,23413,3,1),(575,'Algete',25830,25835,3,2),(576,'Algimia de Alfara',39432,39435,3,1),(577,'Algimia de Almonacid',11272,11275,3,1),(578,'Alginet',39436,39439,3,1),(579,'Algodonales',10174,10179,3,2),(580,'Algodre',42112,42115,3,1),(581,'Algora',15982,15985,3,1),(582,'Algorfa',944,947,3,1),(583,'Alguaire',23414,23417,3,1),(584,'Alguazas',27458,27463,3,2),(585,'Algueña',948,951,3,1),(586,'Alhabia',1736,1739,3,1),(587,'Alhama de Almería',1740,1743,3,1),(588,'Alhama de Aragón',43484,43487,3,1),(589,'Alhama de Granada',15084,15089,3,2),(590,'Alhama de Murcia',27464,27467,3,1),(591,'Alhambra',11902,11907,3,2),(592,'Alhaurín de la Torre',26850,26853,3,1),(593,'Alhaurín el Grande',26854,26857,3,1),(594,'Alhendín',15090,15093,3,1),(595,'Alhóndiga',15986,15989,3,1),(596,'Alía',9160,9163,3,1),(597,'Aliaga',37418,37425,3,3),(598,'Aliaguilla',12926,12929,3,1),(599,'Alicante/Alacant',952,1005,3,26),(600,'Alicún',1744,1747,3,1),(601,'Alicún de Ortega',15094,15097,3,1),(602,'Alija del Infantado',21778,21783,3,2),(603,'Alins',23418,23425,3,3),(604,'Alió',36496,36499,3,1),(605,'Alique',15990,15993,3,1),(606,'Aliseda',9164,9167,3,1),(607,'Aliud',35568,35571,3,1),(608,'Aljaraque',17720,17729,3,4),(609,'Aljucén',4496,4499,3,1),(610,'Alkiza',17300,17303,3,1),(611,'Allande',2324,2339,3,7),(612,'Allariz',29394,29411,3,8),(613,'Allepuz',37426,37429,3,1),(614,'Aller',2340,2369,3,14),(615,'Allín/Allin',28034,28039,3,2),(616,'Allo',28040,28043,3,1),(617,'Alloza',37430,37433,3,1),(618,'Allueva',37434,37437,3,1),(619,'Almacelles',23426,23429,3,1),(620,'Almácera',39440,39443,3,1),(621,'Almáchar',26858,26861,3,1),(622,'Almadén',11908,11911,3,1),(623,'Almadén de la Plata',34986,34989,3,1),(624,'Almadenejos',11912,11917,3,2),(625,'Almadrones',15994,15997,3,1),(626,'Almagro',11918,11923,3,2),(627,'Almajano',35572,35575,3,1),(628,'Almaluez',35576,35581,3,2),(629,'Almansa',448,451,3,1),(630,'Almanza',21784,21791,3,3),(631,'Almaraz',9168,9171,3,1),(632,'Almaraz de Duero',42116,42119,3,1),(633,'Almargen',26862,26865,3,1),(634,'Almarza',35582,35593,3,5),(635,'Almarza de Cameros',21056,21061,3,2),(636,'Almassora',11276,11279,3,1),(637,'Almatret',23430,23433,3,1),(638,'Almazán',35594,35599,3,2),(639,'Almazul',35600,35605,3,2),(640,'Almedíjar',11280,11283,3,1),(641,'Almedina',11924,11927,3,1),(642,'Almedinilla',12382,12387,3,2),(643,'Almegíjar',15098,15101,3,1),(644,'Almeida de Sayago',42120,42125,3,2),(645,'Almenar',23434,23437,3,1),(646,'Almenar de Soria',35606,35613,3,3),(647,'Almenara',11284,11287,3,1),(648,'Almenara de Adaja',40578,40581,3,1),(649,'Almenara de Tormes',32324,32327,3,1),(650,'Almendra',32328,32331,3,1),(651,'Almendral',4500,4503,3,1),(652,'Almendral de la Cañada',38446,38449,3,1),(653,'Almendralejo',4504,4507,3,1),(654,'Almendros',12930,12933,3,1),(655,'Almensilla',34990,34993,3,1),(656,'Almería',1748,1777,3,14),(657,'Almiserat',39444,39447,3,1),(658,'Almochuel',43488,43491,3,1),(659,'Almócita',1778,1781,3,1),(660,'Almodóvar del Campo',11928,11953,3,12),(661,'Almodóvar del Pinar',12934,12937,3,1),(662,'Almodóvar del Río',12388,12393,3,2),(663,'Almogía',26866,26869,3,1),(664,'Almoguera',15998,16001,3,1),(665,'Almohaja',37438,37441,3,1),(666,'Almoharín',9172,9175,3,1),(667,'Almoines',39448,39451,3,1),(668,'Almonacid de la Cuba',43492,43495,3,1),(669,'Almonacid de la Sierra',43496,43499,3,1),(670,'Almonacid de Toledo',38450,38453,3,1),(671,'Almonacid de Zorita',16002,16007,3,2),(672,'Almonacid del Marquesado',12938,12941,3,1),(673,'Almonaster la Real',17730,17745,3,7),(674,'Almonte',17746,17757,3,5),(675,'Almoradí',1006,1011,3,2),(676,'Almorox',38454,38457,3,1),(677,'Almoster',36500,36503,3,1),(678,'Almudaina',1012,1015,3,1),(679,'Almudévar',18268,18273,3,2),(680,'Almuñécar',15102,15107,3,2),(681,'Almunia de San Juan',18274,18279,3,2),(682,'Almuniente',18280,18285,3,2),(683,'Almuradiel',11954,11959,3,2),(684,'Almusafes',39452,39455,3,1),(685,'Alobras',37442,37445,3,1),(686,'Alocén',16008,16011,3,1),(687,'Alonsotegi',41558,41561,3,1),(688,'Álora',26870,26879,3,4),(689,'Alòs de Balaguer',23438,23441,3,1),(690,'Alosno',17758,17763,3,2),(691,'Alovera',16012,16015,3,1),(692,'Alozaina',26880,26883,3,1),(693,'Alp',13956,13961,3,2),(694,'Alpandeire',26884,26887,3,1),(695,'Alpanseque',35614,35617,3,1),(696,'Alpartir',43500,43503,3,1),(697,'Alpedrete',25836,25841,3,2),(698,'Alpeñés',37446,37449,3,1),(699,'Alpens',5754,5757,3,1),(700,'Alpera',452,455,3,1),(701,'Alpicat',23442,23445,3,1),(702,'Alpuente',39456,39459,3,1),(703,'Alpujarra de la Sierra',15108,15117,3,4),(704,'Alquería de la Condesa',39460,39463,3,1),(705,'Alquézar',18286,18289,3,1),(706,'Alquife',15118,15121,3,1),(707,'Alsodux',1782,1785,3,1),(708,'Alt Àneu',23446,23455,3,4),(709,'Altable',7310,7313,3,1),(710,'Altafulla',36504,36507,3,1),(711,'Altarejos',12942,12947,3,2),(712,'Altea',1016,1021,3,2),(713,'Altorricón',18290,18293,3,1),(714,'Altsasu/Alsasua',28044,28047,3,1),(715,'Altura',11288,11291,3,1),(716,'Altzaga',17304,17307,3,1),(717,'Altzo',17308,17311,3,1),(718,'Alustante',16016,16021,3,2),(719,'Alzira',39464,39471,3,3),(720,'Amavida',3390,3393,3,1),(721,'Amayuelas de Arriba',30360,30363,3,1),(722,'Ambel',43504,43507,3,1),(723,'Ambite',25842,25845,3,1),(724,'Amer',13962,13965,3,1),(725,'Ames',20052,20065,3,6),(726,'Améscoa Baja',28048,28051,3,1),(727,'Ameyugo',7314,7317,3,1),(728,'Amezketa',17312,17315,3,1),(729,'Amieva',2370,2375,3,2),(730,'Amoeiro',29412,29421,3,4),(731,'Amorebieta-Etxano',41562,41567,3,2),(732,'Amoroto',41568,41571,3,1),(733,'Amposta',36508,36515,3,3),(734,'Ampudia',30364,30371,3,3),(735,'Ampuero',10478,10485,3,3),(736,'Amurrio',16,23,3,3),(737,'Amusco',30372,30377,3,2),(738,'Amusquillo',40582,40585,3,1),(739,'Anadón',37450,37453,3,1),(740,'Añana',24,29,3,2),(741,'Anaya',34030,34033,3,1),(742,'Anaya de Alba',32332,32337,3,2),(743,'Anchuelo',25846,25849,3,1),(744,'Anchuras',11960,11965,3,2),(745,'Ancín/Antzin',28052,28057,3,2),(746,'Andavías',42126,42129,3,1),(747,'Andilla',39472,39475,3,1),(748,'Andoain',17316,17319,3,1),(749,'Andorra',37454,37457,3,1),(750,'Andosilla',28058,28061,3,1),(751,'Andratx',5314,5323,3,4),(752,'Andújar',19430,19439,3,4),(753,'Añe',34034,34037,3,1),(754,'Anento',43508,43511,3,1),(755,'Anglès',13966,13969,3,1),(756,'Anglesola',23456,23459,3,1),(757,'Angón',16022,16025,3,1),(758,'Anguciana',21062,21065,3,1),(759,'Angüés',18294,18301,3,3),(760,'Anguiano',21066,21069,3,1),(761,'Anguita',16026,16033,3,3),(762,'Anguix',7318,7321,3,1),(763,'Anievas',10486,10489,3,1),(764,'Aniñón',43512,43515,3,1),(765,'Anna',39476,39479,3,1),(766,'Anoeta',17320,17323,3,1),(767,'Añón de Moncayo',43516,43519,3,1),(768,'Añora',12394,12399,3,2),(769,'Añorbe',28062,28065,3,1),(770,'Añover de Tajo',38458,38461,3,1),(771,'Añover de Tormes',32338,32341,3,1),(772,'Anquela del Ducado',16034,16039,3,2),(773,'Anquela del Pedregal',16040,16043,3,1),(774,'Ansó',18302,18307,3,2),(775,'Ansoáin/Antsoain',28066,28069,3,1),(776,'Antas',1786,1791,3,2),(777,'Antas de Ulla',24738,24749,3,5),(778,'Antella',39480,39483,3,1),(779,'Antequera',26888,26901,3,6),(780,'Antigüedad',30378,30381,3,1),(781,'Antillón',18308,18311,3,1),(782,'Antzuola',17324,17327,3,1),(783,'Anue',28070,28073,3,1),(784,'Aoiz/Agoitz',28074,28077,3,1),(785,'Arabayona de Mógica',32342,32345,3,1),(786,'Aracena',17764,17773,3,4),(787,'Aragüés del Puerto',18312,18315,3,1),(788,'Arahal',34994,34997,3,1),(789,'Arahuetes',34038,34043,3,2),(790,'Araitz',28078,28081,3,1),(791,'Arakaldo',41572,41575,3,1),(792,'Arakil',28082,28091,3,4),(793,'Arama',17328,17331,3,1),(794,'Aramaio',30,37,3,3),(795,'Aranarache/Aranaratxe',28092,28095,3,1),(796,'Arancón',35618,35623,3,2),(797,'Aranda de Duero',7322,7329,3,3),(798,'Aranda de Moncayo',43520,43523,3,1),(799,'Arándiga',43524,43527,3,1),(800,'Arandilla',7330,7333,3,1),(801,'Arandilla del Arroyo',12948,12951,3,1),(802,'Aranga',20066,20069,3,1),(803,'Aranguren',28096,28099,3,1),(804,'Aranjuez',25850,25853,3,1),(805,'Arano',28100,28103,3,1),(806,'Arantza',28104,28107,3,1),(807,'Arantzazu',41576,41579,3,1),(808,'Arañuel',11292,11295,3,1),(809,'Aranzueque',16044,16047,3,1),(810,'Arapiles',32346,32355,3,4),(811,'Aras',28108,28111,3,1),(812,'Aras de los Olmos',39484,39487,3,1),(813,'Arauzo de Miel',7334,7339,3,2),(814,'Arauzo de Salce',7340,7343,3,1),(815,'Arauzo de Torre',7344,7347,3,1),(816,'Arbancón',16048,16051,3,1),(817,'Arbeca',23460,23463,3,1),(818,'Arbeteta',16052,16055,3,1),(819,'Arbizu',28112,28115,3,1),(820,'Arbo',31358,31373,3,7),(821,'Arboleas',1792,1795,3,1),(822,'Arbolí',36516,36519,3,1),(823,'Arbúcies',13970,13975,3,2),(824,'Arcas',12952,12955,3,1),(825,'Arce/Artzi',28116,28123,3,3),(826,'Arcediano',32356,32359,3,1),(827,'Arcenillas',42130,42133,3,1),(828,'Archena',27468,27473,3,2),(829,'Árchez',26902,26905,3,1),(830,'Archidona',26906,26915,3,4),(831,'Arcicóllar',38462,38465,3,1),(832,'Arconada',30382,30385,3,1),(833,'Arcones',34044,34047,3,1),(834,'Arcos',7348,7353,3,2),(835,'Arcos de Jalón',35624,35637,3,6),(836,'Arcos de la Frontera',10180,10187,3,3),(837,'Arcos de la Polvorosa',42134,42137,3,1),(838,'Arcos de la Sierra',12956,12959,3,1),(839,'Arcos de las Salinas',37458,37461,3,1),(840,'Ardales',26916,26921,3,2),(841,'Ardisa',43528,43531,3,1),(842,'Ardón',21792,21799,3,3),(843,'Areatza',41580,41583,3,1),(844,'Arellano',28124,28127,3,1),(845,'Arén',18316,18319,3,1),(846,'Arenales de San Gregorio',11966,11969,3,1),(847,'Arenas',26922,26927,3,2),(848,'Arenas de Iguña',10490,10495,3,2),(849,'Arenas de San Juan',11970,11973,3,1),(850,'Arenas de San Pedro',3394,3399,3,2),(851,'Arenas del Rey',15122,15129,3,3),(852,'Arenillas',35638,35641,3,1),(853,'Arenillas de Riopisuerga',7354,7357,3,1),(854,'Arens de Lledó',37462,37465,3,1),(855,'Arenys de Mar',5758,5761,3,1),(856,'Arenys de Munt',5762,5767,3,2),(857,'Arenzana de Abajo',21070,21073,3,1),(858,'Arenzana de Arriba',21074,21077,3,1),(859,'Ares',20070,20077,3,3),(860,'Ares del Maestrat',11296,11299,3,1),(861,'Areso',28128,28131,3,1),(862,'Aretxabaleta',17332,17335,3,1),(863,'Arevalillo',3400,3403,3,1),(864,'Arevalillo de Cega',34048,34051,3,1),(865,'Arévalo',3404,3407,3,1),(866,'Arévalo de la Sierra',35642,35645,3,1),(867,'Argamasilla de Alba',11974,11977,3,1),(868,'Argamasilla de Calatrava',11978,11981,3,1),(869,'Arganda del Rey',25854,25857,3,1),(870,'Argañín',42138,42141,3,1),(871,'Arganza',21800,21807,3,3),(872,'Argavieso',18320,18323,3,1),(873,'Argecilla',16056,16059,3,1),(874,'Argelaguer',13976,13979,3,1),(875,'Argelita',11300,11303,3,1),(876,'Argençola',5768,5771,3,1),(877,'Argente',37466,37469,3,1),(878,'Argentona',5772,5775,3,1),(879,'Argés',38466,38469,3,1),(880,'Argoños',10496,10499,3,1),(881,'Arguedas',28132,28135,3,1),(882,'Arguis',18324,18327,3,1),(883,'Arguisuelas',12960,12963,3,1),(884,'Argujillo',42142,42145,3,1),(885,'Aria',28136,28139,3,1),(886,'Ariany',5324,5329,3,2),(887,'Aribe',28140,28143,3,1),(888,'Arija',7358,7361,3,1),(889,'Ariño',37470,37473,3,1),(890,'Ariza',43532,43535,3,1),(891,'Arjona',19440,19443,3,1),(892,'Arjonilla',19444,19447,3,1),(893,'Arlanzón',7362,7365,3,1),(894,'Armallones',16060,16063,3,1),(895,'Armañanzas',28144,28147,3,1),(896,'Armenteros',32360,32369,3,4),(897,'Armilla',15130,15133,3,1),(898,'Armiñón',38,43,3,2),(899,'Armuña',34052,34059,3,3),(900,'Armuña de Almanzora',1796,1799,3,1),(901,'Armuña de Tajuña',16064,16067,3,1),(902,'Arnedillo',21078,21083,3,2),(903,'Arnedo',21084,21089,3,2),(904,'Arnes',36520,36523,3,1),(905,'Arnuero',10500,10505,3,2),(906,'Aroche',17774,17785,3,5),(907,'Arquillinos',42146,42149,3,1),(908,'Arquillos',19448,19453,3,2),(909,'Arrabalde',42150,42153,3,1),(910,'Arraia-Maeztu',44,51,3,3),(911,'Arrancacepas',12964,12967,3,1),(912,'Arrankudiaga',41584,41589,3,2),(913,'Arrasate/Mondragón',17336,17341,3,2),(914,'Arratzu',41590,41597,3,3),(915,'Arratzua-Ubarrundia',52,57,3,2),(916,'Arraya de Oca',7366,7369,3,1),(917,'Arredondo',10506,10509,3,1),(918,'Arres',23464,23467,3,1),(919,'Arriate',26928,26931,3,1),(920,'Arrieta',41598,41601,3,1),(921,'Arrigorriaga',41602,41607,3,2),(922,'Arroba de los Montes',11982,11985,3,1),(923,'Arróniz',28148,28151,3,1),(924,'Arroyo de la Encomienda',40586,40589,3,1),(925,'Arroyo de la Luz',9176,9179,3,1),(926,'Arroyo de las Fraguas',16068,16071,3,1),(927,'Arroyo de San Serván',4508,4511,3,1),(928,'Arroyo del Ojanco',19454,19459,3,2),(929,'Arroyomolinos',25858,25861,3,1),(930,'Arroyomolinos',9180,9181,3,0),(931,'Arroyomolinos de la Vera',9182,9185,3,1),(932,'Arroyomolinos de León',17786,17789,3,1),(933,'Arruazu',28152,28155,3,1),(934,'Arrúbal',21090,21093,3,1),(935,'Arsèguel',23468,23471,3,1),(936,'Artà',5330,5335,3,2),(937,'Artajona',28156,28159,3,1),(938,'Artana',11304,11307,3,1),(939,'Artazu',28160,28163,3,1),(940,'Artea',41608,41611,3,1),(941,'Arteixo',20078,20091,3,6),(942,'Artés',5776,5779,3,1),(943,'Artesa de Lleida',23472,23475,3,1),(944,'Artesa de Segre',23476,23487,3,5),(945,'Artieda',43536,43539,3,1),(946,'Artzentales',41612,41615,3,1),(947,'Artziniega',58,63,3,2),(948,'Arzúa',20092,20099,3,3),(949,'As Neves',31374,31385,3,5),(950,'As Nogais',24750,24759,3,4),(951,'As Pontes de García Rodríguez',20100,20117,3,8),(952,'As Somozas',20118,20127,3,4),(953,'Ascó',36524,36527,3,1),(954,'Asín',43540,43543,3,1),(955,'Aspa',23488,23491,3,1),(956,'Aspariegos',42154,42157,3,1),(957,'Asparrena',64,71,3,3),(958,'Aspe',1022,1025,3,1),(959,'Asteasu',17342,17345,3,1),(960,'Astigarraga',17346,17349,3,1),(961,'Astorga',21808,21813,3,2),(962,'Astudillo',30386,30391,3,2),(963,'Asturianos',42158,42165,3,3),(964,'Atajate',26932,26935,3,1),(965,'Atalaya',4512,4515,3,1),(966,'Atalaya del Cañavate',12968,12971,3,1),(967,'Atanzón',16072,16075,3,1),(968,'Atapuerca',7370,7373,3,1),(969,'Ataquines',40590,40593,3,1),(970,'Atarfe',15134,15141,3,3),(971,'Ataun',17350,17353,3,1),(972,'Atea',43544,43547,3,1),(973,'Ateca',43548,43551,3,1),(974,'Atez/Atetz',28164,28169,3,2),(975,'Atienza',16076,16085,3,4),(976,'Atxondo',41616,41621,3,2),(977,'Atzeneta del Maestrat',11308,11313,3,2),(978,'Aulesti',41622,41625,3,1),(979,'Auñón',16086,16091,3,2),(980,'Auritz/Burguete',28170,28173,3,1),(981,'Ausejo',21094,21097,3,1),(982,'Ausejo de la Sierra',35646,35649,3,1),(983,'Autilla del Pino',30392,30395,3,1),(984,'Autillo de Campos',30396,30399,3,1),(985,'Autol',21098,21101,3,1),(986,'Aveinte',3408,3413,3,2),(987,'Avellaneda',3414,3417,3,1),(988,'Avellanosa de Muñó',7374,7377,3,1),(989,'Avià',5780,5785,3,2),(990,'Ávila',3418,3437,3,9),(991,'Avilés',2376,2397,3,10),(992,'Avinyó',5786,5789,3,1),(993,'Avinyonet de Puigventós',13980,13983,3,1),(994,'Avinyonet del Penedès',5790,5799,3,4),(995,'Avión',29422,29425,3,1),(996,'Ayala/Aiara',72,85,3,6),(997,'Ayamonte',17790,17803,3,6),(998,'Ayegui/Aiegi',28174,28179,3,2),(999,'Ayelo de Malferit',39488,39491,3,1),(1000,'Ayelo de Rugat',39492,39495,3,1),(1001,'Ayerbe',18328,18335,3,3),(1002,'Ayllón',34060,34071,3,5),(1003,'Ayna',456,467,3,5),(1004,'Ayódar',11314,11317,3,1),(1005,'Ayoó de Vidriales',42166,42171,3,2),(1006,'Ayora',39496,39499,3,1),(1007,'Ayuela',30400,30403,3,1),(1008,'Azagra',28180,28183,3,1),(1009,'Azaila',37474,37477,3,1),(1010,'Azanuy-Alins',18336,18339,3,1),(1011,'Azara',18340,18343,3,1),(1012,'Azkoitia',17354,17357,3,1),(1013,'Azlor',18344,18347,3,1),(1014,'Aznalcázar',34998,35003,3,2),(1015,'Aznalcóllar',35004,35007,3,1),(1016,'Azofra',21102,21105,3,1),(1017,'Azpeitia',17358,17361,3,1),(1018,'Azuaga',4516,4521,3,2),(1019,'Azuara',43552,43555,3,1),(1020,'Azuébar',11318,11321,3,1),(1021,'Azuelo',28184,28187,3,1),(1022,'Azuqueca de Henares',16092,16095,3,1),(1023,'Azután',38470,38473,3,1),(1024,'Babilafuente',32370,32373,3,1),(1025,'Bacares',1800,1803,3,1),(1026,'Badajoz',4522,4561,3,19),(1027,'Badalona',5800,5817,3,8),(1028,'Badarán',21106,21109,3,1),(1029,'Bádenas',37478,37481,3,1),(1030,'Badia del Vallès',5818,5821,3,1),(1031,'Badolatosa',35008,35013,3,2),(1032,'Badules',43556,43559,3,1),(1033,'Baélls',18348,18351,3,1),(1034,'Baena',12400,12407,3,3),(1035,'Baeza',19460,19471,3,5),(1036,'Bagà',5822,5825,3,1),(1037,'Báguena',37482,37485,3,1),(1038,'Bagüés',43560,43563,3,1),(1039,'Bahabón',40594,40597,3,1),(1040,'Bahabón de Esgueva',7378,7381,3,1),(1041,'Baides',16096,16099,3,1),(1042,'Bailén',19472,19475,3,1),(1043,'Bailo',18352,18359,3,3),(1044,'Baiona',31386,31397,3,5),(1045,'Baix Pallars',23492,23503,3,5),(1046,'Bakaiku',28188,28191,3,1),(1047,'Bakio',41626,41629,3,1),(1048,'Balaguer',23504,23507,3,1),(1049,'Balanegra',1804,1805,3,0),(1050,'Balazote',468,471,3,1),(1051,'Balboa',21814,21817,3,1),(1052,'Balconchán',43564,43567,3,1),(1053,'Baldellou',18360,18363,3,1),(1054,'Baleira',24760,24775,3,7),(1055,'Balenyà',5826,5829,3,1),(1056,'Baliarrain',17362,17365,3,1),(1057,'Ballesteros de Calatrava',11986,11989,3,1),(1058,'Ballobar',18364,18367,3,1),(1059,'Balmaseda',41630,41633,3,1),(1060,'Balones',1026,1029,3,1),(1061,'Balsa de Ves',472,477,3,2),(1062,'Balsareny',5830,5833,3,1),(1063,'Baltanás',30404,30409,3,2),(1064,'Baltar',29426,29433,3,3),(1065,'Bañares',21110,21113,3,1),(1066,'Banastás',18368,18371,3,1),(1067,'Bande',29434,29451,3,8),(1068,'Bañobárez',32374,32377,3,1),(1069,'Bañón',37486,37489,3,1),(1070,'Baños de Ebro/Mañueta',86,89,3,1),(1071,'Baños de la Encina',19476,19481,3,2),(1072,'Baños de Molgas',29452,29463,3,5),(1073,'Baños de Montemayor',9186,9189,3,1),(1074,'Baños de Río Tobía',21114,21117,3,1),(1075,'Baños de Rioja',21118,21121,3,1),(1076,'Baños de Tajo',16100,16103,3,1),(1077,'Baños de Valdearados',7382,7385,3,1),(1078,'Bañuelos',16104,16107,3,1),(1079,'Bañuelos de Bureba',7386,7389,3,1),(1080,'Banyalbufar',5336,5341,3,2),(1081,'Banyeres de Mariola',1030,1033,3,1),(1082,'Banyeres del Penedès',36528,36533,3,2),(1083,'Banyoles',13984,13987,3,1),(1084,'Baquerín de Campos',30410,30413,3,1),(1085,'Barajas de Melo',12972,12977,3,2),(1086,'Barakaldo',41634,41641,3,3),(1087,'Baralla',24776,24795,3,9),(1088,'Barañáin/Barañain',28192,28195,3,1),(1089,'Baraona',35650,35659,3,4),(1090,'Barásoain',28196,28199,3,1),(1091,'Barbadás',29464,29477,3,6),(1092,'Barbadillo',32378,32383,3,2),(1093,'Barbadillo de Herreros',7390,7393,3,1),(1094,'Barbadillo del Mercado',7394,7397,3,1),(1095,'Barbadillo del Pez',7398,7401,3,1),(1096,'Barbalos',32384,32387,3,1),(1097,'Barbarin',28200,28203,3,1),(1098,'Barbastro',18372,18377,3,2),(1099,'Barbate',10188,10197,3,4),(1100,'Barbens',23508,23511,3,1),(1101,'Barberà de la Conca',36534,36541,3,3),(1102,'Barberà del Vallès',5834,5837,3,1),(1103,'Bárboles',43568,43571,3,1),(1104,'Barbolla',34072,34075,3,1),(1105,'Barbués',18378,18381,3,1),(1106,'Barbuñales',18382,18385,3,1),(1107,'Barca',35660,35663,3,1),(1108,'Bárcabo',18386,18395,3,4),(1109,'Barcarrota',4562,4565,3,1),(1110,'Barcelona',5838,5923,3,42),(1111,'Bárcena de Campos',30414,30417,3,1),(1112,'Bárcena de Cicero',10510,10521,3,5),(1113,'Bárcena de Pie de Concha',10522,10525,3,1),(1114,'Barceo',32388,32391,3,1),(1115,'Barcheta',39500,39503,3,1),(1116,'Barchín del Hoyo',12978,12981,3,1),(1117,'Barcial de la Loma',40598,40601,3,1),(1118,'Barcial del Barco',42172,42175,3,1),(1119,'Barcience',38474,38479,3,2),(1120,'Barcones',35664,35667,3,1),(1121,'Bardallur',43572,43575,3,1),(1122,'Bareyo',10526,10533,3,3),(1123,'Bargas',38480,38483,3,1),(1124,'Bargota',28204,28207,3,1),(1125,'Barillas',28208,28211,3,1),(1126,'Barjas',21818,21823,3,2),(1127,'Barracas',11322,11325,3,1),(1128,'Barrachina',37490,37493,3,1),(1129,'Barrado',9190,9193,3,1),(1130,'Barrax',478,481,3,1),(1131,'Barreiros',24796,24807,3,5),(1132,'Barrika',41642,41645,3,1),(1133,'Barrio de Muñó',7402,7405,3,1),(1134,'Barriopedro',16108,16111,3,1),(1135,'Barrios de Colina',7406,7409,3,1),(1136,'Barro',31398,31409,3,5),(1137,'Barromán',3438,3441,3,1),(1138,'Barruecopardo',32392,32395,3,1),(1139,'Barruelo de Santullán',30418,30425,3,3),(1140,'Barruelo del Valle',40602,40605,3,1),(1141,'Barrundia',90,95,3,2),(1142,'Barx',39504,39507,3,1),(1143,'Basaburua',28212,28217,3,2),(1144,'Basardilla',34076,34079,3,1),(1145,'Basauri',41646,41649,3,1),(1146,'Bàscara',13988,13993,3,2),(1147,'Basconcillos del Tozo',7410,7417,3,3),(1148,'Báscones de Ojeda',30426,30429,3,1),(1149,'Bascuñana',7418,7421,3,1),(1150,'Bascuñana de San Pedro',12982,12985,3,1),(1151,'Bassella',23512,23519,3,3),(1152,'Batea',36542,36545,3,1),(1153,'Baterno',4566,4569,3,1),(1154,'Batres',25862,25867,3,2),(1155,'Bausen',23520,23523,3,1),(1156,'Bayárcal',1806,1811,3,2),(1157,'Bayarque',1812,1815,3,1),(1158,'Bayubas de Abajo',35668,35671,3,1),(1159,'Bayubas de Arriba',35672,35675,3,1),(1160,'Baza',15142,15147,3,2),(1161,'Baztan',28218,28237,3,9),(1162,'Bea',37494,37497,3,1),(1163,'Beade',29478,29483,3,2),(1164,'Beamud',12986,12989,3,1),(1165,'Beariz',29484,29487,3,1),(1166,'Beas',17804,17813,3,4),(1167,'Beas de Granada',15148,15151,3,1),(1168,'Beas de Guadix',15152,15155,3,1),(1169,'Beas de Segura',19482,19487,3,2),(1170,'Beasain',17366,17369,3,1),(1171,'Becedas',3442,3447,3,2),(1172,'Becedillas',3448,3451,3,1),(1173,'Beceite',37498,37501,3,1),(1174,'Becerreá',24808,24841,3,16),(1175,'Becerril de Campos',30430,30433,3,1),(1176,'Becerril de la Sierra',25868,25871,3,1),(1177,'Becilla de Valderaduey',40606,40609,3,1),(1178,'Bédar',1816,1821,3,2),(1179,'Bedia',41650,41653,3,1),(1180,'Bedmar y Garcíez',19488,19493,3,2),(1181,'Begíjar',19494,19499,3,2),(1182,'Begonte',24842,24851,3,4),(1183,'Begues',5924,5927,3,1),(1184,'Begur',13994,13999,3,2),(1185,'Beintza-Labaien',28238,28241,3,1),(1186,'Beire',28242,28245,3,1),(1187,'Beires',1822,1825,3,1),(1188,'Beizama',17370,17373,3,1),(1189,'Béjar',32396,32403,3,3),(1190,'Bejís',11326,11329,3,1),(1191,'Belalcázar',12408,12411,3,1),(1192,'Belascoáin',28246,28249,3,1),(1193,'Belauntza',17374,17377,3,1),(1194,'Belbimbre',7422,7425,3,1),(1195,'Belchite',43576,43579,3,1),(1196,'Beleña',32404,32407,3,1),(1197,'Bélgida',39508,39511,3,1),(1198,'Belianes',23524,23527,3,1),(1199,'Belinchón',12990,12995,3,2),(1200,'Bell-lloc d\'Urgell',23528,23531,3,1),(1201,'Bellaguarda',23532,23535,3,1),(1202,'Bellcaire d\'Empordà',14000,14003,3,1),(1203,'Bellcaire d\'Urgell',23536,23539,3,1),(1204,'Bellmunt d\'Urgell',23540,23543,3,1),(1205,'Bellmunt del Priorat',36546,36549,3,1),(1206,'Bello',37502,37505,3,1),(1207,'Bellprat',5928,5931,3,1),(1208,'Bellpuig',23544,23547,3,1),(1209,'Bellreguart',39512,39515,3,1),(1210,'Bellús',39516,39519,3,1),(1211,'Bellvei',36550,36553,3,1),(1212,'Bellver de Cerdanya',23548,23555,3,3),(1213,'Bellvís',23556,23561,3,2),(1214,'Belmez',12412,12423,3,5),(1215,'Bélmez de la Moraleda',19500,19503,3,1),(1216,'Belmonte',12996,13001,3,2),(1217,'Belmonte de Campos',30434,30437,3,1),(1218,'Belmonte de Gracián',43580,43583,3,1),(1219,'Belmonte de Miranda',2398,2423,3,12),(1220,'Belmonte de San José',37506,37509,3,1),(1221,'Belmonte de Tajo',25872,25875,3,1),(1222,'Belmontejo',13002,13005,3,1),(1223,'Belorado',7426,7437,3,5),(1224,'Belver de Cinca',18396,18403,3,3),(1225,'Belver de los Montes',42176,42179,3,1),(1226,'Belvís de la Jara',38484,38487,3,1),(1227,'Belvís de Monroy',9194,9197,3,1),(1228,'Bembibre',21824,21833,3,4),(1229,'Benabarre',18404,18409,3,2),(1230,'Benacazón',35014,35017,3,1),(1231,'Benadalid',26936,26939,3,1),(1232,'Benafarces',40610,40613,3,1),(1233,'Benafer',11330,11333,3,1),(1234,'Benafigos',11334,11337,3,1),(1235,'Benagéber',39520,39523,3,1),(1236,'Benaguacil',39524,39527,3,1),(1237,'Benahadux',1826,1829,3,1),(1238,'Benahavís',26940,26943,3,1),(1239,'Benalauría',26944,26947,3,1),(1240,'Benalmádena',26948,26955,3,3),(1241,'Benalúa',15156,15159,3,1),(1242,'Benalúa de las Villas',15160,15163,3,1),(1243,'Benalup-Casas Viejas',10198,10201,3,1),(1244,'Benamargosa',26956,26959,3,1),(1245,'Benamaurel',15164,15167,3,1),(1246,'Benamejí',12424,12429,3,2),(1247,'Benamocarra',26960,26963,3,1),(1248,'Benaocaz',10202,10205,3,1),(1249,'Benaoján',26964,26967,3,1),(1250,'Benarrabá',26968,26971,3,1),(1251,'Benasau',1034,1037,3,1),(1252,'Benasque',18410,18417,3,3),(1253,'Benassal',11338,11341,3,1),(1254,'Benatae',19504,19507,3,1),(1255,'Benavent de Segrià',23562,23565,3,1),(1256,'Benavente',42180,42183,3,1),(1257,'Benavides',21834,21843,3,4),(1258,'Benavites',39528,39531,3,1),(1259,'Benegiles',42184,42187,3,1),(1260,'Beneigida',39532,39535,3,1),(1261,'Beneixama',1038,1043,3,2),(1262,'Benejúzar',1044,1047,3,1),(1263,'Benetúser',39536,39539,3,1),(1264,'Benferri',1048,1051,3,1),(1265,'Beniarbeig',1052,1055,3,1),(1266,'Beniardá',1056,1059,3,1),(1267,'Beniarjó',39540,39543,3,1),(1268,'Beniarrés',1060,1063,3,1),(1269,'Beniatjar',39544,39547,3,1),(1270,'Benicarló',11342,11347,3,2),(1271,'Benicasim/Benicàssim',11348,11351,3,1),(1272,'Benicolet',39548,39551,3,1),(1273,'Benicull',39552,39555,3,1),(1274,'Benidoleig',1064,1067,3,1),(1275,'Benidorm',1068,1077,3,4),(1276,'Beniel',27474,27477,3,1),(1277,'Benifairó de la Valldigna',39556,39559,3,1),(1278,'Benifairó de les Valls',39560,39563,3,1),(1279,'Benifallet',36554,36557,3,1),(1280,'Benifallim',1078,1081,3,1),(1281,'Benifato',1082,1085,3,1),(1282,'Benifayó',39564,39567,3,1),(1283,'Beniflá',39568,39571,3,1),(1284,'Benigánim',39572,39575,3,1),(1285,'Benigembla',1086,1089,3,1),(1286,'Benijófar',1090,1093,3,1),(1287,'Benilloba',1094,1097,3,1),(1288,'Benillup',1098,1101,3,1),(1289,'Benimantell',1102,1105,3,1),(1290,'Benimarfull',1106,1109,3,1),(1291,'Benimassot',1110,1113,3,1),(1292,'Benimeli',1114,1117,3,1),(1293,'Benimodo',39576,39579,3,1),(1294,'Benimuslem',39580,39583,3,1),(1295,'Beniparrell',39584,39589,3,2),(1296,'Benirredrá',39590,39593,3,1),(1297,'Benisanó',39594,39597,3,1),(1298,'Benisoda',39598,39601,3,1),(1299,'Benissa',1118,1121,3,1),(1300,'Benissanet',36558,36561,3,1),(1301,'Benisuera',39602,39605,3,1),(1302,'Benitachell/el Poble Nou de Benitatxell',1122,1125,3,1),(1303,'Benitagla',1830,1833,3,1),(1304,'Benizalón',1834,1839,3,2),(1305,'Benlloch',11352,11355,3,1),(1306,'Benquerencia',9198,9201,3,1),(1307,'Benquerencia de la Serena',4570,4579,3,4),(1308,'Bentarique',1840,1843,3,1),(1309,'Benuza',21844,21849,3,2),(1310,'Bera',28250,28255,3,2),(1311,'Berango',41654,41657,3,1),(1312,'Berantevilla',96,103,3,3),(1313,'Beranuy',18418,18423,3,2),(1314,'Berastegi',17378,17383,3,2),(1315,'Beratón',35676,35679,3,1),(1316,'Berbegal',18424,18427,3,1),(1317,'Berberana',7438,7443,3,2),(1318,'Berbinzana',28256,28259,3,1),(1319,'Berceo',21122,21125,3,1),(1320,'Bercero',40614,40617,3,1),(1321,'Berceruelo',40618,40621,3,1),(1322,'Bérchules',15168,15171,3,1),(1323,'Bercial',34080,34083,3,1),(1324,'Bercial de Zapardiel',3452,3455,3,1),(1325,'Bercianos del Páramo',21850,21855,3,2),(1326,'Bercianos del Real Camino',21856,21859,3,1),(1327,'Bercimuel',34084,34087,3,1),(1328,'Berdejo',43584,43587,3,1),(1329,'Berga',5932,5935,3,1),(1330,'Bergara',17384,17393,3,4),(1331,'Bergasa',21126,21129,3,1),(1332,'Bergasillas Bajera',21130,21133,3,1),(1333,'Berge',37510,37513,3,1),(1334,'Bergondo',20128,20139,3,5),(1335,'Beriáin',28260,28263,3,1),(1336,'Berja',1844,1853,3,4),(1337,'Berlanga',4580,4583,3,1),(1338,'Berlanga de Duero',35680,35689,3,4),(1339,'Berlanga del Bierzo',21860,21863,3,1),(1340,'Berlangas de Roa',7444,7447,3,1),(1341,'Bermellar',32408,32411,3,1),(1342,'Bermeo',41658,41661,3,1),(1343,'Bermillo de Sayago',42188,42201,3,6),(1344,'Bernardos',34088,34091,3,1),(1345,'Bernedo',104,113,3,4),(1346,'Berninches',16112,16115,3,1),(1347,'Bernuy de Porreros',34092,34095,3,1),(1348,'Bernuy-Zapardiel',3456,3459,3,1),(1349,'Berriatua',41662,41665,3,1),(1350,'Berrioplano/Berriobeiti',28264,28269,3,2),(1351,'Berriozar',28270,28275,3,2),(1352,'Berriz',41666,41671,3,2),(1353,'Berrobi',17394,17397,3,1),(1354,'Berrocal',17814,17817,3,1),(1355,'Berrocal de Huebra',32412,32415,3,1),(1356,'Berrocal de Salvatierra',32416,32419,3,1),(1357,'Berrocalejo',9202,9205,3,1),(1358,'Berrocalejo de Aragona',3460,3463,3,1),(1359,'Berrueces',40622,40625,3,1),(1360,'Berrueco',43588,43591,3,1),(1361,'Bertizarana',28276,28283,3,3),(1362,'Berzocana',9206,9209,3,1),(1363,'Berzosa de Bureba',7448,7451,3,1),(1364,'Berzosa del Lozoya',25876,25879,3,1),(1365,'Berzosilla',30438,30443,3,2),(1366,'Besalú',14004,14007,3,1),(1367,'Bescanó',14008,14015,3,3),(1368,'Betanzos',20140,20145,3,2),(1369,'Betelu',28284,28287,3,1),(1370,'Bétera',39606,39609,3,1),(1371,'Beteta',13006,13013,3,3),(1372,'Betxí',11356,11359,3,1),(1373,'Beuda',14016,14021,3,2),(1374,'Bezares',21134,21137,3,1),(1375,'Bezas',37514,37517,3,1),(1376,'Biar',1126,1129,3,1),(1377,'Bicorp',39610,39613,3,1),(1378,'Bidania-Goiatz',17398,17401,3,1),(1379,'Bidaurreta',28288,28291,3,1),(1380,'Biel',43592,43595,3,1),(1381,'Bielsa',18428,18435,3,3),(1382,'Bienservida',482,485,3,1),(1383,'Bienvenida',4584,4587,3,1),(1384,'Bierge',18436,18441,3,2),(1385,'Biescas',18442,18457,3,7),(1386,'Bigastro',1130,1133,3,1),(1387,'Bigues i Riells',5936,5941,3,2),(1388,'Bijuesca',43596,43599,3,1),(1389,'Bilbao',41672,41703,3,15),(1390,'Bimenes',2424,2429,3,2),(1391,'Binaced',18458,18463,3,2),(1392,'Binéfar',18464,18467,3,1),(1393,'Binissalem',5342,5345,3,1),(1394,'Biosca',23566,23573,3,3),(1395,'Biota',43600,43603,3,1),(1396,'Bisaurri',18468,18473,3,2),(1397,'Biscarrués',18474,18477,3,1),(1398,'Bisimbre',43604,43607,3,1),(1399,'Biure',14022,14025,3,1),(1400,'Biurrun-Olcoz',28292,28295,3,1),(1401,'Blacos',35690,35693,3,1),(1402,'Blanca',27478,27481,3,1),(1403,'Blancafort',36562,36565,3,1),(1404,'Blancas',37518,37521,3,1),(1405,'Blanes',14026,14029,3,1),(1406,'Blascomillán',3464,3469,3,2),(1407,'Blasconuño de Matacabras',3470,3473,3,1),(1408,'Blascosancho',3474,3477,3,1),(1409,'Blecua y Torres',18478,18483,3,2),(1410,'Blesa',37522,37525,3,1),(1411,'Bliecos',35694,35697,3,1),(1412,'Boada',32420,32423,3,1),(1413,'Boada de Campos',30444,30447,3,1),(1414,'Boadella i les Escaules',14030,14033,3,1),(1415,'Boadilla de Rioseco',30448,30451,3,1),(1416,'Boadilla del Camino',30452,30455,3,1),(1417,'Boadilla del Monte',25880,25883,3,1),(1418,'Boal',2430,2451,3,10),(1419,'Bobadilla',21138,21141,3,1),(1420,'Bobadilla del Campo',40626,40629,3,1),(1421,'Boborás',29488,29509,3,10),(1422,'Boca de Huérgano',21864,21873,3,4),(1423,'Bocairente',39614,39617,3,1),(1424,'Boceguillas',34096,34101,3,2),(1425,'Bocigas',40630,40633,3,1),(1426,'Bocos de Duero',40634,40637,3,1),(1427,'Bodonal de la Sierra',4588,4591,3,1),(1428,'Boecillo',40638,40641,3,1),(1429,'Bogajo',32424,32427,3,1),(1430,'Bogarra',486,495,3,4),(1431,'Bohonal de Ibor',9210,9213,3,1),(1432,'Bohoyo',3478,3483,3,2),(1433,'Boimorto',20146,20153,3,3),(1434,'Boiro',20154,20169,3,7),(1435,'Bolaños de Calatrava',11990,11993,3,1),(1436,'Bolaños de Campos',40642,40645,3,1),(1437,'Bolbaite',39618,39621,3,1),(1438,'Bollullos de la Mitación',35018,35021,3,1),(1439,'Bollullos Par del Condado',17818,17823,3,2),(1440,'Boltaña',18484,18495,3,5),(1441,'Bolulla',1134,1137,3,1),(1442,'Bolvir',14034,14037,3,1),(1443,'Bonansa',18496,18499,3,1),(1444,'Boñar',21874,21893,3,9),(1445,'Bonares',17824,17827,3,1),(1446,'Bonastre',36566,36569,3,1),(1447,'Bonete',496,499,3,1),(1448,'Boniches',13014,13017,3,1),(1449,'Bonilla de la Sierra',3484,3489,3,2),(1450,'Bonrepós y Mirambell',39622,39625,3,1),(1451,'Boqueixón',20170,20177,3,3),(1452,'Boquiñeni',43608,43611,3,1),(1453,'Borau',18500,18503,3,1),(1454,'Bordalba',43612,43615,3,1),(1455,'Bordils',14038,14041,3,1),(1456,'Bordón',37526,37529,3,1),(1457,'Borja',43616,43619,3,1),(1458,'Borjabad',35698,35701,3,1),(1459,'Bormujos',35022,35025,3,1),(1460,'Bornos',10206,10211,3,2),(1461,'Borobia',35702,35705,3,1),(1462,'Borox',38488,38491,3,1),(1463,'Borrassà',14042,14047,3,2),(1464,'Borredà',5942,5945,3,1),(1465,'Borrenes',21894,21899,3,2),(1466,'Borriana/Burriana',11360,11363,3,1),(1467,'Borriol',11364,11367,3,1),(1468,'Bossòst',23574,23577,3,1),(1469,'Bot',36570,36573,3,1),(1470,'Botarell',36574,36577,3,1),(1471,'Botija',9214,9217,3,1),(1472,'Botorrita',43620,43623,3,1),(1473,'Bóveda',24852,24865,3,6),(1474,'Bóveda del Río Almar',32428,32431,3,1),(1475,'Bovera',23578,23581,3,1),(1476,'Bozoó',7452,7457,3,2),(1477,'Brabos',3490,3493,3,1),(1478,'Bràfim',36578,36581,3,1),(1479,'Brahojos de Medina',40646,40649,3,1),(1480,'Brañosera',30456,30459,3,1),(1481,'Braojos',25884,25887,3,1),(1482,'Brazacorta',7458,7461,3,1),(1483,'Brazatortas',11994,11999,3,2),(1484,'Brazuelo',21900,21909,3,4),(1485,'Brea de Aragón',43624,43627,3,1),(1486,'Brea de Tajo',25888,25891,3,1),(1487,'Breda',14048,14051,3,1),(1488,'Brenes',35026,35029,3,1),(1489,'Bretó',42202,42205,3,1),(1490,'Bretocino',42206,42209,3,1),(1491,'Brieva',34102,34105,3,1),(1492,'Brieva de Cameros',21142,21145,3,1),(1493,'Brihuega',16116,16131,3,7),(1494,'Brime de Sog',42210,42213,3,1),(1495,'Brime de Urz',42214,42217,3,1),(1496,'Briñas',21146,21149,3,1),(1497,'Brincones',32432,32435,3,1),(1498,'Brión',20178,20185,3,3),(1499,'Briones',21150,21153,3,1),(1500,'Briviesca',7462,7473,3,5),(1501,'Bronchales',37530,37533,3,1),(1502,'Broto',18504,18515,3,5),(1503,'Brozas',9218,9221,3,1),(1504,'Brunete',25892,25895,3,1),(1505,'Brunyola',14052,14055,3,1),(1506,'Buberos',35706,35709,3,1),(1507,'Bubierca',43628,43631,3,1),(1508,'Bubión',15172,15175,3,1),(1509,'Buciegas',13018,13021,3,1),(1510,'Budia',16132,16137,3,2),(1511,'Bueña',37534,37537,3,1),(1512,'Buenache de Alarcón',13022,13025,3,1),(1513,'Buenache de la Sierra',13026,13029,3,1),(1514,'Buenamadre',32436,32441,3,2),(1515,'Buenaventura',38492,38495,3,1),(1516,'Buenavista',32442,32445,3,1),(1517,'Buenavista de Valdavia',30460,30465,3,2),(1518,'Buendía',13030,13033,3,1),(1519,'Bueu',31410,31419,3,4),(1520,'Bufali',39626,39629,3,1),(1521,'Bugarra',39630,39633,3,1),(1522,'Bugedo',7474,7477,3,1),(1523,'Búger',5346,5349,3,1),(1524,'Buitrago',35710,35713,3,1),(1525,'Buitrago del Lozoya',25896,25899,3,1),(1526,'Bujalance',12430,12437,3,3),(1527,'Bujalaro',16138,16141,3,1),(1528,'Bujaraloz',43632,43635,3,1),(1529,'Bularros',3494,3499,3,2),(1530,'Bulbuente',43636,43639,3,1),(1531,'Bullas',27482,27487,3,2),(1532,'Buniel',7478,7481,3,1),(1533,'Buñol',39634,39637,3,1),(1534,'Buñuel',28296,28299,3,1),(1535,'Bunyola',5350,5359,3,4),(1536,'Burbáguena',37538,37541,3,1),(1537,'Burela',24866,24869,3,1),(1538,'Bureta',43640,43643,3,1),(1539,'Burganes de Valverde',42218,42221,3,1),(1540,'Burgo de Osma-Ciudad de Osma',35714,35735,3,10),(1541,'Burgohondo',3500,3505,3,2),(1542,'Burgos',7482,7503,3,10),(1543,'Burgui/Burgi',28300,28303,3,1),(1544,'Burguillos',35030,35035,3,2),(1545,'Burguillos de Toledo',38496,38499,3,1),(1546,'Burguillos del Cerro',4592,4595,3,1),(1547,'Burjasot',39638,39641,3,1),(1548,'Burlada/Burlata',28304,28307,3,1),(1549,'Burón',21910,21917,3,3),(1550,'Burujón',38500,38503,3,1),(1551,'Busot',1138,1141,3,1),(1552,'Busquístar',15176,15179,3,1),(1553,'Bustares',16142,16145,3,1),(1554,'Bustarviejo',25900,25903,3,1),(1555,'Bustillo de Chaves',40650,40653,3,1),(1556,'Bustillo de la Vega',30466,30469,3,1),(1557,'Bustillo del Oro',42222,42225,3,1),(1558,'Bustillo del Páramo',21918,21925,3,3),(1559,'Bustillo del Páramo de Carrión',30470,30473,3,1),(1560,'Busto de Bureba',7504,7507,3,1),(1561,'Busturia',41704,41707,3,1),(1562,'Cabacés',36582,36585,3,1),(1563,'Caballar',34106,34109,3,1),(1564,'Cabana de Bergantiños',20186,20197,3,5),(1565,'Cabanabona',23582,23585,3,1),(1566,'Cabanas',20198,20207,3,4),(1567,'Cabañas de Ebro',43644,43647,3,1),(1568,'Cabañas de la Sagra',38504,38507,3,1),(1569,'Cabañas de Polendos',34110,34113,3,1),(1570,'Cabañas de Sayago',42226,42229,3,1),(1571,'Cabañas de Yepes',38508,38513,3,2),(1572,'Cabañas del Castillo',9222,9227,3,2),(1573,'Cabañas Raras',21926,21931,3,2),(1574,'Cabanelles',14056,14061,3,2),(1575,'Cabanes',11368,11373,3,2),(1576,'Cabanes',14062,14063,3,0),(1577,'Cabañes de Esgueva',7508,7511,3,1),(1578,'Cabanillas',28308,28311,3,1),(1579,'Cabanillas de la Sierra',25904,25907,3,1),(1580,'Cabanillas del Campo',16146,16149,3,1),(1581,'Cabeza del Buey',4596,4601,3,2),(1582,'Cabeza del Caballo',32446,32449,3,1),(1583,'Cabeza la Vaca',4602,4605,3,1),(1584,'Cabezabellosa',9228,9231,3,1),(1585,'Cabezabellosa de la Calzada',32450,32453,3,1),(1586,'Cabezamesada',38514,38517,3,1),(1587,'Cabezarados',12000,12003,3,1),(1588,'Cabezarrubias del Puerto',12004,12007,3,1),(1589,'Cabezas de Alambre',3506,3509,3,1),(1590,'Cabezas del Pozo',3510,3513,3,1),(1591,'Cabezas del Villar',3514,3517,3,1),(1592,'Cabezas Rubias',17828,17831,3,1),(1593,'Cabezón de Cameros',21154,21157,3,1),(1594,'Cabezón de la Sal',10534,10547,3,6),(1595,'Cabezón de la Sierra',7512,7515,3,1),(1596,'Cabezón de Liébana',10548,10555,3,3),(1597,'Cabezón de Pisuerga',40654,40657,3,1),(1598,'Cabezón de Valderaduey',40658,40661,3,1),(1599,'Cabezuela',34114,34117,3,1),(1600,'Cabezuela del Valle',9232,9235,3,1),(1601,'Cabizuela',3518,3521,3,1),(1602,'Cabó',23586,23589,3,1),(1603,'Cabolafuente',43648,43651,3,1),(1604,'Cabra',12438,12447,3,4),(1605,'Cabra de Mora',37542,37545,3,1),(1606,'Cabra del Camp',36586,36589,3,1),(1607,'Cabra del Santo Cristo',19508,19515,3,3),(1608,'Cabrales',2452,2457,3,2),(1609,'Cabranes',2458,2463,3,2),(1610,'Cabredo',28312,28315,3,1),(1611,'Cabrejas del Campo',35736,35739,3,1),(1612,'Cabrejas del Pinar',35740,35745,3,2),(1613,'Cabrera d\'Anoia',5946,5949,3,1),(1614,'Cabrera de Mar',5950,5953,3,1),(1615,'Cabrerizos',32454,32459,3,2),(1616,'Cabrero',9236,9239,3,1),(1617,'Cabreros del Monte',40662,40665,3,1),(1618,'Cabreros del Río',21932,21935,3,1),(1619,'Cabrillanes',21936,21943,3,3),(1620,'Cabrillas',32460,32463,3,1),(1621,'Cabrils',5954,5959,3,2),(1622,'Cabuérniga',10556,10565,3,4),(1623,'Cacabelos',21944,21951,3,3),(1624,'Cáceres',9240,9261,3,10),(1625,'Cachorrilla',9262,9265,3,1),(1626,'Cacín',15180,15183,3,1),(1627,'Cadalso',9266,9269,3,1),(1628,'Cadalso de los Vidrios',25908,25913,3,2),(1629,'Cadaqués',14064,14067,3,1),(1630,'Cádiar',15184,15189,3,2),(1631,'Cádiz',10212,10237,3,12),(1632,'Cadreita',28316,28319,3,1),(1633,'Cadrete',43652,43657,3,2),(1634,'Cájar',15190,15193,3,1),(1635,'Cala',17832,17835,3,1),(1636,'Calabazas de Fuentidueña',34118,34121,3,1),(1637,'Calaceite',37546,37549,3,1),(1638,'Calaf',5960,5963,3,1),(1639,'Calafell',36590,36597,3,3),(1640,'Calahorra',21158,21161,3,1),(1641,'Calahorra de Boedo',30474,30477,3,1),(1642,'Calamocha',37550,37569,3,9),(1643,'Calamonte',4606,4609,3,1),(1644,'Calañas',17836,17845,3,4),(1645,'Calanda',37570,37573,3,1),(1646,'Calasparra',27488,27491,3,1),(1647,'Calatañazor',35746,35749,3,1),(1648,'Calatayud',43658,43667,3,4),(1649,'Calatorao',43668,43671,3,1),(1650,'Calcena',43672,43675,3,1),(1651,'Caldas de Reis',31420,31435,3,7),(1652,'Caldearenas',18516,18523,3,3),(1653,'Calders',5964,5967,3,1),(1654,'Caldes d\'Estrac',5968,5971,3,1),(1655,'Caldes de Malavella',14068,14073,3,2),(1656,'Caldes de Montbui',5972,5975,3,1),(1657,'Calella',5976,5979,3,1),(1658,'Calera de León',4610,4613,3,1),(1659,'Calera y Chozas',38518,38523,3,2),(1660,'Caleruega',7516,7519,3,1),(1661,'Caleruela',38524,38527,3,1),(1662,'Calicasas',15194,15197,3,1),(1663,'Càlig',11374,11377,3,1),(1664,'Calldetenes',5980,5983,3,1),(1665,'Calles',39642,39645,3,1),(1666,'Callosa d\'en Sarrià',1142,1145,3,1),(1667,'Callosa de Segura',1146,1151,3,2),(1668,'Callús',5984,5987,3,1),(1669,'Calmarza',43676,43679,3,1),(1670,'Calomarde',37574,37577,3,1),(1671,'Calonge',14074,14079,3,2),(1672,'Calonge de Segarra',5988,5991,3,1),(1673,'Calp',1152,1155,3,1),(1674,'Caltojar',35750,35753,3,1),(1675,'Calvarrasa de Abajo',32464,32467,3,1),(1676,'Calvarrasa de Arriba',32468,32471,3,1),(1677,'Calvià',5360,5373,3,6),(1678,'Calvos de Randín',29510,29521,3,5),(1679,'Calzada de Calatrava',12008,12015,3,3),(1680,'Calzada de Don Diego',32472,32477,3,2),(1681,'Calzada de los Molinos',30478,30481,3,1),(1682,'Calzada de Oropesa',38528,38531,3,1),(1683,'Calzada de Valdunciel',32478,32481,3,1),(1684,'Calzada del Coto',21952,21955,3,1),(1685,'Calzadilla',9270,9273,3,1),(1686,'Calzadilla de los Barros',4614,4617,3,1),(1687,'Calzadilla de Tera',42230,42233,3,1),(1688,'Camaleño',10566,10577,3,5),(1689,'Camañas',37578,37581,3,1),(1690,'Camarasa',23590,23599,3,4),(1691,'Camarena',38532,38535,3,1),(1692,'Camarena de la Sierra',37582,37587,3,2),(1693,'Camarenilla',38536,38539,3,1),(1694,'Camargo',10578,10585,3,3),(1695,'Camarillas',37588,37591,3,1),(1696,'Camariñas',20208,20215,3,3),(1697,'Camarles',36598,36601,3,1),(1698,'Camarma de Esteruelas',25914,25917,3,1),(1699,'Camarzana de Tera',42234,42241,3,3),(1700,'Camas',35036,35041,3,2),(1701,'Cambados',31436,31447,3,5),(1702,'Cambil',19516,19521,3,2),(1703,'Cambre',20216,20231,3,7),(1704,'Cambrils',36602,36605,3,1),(1705,'Caminomorisco',9274,9285,3,5),(1706,'Caminreal',37592,37597,3,2),(1707,'Camós',14080,14085,3,2),(1708,'Campanario',4618,4623,3,2),(1709,'Campanet',5374,5377,3,1),(1710,'Campaspero',40666,40669,3,1),(1711,'Campazas',21956,21959,3,1),(1712,'Campdevànol',14086,14091,3,2),(1713,'Campelles',14092,14095,3,1),(1714,'Campezo/Kanpezu',114,121,3,3),(1715,'Campillo de Altobuey',13034,13037,3,1),(1716,'Campillo de Aragón',43680,43683,3,1),(1717,'Campillo de Aranda',7520,7523,3,1),(1718,'Campillo de Arenas',19522,19525,3,1),(1719,'Campillo de Azaba',32482,32485,3,1),(1720,'Campillo de Deleitosa',9286,9289,3,1),(1721,'Campillo de Dueñas',16150,16153,3,1),(1722,'Campillo de Llerena',4624,4627,3,1),(1723,'Campillo de Ranas',16154,16159,3,2),(1724,'Campillos',26972,26975,3,1),(1725,'Campillos-Paravientos',13038,13043,3,2),(1726,'Campillos-Sierra',13044,13047,3,1),(1727,'Campins',5992,5997,3,2),(1728,'Campisábalos',16160,16163,3,1),(1729,'Campllong',14096,14099,3,1),(1730,'Campo',18524,18529,3,2),(1731,'Campo de Criptana',12016,12019,3,1),(1732,'Campo de Mirra/el Camp de Mirra',1156,1159,3,1),(1733,'Campo de San Pedro',34122,34129,3,3),(1734,'Campo de Villavidel',21960,21963,3,1),(1735,'Campo Lameiro',31448,31457,3,4),(1736,'Campo Lugar',9290,9293,3,1),(1737,'Campo Real',25918,25921,3,1),(1738,'Campofrío',17846,17849,3,1),(1739,'Campolara',7524,7527,3,1),(1740,'Camponaraya',21964,21967,3,1),(1741,'Campoo de Enmedio',10586,10597,3,5),(1742,'Campoo de Yuso',10598,10609,3,5),(1743,'Camporredondo',40670,40673,3,1),(1744,'Camporrélls',18530,18533,3,1),(1745,'Camporrobles',39646,39649,3,1),(1746,'Campos',5378,5385,3,3),(1747,'Campos del Paraíso',13048,13053,3,2),(1748,'Campos del Río',27492,27497,3,2),(1749,'Campotéjar',15198,15201,3,1),(1750,'Camprodon',14100,14103,3,1),(1751,'Camprovín',21162,21167,3,2),(1752,'Camuñas',38540,38543,3,1),(1753,'Cañada',1160,1163,3,1),(1754,'Cañada de Benatanduz',37598,37601,3,1),(1755,'Cañada de Calatrava',12020,12023,3,1),(1756,'Cañada del Hoyo',13054,13057,3,1),(1757,'Cañada Juncosa',13058,13061,3,1),(1758,'Cañada Rosal',35042,35045,3,1),(1759,'Cañada Vellida',37602,37605,3,1),(1760,'Canal de Berdún',18534,18543,3,4),(1761,'Canalejas de Peñafiel',40674,40677,3,1),(1762,'Canalejas del Arroyo',13062,13065,3,1),(1763,'Canales',3522,3525,3,1),(1764,'Canales de la Sierra',21168,21171,3,1),(1765,'Canals',39650,39657,3,3),(1766,'Cañamaque',35754,35757,3,1),(1767,'Cañamares',13066,13069,3,1),(1768,'Cañamero',9294,9297,3,1),(1769,'Cáñar',15202,15205,3,1),(1770,'Cañas',21172,21175,3,1),(1771,'Cañaveral',9298,9305,3,3),(1772,'Cañaveral de León',17850,17853,3,1),(1773,'Cañaveras',13070,13073,3,1),(1774,'Cañaveruelas',13074,13077,3,1),(1775,'Candamo',2464,2473,3,4),(1776,'Candasnos',18544,18547,3,1),(1777,'Candelario',32486,32489,3,1),(1778,'Candeleda',3526,3533,3,3),(1779,'Candilichera',35758,35761,3,1),(1780,'Candín',21968,21973,3,2),(1781,'Canejan',23600,23603,3,1),(1782,'Canena',19526,19529,3,1),(1783,'Canencia',25922,25925,3,1),(1784,'Canet d\'Adri',14104,14107,3,1),(1785,'Canet de Berenguer',39658,39661,3,1),(1786,'Canet de Mar',5998,6001,3,1),(1787,'Canet lo Roig',11378,11381,3,1),(1788,'Cañete',13078,13081,3,1),(1789,'Cañete de las Torres',12448,12451,3,1),(1790,'Cañete la Real',26976,26979,3,1),(1791,'Canfranc',18548,18553,3,2),(1792,'Cangas',31458,31469,3,5),(1793,'Cangas de Onís',2474,2485,3,5),(1794,'Cangas del Narcea',2486,2505,3,9),(1795,'Canicosa de la Sierra',7528,7531,3,1),(1796,'Caniles',15206,15211,3,2),(1797,'Canillas de Abajo',32490,32497,3,3),(1798,'Canillas de Aceituno',26980,26985,3,2),(1799,'Canillas de Albaida',26986,26989,3,1),(1800,'Canillas de Esgueva',40678,40681,3,1),(1801,'Canillas de Río Tuerto',21176,21179,3,1),(1802,'Cañizal',42242,42245,3,1),(1803,'Cañizar',16164,16167,3,1),(1804,'Cañizar del Olivar',37606,37609,3,1),(1805,'Cañizares',13082,13089,3,3),(1806,'Cañizo',42246,42249,3,1),(1807,'Canjáyar',1854,1857,3,1),(1808,'Canovelles',6002,6005,3,1),(1809,'Cànoves i Samalús',6006,6013,3,3),(1810,'Canredondo',16168,16171,3,1),(1811,'Cantabrana',7532,7535,3,1),(1812,'Cantagallo',32498,32501,3,1),(1813,'Cantalapiedra',32502,32505,3,1),(1814,'Cantalejo',34130,34137,3,3),(1815,'Cantallops',14108,14111,3,1),(1816,'Cantalojas',16172,16177,3,2),(1817,'Cantalpino',32506,32509,3,1),(1818,'Cantaracillo',32510,32513,3,1),(1819,'Cantavieja',37610,37613,3,1),(1820,'Cantillana',35046,35049,3,1),(1821,'Cantimpalos',34138,34141,3,1),(1822,'Cantiveros',3534,3537,3,1),(1823,'Cantoria',1858,1865,3,3),(1824,'Canyelles',6014,6017,3,1),(1825,'Capafonts',36606,36609,3,1),(1826,'Caparroso',28320,28325,3,2),(1827,'Capçanes',36610,36613,3,1),(1828,'Capdepera',5386,5393,3,3),(1829,'Capdesaso',18554,18557,3,1),(1830,'Capella',18558,18563,3,2),(1831,'Capellades',6018,6021,3,1),(1832,'Capileira',15212,15215,3,1),(1833,'Capilla',4628,4631,3,1),(1834,'Capillas',30482,30485,3,1),(1835,'Capmany',14112,14115,3,1),(1836,'Capolat',6022,6025,3,1),(1837,'Carabaña',25926,25929,3,1),(1838,'Carabantes',35762,35765,3,1),(1839,'Carabias',34142,34145,3,1),(1840,'Caracena',35766,35769,3,1),(1841,'Caracuel de Calatrava',12024,12027,3,1),(1842,'Carataunas',15216,15219,3,1),(1843,'Caravaca de la Cruz',27498,27511,3,6),(1844,'Caravia',2506,2511,3,2),(1845,'Carazo',7536,7539,3,1),(1846,'Carbajales de Alba',42250,42253,3,1),(1847,'Carbajo',9306,9309,3,1),(1848,'Carbajosa de la Sagrada',32514,32523,3,4),(1849,'Carballeda de Avia',29522,29533,3,5),(1850,'Carballeda de Valdeorras',29534,29551,3,8),(1851,'Carballedo',24870,24887,3,8),(1852,'Carballo',20232,20247,3,7),(1853,'Carbellino',42254,42257,3,1),(1854,'Carboneras',1866,1871,3,2),(1855,'Carboneras de Guadazaón',13090,13093,3,1),(1856,'Carbonero el Mayor',34146,34149,3,1),(1857,'Carboneros',19530,19533,3,1),(1858,'Carcaboso',9310,9315,3,2),(1859,'Carcabuey',12452,12459,3,3),(1860,'Carcagente',39662,39669,3,3),(1861,'Cárcar',28326,28329,3,1),(1862,'Carcastillo',28330,28335,3,2),(1863,'Carcedo de Bureba',7540,7545,3,2),(1864,'Carcedo de Burgos',7546,7551,3,2),(1865,'Carcelén',500,503,3,1),(1866,'Cárcer',39670,39673,3,1),(1867,'Cárcheles',19534,19539,3,2),(1868,'Cardedeu',6026,6029,3,1),(1869,'Cardeña',12460,12471,3,5),(1870,'Cardeñadijo',7552,7555,3,1),(1871,'Cardeñajimeno',7556,7561,3,2),(1872,'Cárdenas',21180,21183,3,1),(1873,'Cardenete',13094,13097,3,1),(1874,'Cardeñosa',3538,3541,3,1),(1875,'Cardeñosa de Volpejera',30486,30489,3,1),(1876,'Cardeñuela Riopico',7562,7565,3,1),(1877,'Cardiel de los Montes',38544,38547,3,1),(1878,'Cardona',6030,6033,3,1),(1879,'Carenas',43684,43687,3,1),(1880,'Cariñena',43688,43691,3,1),(1881,'Cariño',20248,20257,3,4),(1882,'Carlet',39674,39677,3,1),(1883,'Carme',6034,6037,3,1),(1884,'Carmena',38548,38551,3,1),(1885,'Cármenes',21974,21979,3,2),(1886,'Carmona',35050,35055,3,2),(1887,'Carmonita',4632,4637,3,2),(1888,'Carnota',20258,20267,3,4),(1889,'Carpio',40682,40685,3,1),(1890,'Carpio de Azaba',32524,32527,3,1),(1891,'Carracedelo',21980,21991,3,5),(1892,'Carral',20268,20277,3,4),(1893,'Carranque',38552,38555,3,1),(1894,'Carrascal de Barregas',32528,32541,3,6),(1895,'Carrascal del Obispo',32542,32547,3,2),(1896,'Carrascal del Río',34150,34153,3,1),(1897,'Carrascalejo',9316,9319,3,1),(1898,'Carrascosa',13098,13103,3,2),(1899,'Carrascosa de Abajo',35770,35773,3,1),(1900,'Carrascosa de Haro',13104,13107,3,1),(1901,'Carrascosa de la Sierra',35774,35779,3,2),(1902,'Carratraca',26990,26993,3,1),(1903,'Carreño',2512,2525,3,6),(1904,'Carrias',7566,7569,3,1),(1905,'Carriches',38556,38559,3,1),(1906,'Carrícola',39678,39681,3,1),(1907,'Carrión de Calatrava',12028,12031,3,1),(1908,'Carrión de los Céspedes',35056,35059,3,1),(1909,'Carrión de los Condes',30490,30495,3,2),(1910,'Carrizo',21992,21997,3,2),(1911,'Carrizosa',12032,12035,3,1),(1912,'Carrocera',21998,22001,3,1),(1913,'Cartagena',27512,27593,3,40),(1914,'Cartajima',26994,26997,3,1),(1915,'Cártama',26998,27009,3,5),(1916,'Cartaya',17854,17861,3,3),(1917,'Cartelle',29552,29567,3,7),(1918,'Cartes',10610,10615,3,2),(1919,'Carucedo',22002,22009,3,3),(1920,'Casa de Uceda',16178,16181,3,1),(1921,'Casabermeja',27010,27013,3,1),(1922,'Casafranca',32548,32551,3,1),(1923,'Casalarreina',21184,21187,3,1),(1924,'Casar de Cáceres',9320,9325,3,2),(1925,'Casar de Palomero',9326,9333,3,3),(1926,'Casarabonela',27014,27017,3,1),(1927,'Casarejos',35780,35783,3,1),(1928,'Casares',27018,27023,3,2),(1929,'Casares de las Hurdes',9334,9337,3,1),(1930,'Casariche',35060,35063,3,1),(1931,'Casarrubios del Monte',38560,38563,3,1),(1932,'Casarrubuelos',25930,25933,3,1),(1933,'Casas Altas',39682,39685,3,1),(1934,'Casas Bajas',39686,39689,3,1),(1935,'Casas de Benítez',13108,13113,3,2),(1936,'Casas de Don Antonio',9338,9341,3,1),(1937,'Casas de Don Gómez',9342,9347,3,2),(1938,'Casas de Don Pedro',4638,4641,3,1),(1939,'Casas de Fernando Alonso',13114,13117,3,1),(1940,'Casas de Garcimolina',13118,13121,3,1),(1941,'Casas de Guijarro',13122,13125,3,1),(1942,'Casas de Haro',13126,13129,3,1),(1943,'Casas de Juan Núñez',504,507,3,1),(1944,'Casas de Lázaro',508,511,3,1),(1945,'Casas de los Pinos',13130,13133,3,1),(1946,'Casas de Millán',9348,9351,3,1),(1947,'Casas de Miravete',9352,9355,3,1),(1948,'Casas de Reina',4642,4645,3,1),(1949,'Casas de San Galindo',16182,16185,3,1),(1950,'Casas de Ves',512,515,3,1),(1951,'Casas del Castañar',9356,9359,3,1),(1952,'Casas del Monte',9360,9363,3,1),(1953,'Casas del Puerto',3542,3545,3,1),(1954,'Casas-Ibáñez',516,519,3,1),(1955,'Casasbuenas',38564,38567,3,1),(1956,'Casaseca de Campeán',42258,42261,3,1),(1957,'Casaseca de las Chanas',42262,42265,3,1),(1958,'Casasimarro',13134,13137,3,1),(1959,'Casasola',3546,3549,3,1),(1960,'Casasola de Arión',40686,40689,3,1),(1961,'Casatejada',9364,9367,3,1),(1962,'Casavieja',3550,3553,3,1),(1963,'Casbas de Huesca',18564,18569,3,2),(1964,'Cascajares de Bureba',7570,7573,3,1),(1965,'Cascajares de la Sierra',7574,7577,3,1),(1966,'Cascante',28336,28339,3,1),(1967,'Cascante del Río',37614,37617,3,1),(1968,'Cáseda',28340,28345,3,2),(1969,'Caseres',36614,36617,3,1),(1970,'Casillas',3554,3559,3,2),(1971,'Casillas de Coria',9368,9371,3,1),(1972,'Casillas de Flores',32552,32555,3,1),(1973,'Casinos',39690,39695,3,2),(1974,'Casla',34154,34157,3,1),(1975,'Caso',2526,2533,3,3),(1976,'Caspe',43692,43697,3,2),(1977,'Caspueñas',16186,16189,3,1),(1978,'Cassà de la Selva',14116,14119,3,1),(1979,'Casserres',6038,6041,3,1),(1980,'Castalla',1164,1167,3,1),(1981,'Castañar de Ibor',9372,9375,3,1),(1982,'Castañares de Rioja',21188,21191,3,1),(1983,'Castañeda',10616,10621,3,2),(1984,'Castaño del Robledo',17862,17865,3,1),(1985,'Cástaras',15220,15223,3,1),(1986,'Castejón',13138,13141,3,1),(1987,'Castejón',28346,28347,3,0),(1988,'Castejón de Alarba',43698,43701,3,1),(1989,'Castejón de Henares',16190,16193,3,1),(1990,'Castejón de las Armas',43702,43705,3,1),(1991,'Castejón de Monegros',18570,18573,3,1),(1992,'Castejón de Sos',18574,18581,3,3),(1993,'Castejón de Tornos',37618,37621,3,1),(1994,'Castejón de Valdejasa',43706,43709,3,1),(1995,'Castejón del Puente',18582,18585,3,1),(1996,'Castel de Cabra',37622,37625,3,1),(1997,'Castelflorite',18586,18589,3,1),(1998,'Castell de Cabres',11382,11385,3,1),(1999,'Castell de Castells',1168,1171,3,1),(2000,'Castell de l\'Areny',6042,6045,3,1),(2001,'Castell de Mur',23604,23611,3,3),(2002,'Castell-Platja d\'Aro',14120,14127,3,3),(2003,'Castellanos de Castro',7578,7581,3,1),(2004,'Castellanos de Moriscos',32556,32559,3,1),(2005,'Castellanos de Villiquera',32560,32567,3,3),(2006,'Castellanos de Zapardiel',3560,3563,3,1),(2007,'Castellar',19540,19543,3,1),(2008,'Castellar de la Frontera',10238,10241,3,1),(2009,'Castellar de la Muela',16194,16197,3,1),(2010,'Castellar de la Ribera',23612,23615,3,1),(2011,'Castellar de n\'Hug',6046,6049,3,1),(2012,'Castellar de Santiago',12036,12039,3,1),(2013,'Castellar del Riu',6050,6053,3,1),(2014,'Castellar del Vallès',6054,6057,3,1),(2015,'Castellbell i el Vilar',6058,6061,3,1),(2016,'Castellbisbal',6062,6065,3,1),(2017,'Castellcir',6066,6069,3,1),(2018,'Castelldans',23616,23619,3,1),(2019,'Castelldefels',6070,6073,3,1),(2020,'Castellet i la Gornal',6074,6079,3,2),(2021,'Castellfollit de la Roca',14128,14131,3,1),(2022,'Castellfollit de Riubregós',6080,6083,3,1),(2023,'Castellfollit del Boix',6084,6087,3,1),(2024,'Castellfort',11386,11389,3,1),(2025,'Castellgalí',6088,6091,3,1),(2026,'Castellnou de Bages',6092,6095,3,1),(2027,'Castellnou de Seana',23620,23623,3,1),(2028,'Castellnovo',11390,11393,3,1),(2029,'Castelló d\'Empúries',14132,14137,3,2),(2030,'Castelló de Farfanya',23624,23627,3,1),(2031,'Castellolí',6096,6099,3,1),(2032,'Castellón de la Plana/Castelló de la Plana',11394,11411,3,8),(2033,'Castellón de Rugat',39696,39699,3,1),(2034,'Castellonet',39700,39703,3,1),(2035,'Castellote',37626,37635,3,4),(2036,'Castellserà',23628,23631,3,1),(2037,'Castellterçol',6100,6103,3,1),(2038,'Castellvell del Camp',36618,36621,3,1),(2039,'Castellví de la Marca',6104,6107,3,1),(2040,'Castellví de Rosanes',6108,6111,3,1),(2041,'Castelnou',37636,37639,3,1),(2042,'Castelserás',37640,37643,3,1),(2043,'Castielfabib',39704,39707,3,1),(2044,'Castiello de Jaca',18590,18595,3,2),(2045,'Castigaleu',18596,18601,3,2),(2046,'Castil de Peones',7582,7585,3,1),(2047,'Castil de Vela',30496,30499,3,1),(2048,'Castilblanco',4646,4649,3,1),(2049,'Castilblanco de los Arroyos',35064,35067,3,1),(2050,'Castildelgado',7586,7589,3,1),(2051,'Castilfalé',22010,22013,3,1),(2052,'Castilforte',16198,16201,3,1),(2053,'Castilfrío de la Sierra',35784,35787,3,1),(2054,'Castiliscar',43710,43713,3,1),(2055,'Castillazuelo',18602,18605,3,1),(2056,'Castilleja de Guzmán',35068,35071,3,1),(2057,'Castilleja de la Cuesta',35072,35075,3,1),(2058,'Castilleja del Campo',35076,35079,3,1),(2059,'Castilléjar',15224,15227,3,1),(2060,'Castillejo de Iniesta',13142,13145,3,1),(2061,'Castillejo de Martín Viejo',32568,32573,3,2),(2062,'Castillejo de Mesleón',34158,34161,3,1),(2063,'Castillejo de Robledo',35788,35791,3,1),(2064,'Castillejo-Sierra',13146,13149,3,1),(2065,'Castillo de Bayuela',38568,38571,3,1),(2066,'Castillo de Garcimuñoz',13150,13153,3,1),(2067,'Castillo de Locubín',19544,19549,3,2),(2068,'Castillo de Villamalefa',11412,11415,3,1),(2069,'Castillo-Albaráñez',13154,13157,3,1),(2070,'Castillonroy',18606,18611,3,2),(2071,'Castillonuevo',28348,28351,3,1),(2072,'Castilnuevo',16202,16205,3,1),(2073,'Castilruiz',35792,35797,3,2),(2074,'Castraz',32574,32577,3,1),(2075,'Castrejón de la Peña',30500,30507,3,3),(2076,'Castrejón de Trabancos',40690,40693,3,1),(2077,'Castrelo de Miño',29568,29571,3,1),(2078,'Castrelo do Val',29572,29583,3,5),(2079,'Castril',15228,15231,3,1),(2080,'Castrillo de Cabrera',22014,22019,3,2),(2081,'Castrillo de Don Juan',30508,30511,3,1),(2082,'Castrillo de Duero',40694,40697,3,1),(2083,'Castrillo de la Guareña',42266,42269,3,1),(2084,'Castrillo de la Reina',7590,7593,3,1),(2085,'Castrillo de la Valduerna',22020,22023,3,1),(2086,'Castrillo de la Vega',7594,7597,3,1),(2087,'Castrillo de Onielo',30512,30515,3,1),(2088,'Castrillo de Riopisuerga',7598,7601,3,1),(2089,'Castrillo de Villavega',30516,30519,3,1),(2090,'Castrillo del Val',7602,7607,3,2),(2091,'Castrillo Mota de Judíos',7608,7611,3,1),(2092,'Castrillo-Tejeriego',40698,40701,3,1),(2093,'Castrillón',2534,2553,3,9),(2094,'Castro Caldelas',29584,29599,3,7),(2095,'Castro de Filabres',1872,1875,3,1),(2096,'Castro de Fuentidueña',34162,34165,3,1),(2097,'Castro de Rei',24888,24913,3,12),(2098,'Castro del Río',12472,12479,3,3),(2099,'Castro-Urdiales',10622,10637,3,7),(2100,'Castrobol',40702,40705,3,1),(2101,'Castrocalbón',22024,22027,3,1),(2102,'Castrocontrigo',22028,22035,3,3),(2103,'Castrodeza',40706,40709,3,1),(2104,'Castrogonzalo',42270,42273,3,1),(2105,'Castrojeriz',7612,7619,3,3),(2106,'Castrojimeno',34166,34169,3,1),(2107,'Castromembibre',40710,40713,3,1),(2108,'Castromocho',30520,30523,3,1),(2109,'Castromonte',40714,40717,3,1),(2110,'Castronuevo',42274,42277,3,1),(2111,'Castronuevo de Esgueva',40718,40721,3,1),(2112,'Castronuño',40722,40725,3,1),(2113,'Castropodame',22036,22043,3,3),(2114,'Castropol',2554,2565,3,5),(2115,'Castroponce',40726,40729,3,1),(2116,'Castroserna de Abajo',34170,34173,3,1),(2117,'Castroserracín',34174,34177,3,1),(2118,'Castrotierra de Valmadrigal',22044,22047,3,1),(2119,'Castroverde',24914,24945,3,15),(2120,'Castroverde de Campos',42278,42281,3,1),(2121,'Castroverde de Cerrato',40730,40733,3,1),(2122,'Castroviejo',21192,21195,3,1),(2123,'Castuera',4650,4653,3,1),(2124,'Catadau',39708,39711,3,1),(2125,'Catarroja',39712,39715,3,1),(2126,'Catí',11416,11419,3,1),(2127,'Catoira',31470,31473,3,1),(2128,'Catral',1172,1175,3,1),(2129,'Caudete',520,523,3,1),(2130,'Caudete de las Fuentes',39716,39719,3,1),(2131,'Caudiel',11420,11423,3,1),(2132,'Cava',23632,23635,3,1),(2133,'Cavia',7620,7623,3,1),(2134,'Cayuela',7624,7627,3,1),(2135,'Cazalegas',38572,38575,3,1),(2136,'Cazalilla',19550,19553,3,1),(2137,'Cazalla de la Sierra',35080,35085,3,2),(2138,'Cazorla',19554,19563,3,4),(2139,'Cazurra',42282,42285,3,1),(2140,'Cea',22048,22055,3,3),(2141,'Cebanico',22056,22063,3,3),(2142,'Cebolla',38576,38579,3,1),(2143,'Cebrecos',7628,7631,3,1),(2144,'Cebreros',3564,3567,3,1),(2145,'Cebrones del Río',22064,22067,3,1),(2146,'Ceclavín',9376,9379,3,1),(2147,'Cedeira',20278,20291,3,6),(2148,'Cedillo',9380,9383,3,1),(2149,'Cedillo de la Torre',34178,34181,3,1),(2150,'Cedillo del Condado',38580,38583,3,1),(2151,'Cedrillas',37644,37647,3,1),(2152,'Cee',20292,20301,3,4),(2153,'Cehegín',27594,27605,3,5),(2154,'Ceinos de Campos',40734,40737,3,1),(2155,'Celada del Camino',7632,7635,3,1),(2156,'Celadas',37648,37651,3,1),(2157,'Celanova',29600,29617,3,8),(2158,'Cella',37652,37655,3,1),(2159,'Cellorigo',21196,21199,3,1),(2160,'Celrà',14138,14141,3,1),(2161,'Cendea de Olza/Oltza Zendea',28352,28359,3,3),(2162,'Cendejas de Enmedio',16206,16209,3,1),(2163,'Cendejas de la Torre',16210,16213,3,1),(2164,'Cenes de la Vega',15232,15235,3,1),(2165,'Cenicero',21200,21203,3,1),(2166,'Cenicientos',25934,25937,3,1),(2167,'Cenizate',524,527,3,1),(2168,'Cenlle',29618,29625,3,3),(2169,'Centelles',6112,6115,3,1),(2170,'Centenera',16214,16217,3,1),(2171,'Centenera de Andaluz',35798,35801,3,1),(2172,'Cepeda',32578,32581,3,1),(2173,'Cepeda la Mora',3568,3571,3,1),(2174,'Cerbón',35802,35807,3,2),(2175,'Cerceda',20302,20311,3,4),(2176,'Cercedilla',25938,25941,3,1),(2177,'Cercs',6116,6119,3,1),(2178,'Cerdá',39720,39723,3,1),(2179,'Cerdanyola del Vallès',6120,6125,3,2),(2180,'Cerdedo-Cotobade',31474,31495,3,10),(2181,'Cerdido',20312,20317,3,2),(2182,'Cereceda de la Sierra',32582,32585,3,1),(2183,'Cerecinos de Campos',42286,42289,3,1),(2184,'Cerecinos del Carrizal',42290,42293,3,1),(2185,'Cerezal de Peñahorcada',32586,32589,3,1),(2186,'Cerezo',9384,9387,3,1),(2187,'Cerezo de Abajo',34182,34185,3,1),(2188,'Cerezo de Arriba',34186,34189,3,1),(2189,'Cerezo de Río Tirón',7636,7639,3,1),(2190,'Cernadilla',42294,42299,3,2),(2191,'Cerralbo',32590,32595,3,2),(2192,'Cerratón de Juarros',7640,7643,3,1),(2193,'Cervantes',24946,24963,3,8),(2194,'Cervatos de la Cueza',30524,30527,3,1),(2195,'Cervelló',6126,6129,3,1),(2196,'Cervera',23636,23645,3,4),(2197,'Cervera de Buitrago',25942,25945,3,1),(2198,'Cervera de la Cañada',43714,43717,3,1),(2199,'Cervera de los Montes',38584,38587,3,1),(2200,'Cervera de Pisuerga',30528,30539,3,5),(2201,'Cervera del Llano',13158,13161,3,1),(2202,'Cervera del Maestre',11424,11427,3,1),(2203,'Cervera del Río Alhama',21204,21213,3,4),(2204,'Cerveruela',43718,43721,3,1),(2205,'Cervià de les Garrigues',23646,23649,3,1),(2206,'Cervià de Ter',14142,14145,3,1),(2207,'Cervillego de la Cruz',40738,40741,3,1),(2208,'Cervo',24964,24973,3,4),(2209,'Cespedosa de Tormes',32596,32599,3,1),(2210,'Cetina',43722,43725,3,1),(2212,'Ceutí',27606,27611,3,2),(2213,'Cevico de la Torre',30540,30543,3,1),(2214,'Cevico Navero',30544,30547,3,1),(2215,'Chagarcía Medianero',32600,32603,3,1),(2216,'Chalamera',18612,18615,3,1),(2217,'Chamartín',3572,3575,3,1),(2218,'Chandrexa de Queixa',29626,29637,3,5),(2219,'Chañe',34190,34193,3,1),(2220,'Chantada',24974,25001,3,13),(2221,'Chapinería',25946,25949,3,1),(2222,'Chauchina',15236,15241,3,2),(2223,'Checa',16218,16221,3,1),(2224,'Cheles',4654,4657,3,1),(2225,'Chella',39724,39727,3,1),(2226,'Chelva',39728,39733,3,2),(2227,'Chequilla',16222,16225,3,1),(2228,'Chera',39734,39737,3,1),(2229,'Chercos',1876,1879,3,1),(2230,'Cheste',39738,39743,3,2),(2231,'Chía',18616,18619,3,1),(2232,'Chiclana de la Frontera',10242,10247,3,2),(2233,'Chiclana de Segura',19564,19571,3,3),(2234,'Chilches/Xilxes',11428,11433,3,2),(2235,'Chillarón de Cuenca',13162,13169,3,3),(2236,'Chillarón del Rey',16226,16229,3,1),(2237,'Chillón',12040,12043,3,1),(2238,'Chilluévar',19572,19577,3,2),(2239,'Chiloeches',16230,16237,3,3),(2240,'Chimeneas',15242,15245,3,1),(2241,'Chimillas',18620,18623,3,1),(2242,'Chinchilla de Monte-Aragón',528,541,3,6),(2243,'Chinchón',25950,25953,3,1),(2244,'Chipiona',10248,10251,3,1),(2245,'Chiprana',43726,43729,3,1),(2246,'Chirivel',1880,1883,3,1),(2247,'Chiva',39744,39747,3,1),(2248,'Chodes',43730,43733,3,1),(2249,'Chodos/Xodos',11434,11437,3,1),(2250,'Chóvar',11438,11441,3,1),(2251,'Chozas de Abajo',22068,22079,3,5),(2252,'Chozas de Canales',38588,38591,3,1),(2253,'Chucena',17866,17869,3,1),(2254,'Chueca',38592,38595,3,1),(2255,'Chulilla',39748,39751,3,1),(2256,'Chumillas',13170,13173,3,1),(2257,'Churriana de la Vega',15246,15249,3,1),(2258,'Ciadoncha',7644,7647,3,1),(2259,'Cidamón',21214,21217,3,1),(2260,'Cidones',35808,35811,3,1),(2261,'Ciempozuelos',25954,25957,3,1),(2262,'Cieza',27612,27615,3,1),(2263,'Cieza',10638,10639,3,0),(2264,'Cifuentes',16238,16249,3,5),(2265,'Cigales',40742,40745,3,1),(2266,'Cigudosa',35812,35815,3,1),(2267,'Ciguñuela',40746,40749,3,1),(2268,'Cihuela',35816,35819,3,1),(2269,'Cihuri',21218,21221,3,1),(2270,'Cijuela',15250,15253,3,1),(2271,'Cillán',3576,3579,3,1),(2272,'Cillaperlata',7648,7651,3,1),(2273,'Cilleros',9388,9391,3,1),(2274,'Cilleros de la Bastida',32604,32607,3,1),(2275,'Cilleruelo de Abajo',7652,7655,3,1),(2276,'Cilleruelo de Arriba',7656,7659,3,1),(2277,'Cilleruelo de San Mamés',34194,34197,3,1),(2278,'Cillorigo de Liébana',10640,10649,3,4),(2279,'Cimanes de la Vega',22080,22083,3,1),(2280,'Cimanes del Tejar',22084,22093,3,4),(2281,'Cimballa',43734,43737,3,1),(2282,'Cinco Olivas',43738,43741,3,1),(2283,'Cincovillas',16250,16253,3,1),(2284,'Cinctorres',11442,11445,3,1),(2285,'Cintruénigo',28360,28363,3,1),(2286,'Cipérez',32608,32613,3,2),(2287,'Cirat',11446,11451,3,2),(2288,'Cirauqui/Zirauki',28364,28367,3,1),(2289,'Ciria',35820,35823,3,1),(2290,'Ciriza/Ziritza',28368,28371,3,1),(2291,'Ciruelas',16254,16257,3,1),(2292,'Ciruelos',38596,38599,3,1),(2293,'Ciruelos de Cervera',7660,7663,3,1),(2294,'Ciruelos del Pinar',16258,16261,3,1),(2295,'Cirueña',21222,21225,3,1),(2296,'Cirujales del Río',35824,35827,3,1),(2297,'Cisla',3580,3583,3,1),(2298,'Cisneros',30548,30551,3,1),(2299,'Cistella',14146,14149,3,1),(2300,'Cistérniga',40750,40753,3,1),(2301,'Cistierna',22094,22105,3,5),(2302,'Ciudad Real',12044,12063,3,9),(2303,'Ciudad Rodrigo',32614,32629,3,7),(2304,'Ciutadella de Menorca',5688,5695,3,3),(2305,'Ciutadilla',23650,23653,3,1),(2306,'Cizur',28372,28377,3,2),(2307,'Clarés de Ribota',43742,43745,3,1),(2308,'Clariana de Cardener',23654,23657,3,1),(2309,'Clavijo',21226,21229,3,1),(2310,'Coaña',2566,2579,3,6),(2311,'Cóbdar',1884,1887,3,1),(2312,'Cobeja',38600,38603,3,1),(2313,'Cobeña',25958,25961,3,1),(2314,'Cobeta',16262,16265,3,1),(2315,'Cobisa',38604,38607,3,1),(2316,'Cobos de Cerrato',30552,30555,3,1),(2317,'Cobos de Fuentidueña',34198,34201,3,1),(2318,'Cobreros',42300,42307,3,3),(2319,'Coca',34202,34207,3,2),(2320,'Coca de Alba',32630,32633,3,1),(2321,'Cocentaina',1176,1181,3,2),(2322,'Codo',43746,43749,3,1),(2323,'Codorniz',34208,34213,3,2),(2324,'Codos',43750,43753,3,1),(2325,'Cofrentes',39752,39755,3,1),(2326,'Cogeces de Íscar',40754,40757,3,1),(2327,'Cogeces del Monte',40758,40761,3,1),(2328,'Cogollor',16266,16269,3,1),(2329,'Cogollos',7664,7667,3,1),(2330,'Cogollos de Guadix',15254,15257,3,1),(2331,'Cogollos de la Vega',15258,15261,3,1),(2332,'Cogolludo',16270,16279,3,4),(2333,'Coín',27024,27027,3,1),(2334,'Coirós',20318,20321,3,1),(2335,'Colera',14150,14153,3,1),(2336,'Coles',29638,29647,3,4),(2337,'Colindres',10650,10653,3,1),(2338,'Coll de Nargó',23658,23665,3,3),(2339,'Collado de Contreras',3584,3587,3,1),(2340,'Collado de la Vera',9392,9397,3,2),(2341,'Collado del Mirón',3588,3591,3,1),(2342,'Collado Hermoso',34214,34217,3,1),(2343,'Collado Mediano',25962,25965,3,1),(2344,'Collado Villalba',25966,25969,3,1),(2345,'Collazos de Boedo',30556,30561,3,2),(2346,'Collbató',6130,6133,3,1),(2347,'Colldejou',36622,36625,3,1),(2348,'Collsuspina',6134,6137,3,1),(2349,'Colmenar',27028,27031,3,1),(2350,'Colmenar de Montemayor',32634,32637,3,1),(2351,'Colmenar de Oreja',25970,25973,3,1),(2352,'Colmenar del Arroyo',25974,25977,3,1),(2353,'Colmenar Viejo',25978,25987,3,4),(2354,'Colmenarejo',25988,25993,3,2),(2355,'Colomera',15262,15265,3,1),(2356,'Colomers',14154,14157,3,1),(2357,'Colunga',2580,2603,3,11),(2358,'Colungo',18624,18627,3,1),(2359,'Comares',27032,27035,3,1),(2360,'Comillas',10654,10659,3,2),(2361,'Cómpeta',27036,27039,3,1),(2362,'Conca de Dalt',23666,23673,3,3),(2363,'Condado de Castilnovo',34218,34221,3,1),(2364,'Condado de Treviño',7668,7683,3,7),(2365,'Condemios de Abajo',16280,16283,3,1),(2366,'Condemios de Arriba',16284,16289,3,2),(2367,'Conesa',36626,36631,3,2),(2368,'Confrides',1182,1185,3,1),(2369,'Congosto',22106,22109,3,1),(2370,'Congosto de Valdavia',30562,30567,3,2),(2371,'Congostrina',16290,16293,3,1),(2372,'Conil de la Frontera',10252,10257,3,2),(2373,'Conquista',12480,12483,3,1),(2374,'Conquista de la Sierra',9398,9401,3,1),(2375,'Consell',5394,5397,3,1),(2376,'Constantí',36632,36635,3,1),(2377,'Constantina',35086,35089,3,1),(2378,'Constanzana',3592,3595,3,1),(2379,'Consuegra',38608,38611,3,1),(2380,'Contamina',43754,43757,3,1),(2381,'Contreras',7684,7687,3,1),(2382,'Coomonte',42308,42311,3,1),(2383,'Copernal',16294,16297,3,1),(2384,'Copons',6138,6141,3,1),(2385,'Corbalán',37656,37659,3,1),(2386,'Corbera',39756,39759,3,1),(2387,'Corbera d\'Ebre',36636,36639,3,1),(2388,'Corbera de Llobregat',6142,6145,3,1),(2389,'Corbillos de los Oteros',22110,22113,3,1),(2390,'Corbins',23674,23677,3,1),(2391,'Corçà',14158,14161,3,1),(2392,'Corcos',40762,40767,3,2),(2393,'Corcubión',20322,20327,3,2),(2394,'Córdoba',12484,12543,3,29),(2395,'Cordobilla de Lácara',4658,4661,3,1),(2396,'Cordovilla',32638,32641,3,1),(2397,'Cordovilla la Real',30568,30571,3,1),(2398,'Cordovín',21230,21233,3,1),(2399,'Corduente',16298,16309,3,5),(2400,'Corella',28378,28381,3,1),(2401,'Corera',21234,21237,3,1),(2402,'Coreses',42312,42315,3,1),(2403,'Coria',9402,9407,3,2),(2404,'Coria del Río',35090,35093,3,1),(2405,'Coripe',35094,35097,3,1),(2406,'Coristanco',20328,20333,3,2),(2407,'Cornago',21238,21243,3,2),(2408,'Cornellà de Llobregat',6146,6149,3,1),(2409,'Cornellà del Terri',14162,14165,3,1),(2410,'Cornudella de Montsant',36640,36645,3,2),(2411,'Corpa',25994,25997,3,1),(2412,'Corporales',21244,21247,3,1),(2413,'Corral de Almaguer',38612,38615,3,1),(2414,'Corral de Ayllón',34222,34225,3,1),(2415,'Corral de Calatrava',12064,12067,3,1),(2416,'Corral-Rubio',542,545,3,1),(2417,'Corrales de Duero',40768,40771,3,1),(2418,'Corrales del Vino',42316,42321,3,2),(2419,'Corte de Peleas',4662,4665,3,1),(2420,'Corteconcepción',17870,17873,3,1),(2421,'Cortegada',29648,29655,3,3),(2422,'Cortegana',17874,17881,3,3),(2423,'Cortelazor',17882,17885,3,1),(2424,'Cortes',28382,28385,3,1),(2425,'Cortes de Aragón',37660,37663,3,1),(2426,'Cortes de Arenoso',11452,11457,3,2),(2427,'Cortes de Baza',15266,15273,3,3),(2428,'Cortes de la Frontera',27040,27047,3,3),(2429,'Cortes de Pallás',39760,39763,3,1),(2430,'Cortes y Graena',15274,15277,3,1),(2431,'Corullón',22114,22123,3,4),(2432,'Coruña del Conde',7688,7691,3,1),(2433,'Corvera de Asturias',2604,2615,3,5),(2434,'Corvera de Toranzo',10660,10669,3,4),(2435,'Cosa',37664,37669,3,2),(2436,'Coscurita',35828,35835,3,3),(2437,'Coslada',25998,26007,3,4),(2438,'Cospeito',25002,25013,3,5),(2439,'Costitx',5398,5401,3,1),(2440,'Costur',11458,11461,3,1),(2441,'Cosuenda',43758,43761,3,1),(2442,'Cotanes del Monte',42322,42325,3,1),(2443,'Cotes',39764,39767,3,1),(2444,'Cotillas',546,549,3,1),(2445,'Covaleda',35836,35839,3,1),(2446,'Covarrubias',7692,7697,3,2),(2447,'Covelo',31496,31509,3,6),(2448,'Cox',1186,1189,3,1),(2449,'Cózar',12068,12071,3,1),(2450,'Cozuelos de Fuentidueña',34226,34229,3,1),(2451,'Crecente',31510,31527,3,8),(2452,'Creixell',36646,36651,3,2),(2453,'Crémenes',22124,22137,3,6),(2454,'Crespià',14166,14169,3,1),(2455,'Crespos',3596,3601,3,2),(2456,'Cretas',37670,37673,3,1),(2457,'Crevillent',1190,1197,3,3),(2458,'Cristina',4666,4669,3,1),(2459,'Cristóbal',32642,32645,3,1),(2460,'Crivillén',37674,37677,3,1),(2461,'Cruïlles, Monells i Sant Sadurní de l\'Heura',14170,14181,3,5),(2462,'Cuacos de Yuste',9408,9411,3,1),(2463,'Cuadros',22138,22147,3,4),(2464,'Cualedro',29656,29663,3,3),(2465,'Cuart de les Valls',39768,39771,3,1),(2466,'Cuart de Poblet',39772,39775,3,1),(2467,'Cuarte de Huerva',43762,43765,3,1),(2468,'Cuartell',39776,39779,3,1),(2469,'Cuatretonda',39780,39783,3,1),(2470,'Cubas de la Sagra',26008,26011,3,1),(2471,'Cubel',43766,43769,3,1),(2472,'Cubelles',6150,6153,3,1),(2473,'Cubells',23678,23681,3,1),(2474,'Cubilla',35840,35843,3,1),(2475,'Cubillas de Cerrato',30572,30575,3,1),(2476,'Cubillas de los Oteros',22148,22151,3,1),(2477,'Cubillas de Rueda',22152,22157,3,2),(2478,'Cubillas de Santa Marta',40772,40775,3,1),(2479,'Cubillo',34230,34233,3,1),(2480,'Cubillo del Campo',7698,7701,3,1),(2481,'Cubillos',42326,42329,3,1),(2482,'Cubillos del Sil',22158,22161,3,1),(2483,'Cubla',37678,37681,3,1),(2484,'Cubo de Benavente',42330,42333,3,1),(2485,'Cubo de Bureba',7702,7705,3,1),(2486,'Cubo de la Solana',35844,35849,3,2),(2487,'Cucalón',37682,37685,3,1),(2488,'Cudillero',2616,2629,3,6),(2489,'Cuelgamures',42334,42337,3,1),(2490,'Cuéllar',34234,34253,3,9),(2491,'Cuenca',13174,13191,3,8),(2492,'Cuenca de Campos',40776,40779,3,1),(2493,'Cuerva',38616,38619,3,1),(2494,'Cueva de Ágreda',35850,35853,3,1),(2495,'Cueva del Hierro',13192,13195,3,1),(2496,'Cuevas Bajas',27048,27051,3,1),(2497,'Cuevas de Almudén',37686,37689,3,1),(2498,'Cuevas de Provanco',34254,34257,3,1),(2499,'Cuevas de San Clemente',7706,7709,3,1),(2500,'Cuevas de San Marcos',27052,27055,3,1),(2501,'Cuevas del Almanzora',1888,1903,3,7),(2502,'Cuevas del Becerro',27056,27059,3,1),(2503,'Cuevas del Campo',15278,15281,3,1),(2504,'Cuevas del Valle',3602,3605,3,1),(2505,'Cuevas Labradas',37690,37693,3,1),(2506,'Culla',11462,11465,3,1),(2507,'Cúllar',15282,15291,3,4),(2508,'Cúllar Vega',15292,15295,3,1),(2509,'Cullera',39784,39791,3,3),(2510,'Culleredo',20334,20349,3,7),(2511,'Cumbres de Enmedio',17886,17889,3,1),(2512,'Cumbres de San Bartolomé',17890,17893,3,1),(2513,'Cumbres Mayores',17894,17897,3,1),(2514,'Cunit',36652,36655,3,1),(2515,'Cuntis',31528,31539,3,5),(2516,'Curiel de Duero',40780,40783,3,1),(2517,'Curtis',20350,20355,3,2),(2518,'Cútar',27060,27063,3,1),(2519,'Cuzcurrita de Río Tirón',21248,21251,3,1),(2520,'Daganzo de Arriba',26012,26015,3,1),(2521,'Daimiel',12072,12075,3,1),(2522,'Daimús',39792,39795,3,1),(2523,'Dalías',1904,1907,3,1),(2524,'Darnius',14182,14185,3,1),(2525,'Daroca',43770,43773,3,1),(2526,'Daroca de Rioja',21252,21255,3,1),(2527,'Darro',15296,15299,3,1),(2528,'Das',14186,14189,3,1),(2529,'Daya Nueva',1198,1201,3,1),(2530,'Daya Vieja',1202,1205,3,1),(2531,'Deba',17402,17407,3,2),(2532,'Degaña',2630,2635,3,2),(2533,'Dehesa de Montejo',30576,30583,3,3),(2534,'Dehesa de Romanos',30584,30587,3,1),(2535,'Dehesas de Guadix',15300,15303,3,1),(2536,'Dehesas Viejas',15304,15305,3,0),(2537,'Deià',5402,5405,3,1),(2538,'Deifontes',15306,15309,3,1),(2539,'Deleitosa',9412,9415,3,1),(2540,'Deltebre',36656,36659,3,1),(2541,'Dénia',1206,1217,3,5),(2542,'Derio',41708,41713,3,2),(2543,'Descargamaría',9416,9419,3,1),(2544,'Desojo',28386,28389,3,1),(2545,'Destriana',22162,22165,3,1),(2546,'Dévanos',35854,35857,3,1),(2547,'Deza',35858,35863,3,2),(2548,'Dicastillo',28390,28393,3,1),(2549,'Diego del Carpio',3606,3609,3,1),(2550,'Diezma',15310,15313,3,1),(2551,'Dílar',15314,15317,3,1),(2552,'Dima',41714,41717,3,1),(2553,'Dios le Guarde',32646,32649,3,1),(2554,'Dodro',20356,20363,3,3),(2555,'Dólar',15318,15321,3,1),(2556,'Dolores',1218,1221,3,1),(2557,'Domeño',39796,39799,3,1),(2558,'Domingo García',34258,34261,3,1),(2559,'Domingo Pérez',38620,38623,3,1),(2560,'Domingo Pérez de Granada',15322,15323,3,0),(2561,'Don Álvaro',4670,4673,3,1),(2562,'Don Benito',4674,4685,3,5),(2563,'Doña Mencía',12544,12547,3,1),(2564,'Donamaria',28394,28397,3,1),(2565,'Doneztebe/Santesteban',28398,28401,3,1),(2566,'Donhierro',34262,34265,3,1),(2567,'Doñinos de Ledesma',32650,32657,3,3),(2568,'Doñinos de Salamanca',32658,32665,3,3),(2569,'Donjimeno',3610,3613,3,1),(2570,'Donostia/San Sebastián',17408,17449,3,20),(2571,'Donvidas',3614,3617,3,1),(2572,'Dos Aguas',39800,39803,3,1),(2573,'Dos Hermanas',35098,35117,3,9),(2574,'Dos Torres',12548,12551,3,1),(2575,'Dosbarrios',38624,38627,3,1),(2576,'Dosrius',6154,6159,3,2),(2577,'Dozón',31540,31545,3,2),(2578,'Driebes',16310,16313,3,1),(2579,'Dúdar',15324,15327,3,1),(2580,'Dueñas',30588,30593,3,2),(2581,'Duesaigües',36660,36663,3,1),(2582,'Dumbría',20364,20371,3,3),(2583,'Durango',41718,41721,3,1),(2584,'Dúrcal',15328,15331,3,1),(2585,'Durón',16314,16319,3,2),(2586,'Duruelo',34266,34269,3,1),(2587,'Duruelo de la Sierra',35864,35867,3,1),(2588,'Ea',41722,41727,3,2),(2589,'Echarri/Etxarri',28402,28405,3,1),(2590,'Écija',35118,35127,3,4),(2591,'Eibar',17450,17453,3,1),(2592,'Eivissa',5236,5239,3,1),(2593,'Ejea de los Caballeros',43774,43783,3,4),(2594,'Éjeme',32666,32669,3,1),(2595,'Ejulve',37694,37697,3,1),(2596,'El Acebrón',13196,13199,3,1),(2597,'El Álamo',26016,26021,3,2),(2598,'El Almendro',17898,17901,3,1),(2599,'El Arco',32670,32673,3,1),(2600,'El Arenal',3618,3621,3,1),(2601,'El Astillero',10670,10677,3,3),(2602,'El Atazar',26022,26025,3,1),(2603,'El Ballestero',550,553,3,1),(2604,'El Barco de Ávila',3622,3625,3,1),(2605,'El Barraco',3626,3631,3,2),(2606,'El Berrueco',26026,26029,3,1),(2607,'El Boalo',26030,26037,3,3),(2608,'El Bodón',32674,32677,3,1),(2609,'El Bohodón',3632,3635,3,1),(2610,'El Bonillo',554,559,3,2),(2611,'El Borge',27064,27067,3,1),(2612,'El Bosque',10258,10261,3,1),(2613,'El Bruc',6160,6163,3,1),(2614,'El Brull',6164,6167,3,1),(2615,'El Burgo',27068,27071,3,1),(2616,'El Burgo de Ebro',43784,43787,3,1),(2617,'El Burgo Ranero',22166,22171,3,2),(2618,'El Buste',43788,43791,3,1),(2619,'El Busto',28406,28409,3,1),(2620,'El Cabaco',32678,32681,3,1),(2621,'el Campello',1222,1225,3,1),(2622,'El Campillo',17902,17905,3,1),(2623,'El Campillo',40784,40785,3,0),(2624,'El Campillo de la Jara',38628,38631,3,1),(2625,'El Campo de Peñaranda',32682,32685,3,1),(2626,'El Cañavate',13200,13203,3,1),(2627,'El Cardoso de la Sierra',16320,16323,3,1),(2628,'El Carpio',12552,12557,3,2),(2629,'El Carpio de Tajo',38632,38635,3,1),(2630,'El Carrascalejo',4686,4689,3,1),(2631,'El Casar',16324,16329,3,2),(2632,'El Casar de Escalona',38636,38639,3,1),(2633,'el Castell de Guadalest',1226,1229,3,1),(2634,'El Castellar',37698,37701,3,1),(2635,'El Castillo de las Guardas',35128,35137,3,4),(2636,'El Catllar',36664,36669,3,2),(2637,'El Cerro',32686,32693,3,3),(2638,'El Cerro de Andévalo',17906,17913,3,3),(2639,'El Cogul',23682,23685,3,1),(2640,'El Coronil',35138,35141,3,1),(2641,'El Cubillo de Uceda',16330,16333,3,1),(2642,'El Cubo de Don Sancho',32694,32699,3,2),(2643,'El Cubo de Tierra del Vino',42338,42341,3,1),(2644,'El Cuervo',37702,37705,3,1),(2645,'El Cuervo de Sevilla',35142,35145,3,1),(2646,'El Ejido',1908,1921,3,6),(2647,'El Escorial',26038,26049,3,5),(2648,'El Espinar',34270,34279,3,4),(2649,'El Far d\'Empordà',14190,14193,3,1),(2650,'el Fondó de les Neus/Hondón de las Nieves',1230,1235,3,2),(2651,'El Frago',43792,43795,3,1),(2652,'El Franco',2636,2647,3,5),(2653,'El Frasno',43796,43805,3,4),(2654,'El Fresno',3636,3639,3,1),(2655,'El Garrobo',35146,35149,3,1),(2656,'El Gastor',10262,10265,3,1),(2657,'El Gordo',9420,9423,3,1),(2658,'El Grado',18628,18633,3,2),(2659,'El Granado',17914,17917,3,1),(2660,'El Guijo',12558,12561,3,1),(2661,'El Herrumblar',13204,13207,3,1),(2662,'El Hito',13208,13211,3,1),(2663,'El Hornillo',3640,3643,3,1),(2664,'El Hoyo de Pinares',3644,3647,3,1),(2665,'El Lloar',36670,36673,3,1),(2666,'El Losar del Barco',3648,3651,3,1),(2667,'El Maderal',42342,42345,3,1),(2668,'El Madroño',35150,35155,3,2),(2669,'El Maíllo',32700,32703,3,1),(2670,'El Manzano',32704,32707,3,1),(2671,'El Masnou',6168,6171,3,1),(2672,'El Masroig',36674,36677,3,1),(2673,'El Milà',36678,36681,3,1),(2674,'El Milano',32708,32711,3,1),(2675,'El Mirón',3652,3657,3,2),(2676,'El Molar',26050,26053,3,1),(2677,'El Molar',36682,36683,3,0),(2678,'El Montmell',36684,36695,3,5),(2679,'El Morell',36696,36699,3,1),(2680,'El Olivar',16334,16337,3,1),(2681,'El Ordial',16338,16343,3,2),(2682,'El Oso',3658,3661,3,1),(2683,'El Palau d\'Anglesola',23686,23689,3,1),(2684,'el Palomar',39804,39807,3,1),(2685,'El Papiol',6172,6175,3,1),(2686,'El Parral',3662,3665,3,1),(2687,'El Payo',32712,32715,3,1),(2688,'El Pedernoso',13212,13215,3,1),(2689,'El Pedregal',16344,16347,3,1),(2690,'El Pedroso',35156,35159,3,1),(2691,'El Pedroso de la Armuña',32716,32719,3,1),(2692,'El Pego',42346,42349,3,1),(2693,'El Peral',13216,13219,3,1),(2694,'El Perdigón',42350,42357,3,3),(2695,'El Perelló',36700,36703,3,1),(2696,'El Picazo',13220,13223,3,1),(2697,'El Pinar',15332,15337,3,2),(2698,'El Pinell de Brai',36704,36707,3,1),(2699,'El Piñero',42358,42361,3,1),(2700,'El Pino de Tormes',32720,32723,3,1),(2701,'el Pinós/Pinoso',1236,1245,3,4),(2702,'El Pla de Santa Maria',36708,36711,3,1),(2703,'El Pla del Penedès',6176,6179,3,1),(2704,'El Poal',23690,23693,3,1),(2705,'El Pobo',37706,37709,3,1),(2706,'El Pobo de Dueñas',16348,16351,3,1),(2707,'El Pont d\'Armentera',36712,36715,3,1),(2708,'El Pont de Bar',23694,23701,3,3),(2709,'El Pont de Suert',23702,23719,3,8),(2710,'El Pont de Vilomara i Rocafort',6180,6183,3,1),(2711,'El Port de la Selva',14194,14197,3,1),(2712,'El Pozuelo',13224,13227,3,1),(2713,'El Prat de Llobregat',6184,6187,3,1),(2714,'El Provencio',13228,13231,3,1),(2715,'El Puente del Arzobispo',38640,38643,3,1),(2716,'El Puerto de Santa María',10266,10269,3,1),(2717,'El Pueyo de Araguás',18634,18637,3,1),(2718,'El Puig',39808,39813,3,2),(2719,'el Ràfol d\'Almúnia',1246,1249,3,1),(2720,'El Rasillo de Cameros',21256,21259,3,1),(2721,'El Real de Gandia',39814,39817,3,1),(2722,'El Real de la Jara',35160,35163,3,1),(2723,'El Real de San Vicente',38644,38649,3,2),(2724,'El Recuenco',16352,16355,3,1),(2725,'El Redal',21260,21263,3,1),(2726,'El Robledo',12076,12079,3,1),(2727,'El Romeral',38650,38653,3,1),(2728,'El Ronquillo',35164,35167,3,1),(2729,'El Rourell',36716,36719,3,1),(2730,'El Royo',35868,35873,3,2),(2731,'El Rubio',35168,35171,3,1),(2732,'El Sahugo',32724,32727,3,1),(2733,'El Saucejo',35172,35177,3,2),(2734,'El Soleràs',23720,23723,3,1),(2735,'El Sotillo',16356,16359,3,1),(2736,'El Tejado',32728,32731,3,1),(2737,'El Tiemblo',3666,3675,3,4),(2738,'El Toboso',38654,38657,3,1),(2739,'El Tornadizo',32732,32735,3,1),(2740,'El Torno',9424,9427,3,1),(2741,'El Toro',11466,11469,3,1),(2742,'El Valle',15338,15341,3,1),(2743,'El Valle de Altomira',13232,13241,3,4),(2744,'El Vallecillo',37710,37713,3,1),(2745,'El Vellón',26054,26057,3,1),(2746,'El Vendrell',36720,36725,3,2),(2747,'el Verger',1250,1253,3,1),(2748,'El Villar de Arnedo',21264,21267,3,1),(2749,'El Vilosell',23724,23729,3,2),(2750,'El Viso',12562,12565,3,1),(2751,'El Viso de San Juan',38658,38661,3,1),(2752,'El Viso del Alcor',35178,35181,3,1),(2753,'Elantxobe',41728,41731,3,1),(2754,'Elburgo/Burgelu',122,127,3,2),(2755,'Elche de la Sierra',560,569,3,4),(2756,'Elche/Elx',1254,1295,3,20),(2757,'Elciego',128,131,3,1),(2758,'Elda',1296,1299,3,1),(2759,'Elduain',17454,17457,3,1),(2760,'Elgeta',17458,17461,3,1),(2761,'Elgoibar',17462,17467,3,2),(2762,'Elgorriaga',28410,28413,3,1),(2763,'Eljas',9428,9431,3,1),(2764,'Elorrio',41732,41735,3,1),(2765,'Els Alamús',23730,23733,3,1),(2766,'Els Garidells',36726,36729,3,1),(2767,'Els Guiamets',36730,36733,3,1),(2768,'Els Hostalets de Pierola',6188,6191,3,1),(2769,'Els Omellons',23734,23737,3,1),(2770,'Els Omells de na Gaia',23738,23741,3,1),(2771,'Els Pallaresos',36734,36737,3,1),(2772,'Els Plans de Sió',23742,23747,3,2),(2773,'els Poblets',1300,1303,3,1),(2774,'Els Prats de Rei',6192,6195,3,1),(2775,'Els Torms',23748,23751,3,1),(2776,'Elvillar/Bilar',132,135,3,1),(2777,'Embid',16360,16363,3,1),(2778,'Embid de Ariza',43806,43809,3,1),(2779,'Emperador',39818,39821,3,1),(2780,'Encina de San Silvestre',32736,32739,3,1),(2781,'Encinacorba',43810,43813,3,1),(2782,'Encinas',34280,34283,3,1),(2783,'Encinas de Abajo',32740,32745,3,2),(2784,'Encinas de Arriba',32746,32749,3,1),(2785,'Encinas de Esgueva',40786,40789,3,1),(2786,'Encinas Reales',12566,12569,3,1),(2787,'Encinasola',17918,17921,3,1),(2788,'Encinasola de los Comendadores',32750,32753,3,1),(2789,'Encinedo',22172,22183,3,5),(2790,'Encinillas',34284,34287,3,1),(2791,'Encío',7710,7715,3,2),(2792,'Enciso',21268,21271,3,1),(2793,'Endrinal',32754,32759,3,2),(2794,'Enériz/Eneritz',28414,28417,3,1),(2795,'Enguera',39822,39827,3,2),(2796,'Enguídanos',13242,13245,3,1),(2797,'Enix',1922,1925,3,1),(2798,'Énova',39828,39831,3,1),(2799,'Entrala',42362,42365,3,1),(2800,'Entrambasaguas',10678,10685,3,3),(2801,'Entrena',21272,21275,3,1),(2802,'Entrimo',29664,29673,3,4),(2803,'Entrín Bajo',4690,4693,3,1),(2804,'Épila',43814,43819,3,2),(2805,'Erandio',41736,41739,3,1),(2806,'Eratsun',28418,28421,3,1),(2807,'Ereño',41740,41743,3,1),(2808,'Ergoiena',28422,28425,3,1),(2809,'Erla',43820,43823,3,1),(2810,'Ermua',41744,41747,3,1),(2811,'Errenteria',17468,17471,3,1),(2812,'Errezil',17472,17475,3,1),(2813,'Erriberagoitia/Ribera Alta',136,149,3,6),(2814,'Errigoiti',41748,41751,3,1),(2815,'Erro',28426,28441,3,7),(2816,'Erustes',38662,38665,3,1),(2817,'Es Bòrdes',23752,23755,3,1),(2818,'es Castell',5696,5699,3,1),(2819,'Es Mercadal',5700,5705,3,2),(2820,'Es Migjorn Gran',5706,5709,3,1),(2821,'Escacena del Campo',17922,17925,3,1),(2822,'Escalante',10686,10691,3,2),(2823,'Escalona',38666,38669,3,1),(2824,'Escalona del Prado',34288,34291,3,1),(2825,'Escalonilla',38670,38673,3,1),(2826,'Escamilla',16364,16367,3,1),(2827,'Escañuela',19578,19581,3,1),(2828,'Escarabajosa de Cabezas',34292,34295,3,1),(2829,'Escariche',16368,16371,3,1),(2830,'Escatrón',43824,43829,3,2),(2831,'Escobar de Campos',22184,22187,3,1),(2832,'Escobar de Polendos',34296,34301,3,2),(2833,'Escobosa de Almazán',35874,35877,3,1),(2834,'Escopete',16372,16375,3,1),(2835,'Escorca',5406,5409,3,1),(2836,'Escorihuela',37714,37717,3,1),(2837,'Escucha',37718,37723,3,2),(2838,'Escurial',9432,9435,3,1),(2839,'Escurial de la Sierra',32760,32763,3,1),(2840,'Escúzar',15342,15345,3,1),(2841,'Esgos',29674,29679,3,2),(2842,'Esguevillas de Esgueva',40790,40793,3,1),(2843,'Eskoriatza',17476,17481,3,2),(2844,'Eslava',28442,28445,3,1),(2845,'Eslida',11470,11473,3,1),(2846,'Espadaña',32764,32767,3,1),(2847,'Espadañedo',42366,42377,3,5),(2848,'Espadilla',11474,11477,3,1),(2849,'Esparragalejo',4694,4697,3,1),(2850,'Esparragosa de la Serena',4698,4701,3,1),(2851,'Esparragosa de Lares',4702,4705,3,1),(2852,'Esparreguera',6196,6199,3,1),(2853,'Espartinas',35182,35185,3,1),(2854,'Esparza de Salazar/Espartza Zaraitzu',28446,28449,3,1),(2855,'Espeja',32768,32771,3,1),(2856,'Espeja de San Marcelino',35878,35883,3,2),(2857,'Espejo',12570,12573,3,1),(2858,'Espejón',35884,35887,3,1),(2859,'Espeluy',19582,19587,3,2),(2860,'Espera',10270,10273,3,1),(2861,'Espiel',12574,12581,3,3),(2862,'Espinelves',14198,14201,3,1),(2863,'Espino de la Orbada',32772,32775,3,1),(2864,'Espinosa de Cerrato',30594,30597,3,1),(2865,'Espinosa de Cervera',7716,7719,3,1),(2866,'Espinosa de Henares',16376,16381,3,2),(2867,'Espinosa de los Caballeros',3676,3679,3,1),(2868,'Espinosa de los Monteros',7720,7729,3,4),(2869,'Espinosa de Villagonzalo',30598,30603,3,2),(2870,'Espinosa del Camino',7730,7733,3,1),(2871,'Espinoso del Rey',38674,38677,3,1),(2872,'Espirdo',34302,34305,3,1),(2873,'Esplegares',16382,16385,3,1),(2874,'Esplugues de Llobregat',6200,6203,3,1),(2875,'Esplús',18638,18641,3,1),(2876,'Espolla',14202,14205,3,1),(2877,'Esponellà',14206,14209,3,1),(2878,'Esporles',5410,5413,3,1),(2879,'Espot',23756,23759,3,1),(2880,'Espronceda',28450,28453,3,1),(2881,'Esquivias',38678,38681,3,1),(2882,'Establés',16386,16389,3,1),(2883,'Estada',18642,18645,3,1),(2884,'Estadilla',18646,18649,3,1),(2885,'Estamariu',23760,23763,3,1),(2886,'Estaràs',23764,23771,3,3),(2887,'Estella-Lizarra',28454,28457,3,1),(2888,'Estellencs',5414,5417,3,1),(2889,'Estepa',35186,35189,3,1),(2890,'Estepa de San Juan',35888,35891,3,1),(2891,'Estépar',7734,7739,3,2),(2892,'Estepona',27072,27083,3,5),(2893,'Estercuel',37724,37727,3,1),(2894,'Esteribar',28458,28469,3,5),(2895,'Esterri d\'Àneu',23772,23775,3,1),(2896,'Esterri de Cardós',23776,23779,3,1),(2897,'Estivella',39832,39835,3,1),(2898,'Estollo',21276,21279,3,1),(2899,'Estopiñán del Castillo',18650,18655,3,2),(2900,'Estremera',26058,26061,3,1),(2901,'Estriégana',16390,16393,3,1),(2902,'Estubeny',39836,39839,3,1),(2903,'Etayo',28470,28473,3,1),(2904,'Etxalar',28474,28477,3,1),(2905,'Etxarri Aranatz',28478,28481,3,1),(2906,'Etxauri',28482,28485,3,1),(2907,'Etxebarri',41752,41755,3,1),(2908,'Etxebarria',41756,41759,3,1),(2909,'Eulate',28486,28489,3,1),(2910,'Ezcabarte',28490,28495,3,2),(2911,'Ezcaray',21280,21285,3,2),(2912,'Ezcároz/Ezkaroze',28496,28499,3,1),(2913,'Ezkio-Itsaso',17482,17487,3,2),(2914,'Ezkurra',28500,28505,3,2),(2915,'Ezprogui',28506,28511,3,2),(2916,'Fabara',43830,43833,3,1),(2917,'Fabero',22188,22197,3,4),(2918,'Facheca',1304,1307,3,1),(2919,'Fago',18656,18659,3,1),(2920,'Falces',28512,28515,3,1),(2921,'Falset',36738,36741,3,1),(2922,'Famorca',1308,1311,3,1),(2923,'Fanlo',18660,18663,3,1),(2924,'Fanzara',11478,11481,3,1),(2925,'Faraján',27084,27087,3,1),(2926,'Faramontanos de Tábara',42378,42381,3,1),(2927,'Fariza',42382,42387,3,2),(2928,'Farlete',43834,43837,3,1),(2929,'Farrera',23780,23783,3,1),(2930,'Faura',39840,39843,3,1),(2931,'Favara',39844,39847,3,1),(2932,'Fayón',43838,43841,3,1),(2933,'Felanitx',5418,5429,3,5),(2934,'Felix',1926,1929,3,1),(2935,'Fene',20372,20383,3,5),(2936,'Férez',570,573,3,1),(2937,'Feria',4706,4709,3,1),(2938,'Fermoselle',42388,42391,3,1),(2939,'Fernán Caballero',12080,12083,3,1),(2940,'Fernán-Núñez',12582,12585,3,1),(2941,'Ferreira',15346,15349,3,1),(2942,'Ferreras de Abajo',42392,42397,3,2),(2943,'Ferreras de Arriba',42398,42403,3,2),(2944,'Ferreries',5710,5713,3,1),(2945,'Ferreruela',42404,42409,3,2),(2946,'Ferreruela de Huerva',37728,37731,3,1),(2947,'Ferrol',20384,20411,3,13),(2948,'Figaró-Montmany',6204,6207,3,1),(2949,'Fígols',6208,6211,3,1),(2950,'Fígols i Alinyà',23784,23787,3,1),(2951,'Figueres',14210,14215,3,2),(2952,'Figuerola del Camp',36742,36745,3,1),(2953,'Figueroles',11482,11485,3,1),(2954,'Figueruela de Arriba',42410,42415,3,2),(2955,'Figueruelas',43842,43845,3,1),(2956,'Fiñana',1930,1933,3,1),(2957,'Fines',1934,1937,3,1),(2958,'Finestrat',1312,1315,3,1),(2959,'Fiscal',18664,18671,3,3),(2960,'Fisterra',20412,20419,3,3),(2961,'Fitero',28516,28519,3,1),(2962,'Flaçà',14216,14219,3,1),(2963,'Flix',36746,36749,3,1),(2964,'Flores de Ávila',3680,3683,3,1),(2965,'Florida de Liébana',32776,32779,3,1),(2966,'Fogars de la Selva',6212,6215,3,1),(2967,'Fogars de Montclús',6216,6221,3,2),(2968,'Foios',39848,39851,3,1),(2969,'Foixà',14220,14227,3,3),(2970,'Folgoso de la Ribera',22198,22207,3,4),(2971,'Folgoso do Courel',25014,25027,3,6),(2972,'Folgueroles',6222,6225,3,1),(2973,'Fombellida',40794,40797,3,1),(2974,'Fombuena',43846,43849,3,1),(2975,'Fompedraza',40798,40801,3,1),(2976,'Foncea',21286,21289,3,1),(2977,'Fondarella',23788,23791,3,1),(2978,'Fondón',1938,1943,3,2),(2979,'Fonelas',15350,15353,3,1),(2980,'Fonfría',37732,37743,3,5),(2981,'Fonfría',42416,42417,3,0),(2982,'Fonollosa',6226,6229,3,1),(2983,'Font-rubí',6230,6235,3,2),(2984,'Fontanals de Cerdanya',14228,14231,3,1),(2985,'Fontanar',16394,16397,3,1),(2986,'Fontanarejo',12084,12087,3,1),(2987,'Fontanares',39852,39855,3,1),(2988,'Fontanilles',14232,14235,3,1),(2989,'Fontcoberta',14236,14239,3,1),(2990,'Fontellas',28520,28523,3,1),(2991,'Fontihoyuelo',40802,40805,3,1),(2992,'Fontioso',7740,7743,3,1),(2993,'Fontiveros',3684,3687,3,1),(2994,'Fonz',18672,18677,3,2),(2995,'Fonzaleche',21290,21295,3,2),(2996,'Foradada',23792,23795,3,1),(2997,'Foradada del Toscar',18678,18689,3,5),(2998,'Forallac',14240,14247,3,3),(2999,'Forcall',11486,11489,3,1),(3000,'Forcarei',31546,31565,3,9),(3001,'Forès',36750,36753,3,1),(3002,'Forfoleda',32780,32783,3,1),(3003,'Formentera',5240,5249,3,4),(3004,'Formentera del Segura',1316,1321,3,2),(3005,'Formiche Alto',37744,37749,3,2),(3006,'Fornalutx',5430,5433,3,1),(3007,'Fornells de la Selva',14248,14251,3,1),(3008,'Fornelos de Montes',31566,31583,3,8),(3009,'Fórnoles',37750,37753,3,1),(3010,'Fortaleny',39856,39859,3,1),(3011,'Fortanete',37754,37757,3,1),(3012,'Fortià',14252,14255,3,1),(3013,'Fortuna',27616,27625,3,4),(3014,'Forua',41760,41763,3,1),(3015,'Foz',25028,25045,3,8),(3016,'Foz-Calanda',37758,37761,3,1),(3017,'Frades',20420,20425,3,2),(3018,'Frades de la Sierra',32784,32787,3,1),(3019,'Fraga',18690,18697,3,3),(3020,'Frailes',19588,19597,3,4),(3021,'Frandovínez',7744,7747,3,1),(3022,'Frechilla',30604,30607,3,1),(3023,'Frechilla de Almazán',35892,35895,3,1),(3024,'Fregenal de la Sierra',4710,4713,3,1),(3025,'Freginals',36754,36757,3,1),(3026,'Freila',15354,15357,3,1),(3027,'Fréscano',43850,43853,3,1),(3028,'Fresneda de Altarejos',13246,13251,3,2),(3029,'Fresneda de Cuéllar',34306,34309,3,1),(3030,'Fresneda de la Sierra',13252,13255,3,1),(3031,'Fresneda de la Sierra Tirón',7748,7751,3,1),(3032,'Fresnedilla',3688,3691,3,1),(3033,'Fresnedillas de la Oliva',26062,26065,3,1),(3034,'Fresnedoso',32788,32791,3,1),(3035,'Fresnedoso de Ibor',9436,9439,3,1),(3036,'Fresneña',7752,7755,3,1),(3037,'Fresnillo de las Dueñas',7756,7759,3,1),(3038,'Fresno Alhándiga',32792,32795,3,1),(3039,'Fresno de Cantespino',34310,34319,3,4),(3040,'Fresno de Caracena',35896,35899,3,1),(3041,'Fresno de la Fuente',34320,34323,3,1),(3042,'Fresno de la Polvorosa',42418,42421,3,1),(3043,'Fresno de la Ribera',42422,42425,3,1),(3044,'Fresno de la Vega',22208,22211,3,1),(3045,'Fresno de Río Tirón',7760,7763,3,1),(3046,'Fresno de Rodilla',7764,7767,3,1),(3047,'Fresno de Sayago',42426,42431,3,2),(3048,'Fresno de Torote',26066,26069,3,1),(3049,'Fresno del Río',30608,30611,3,1),(3050,'Fresno el Viejo',40806,40809,3,1),(3051,'Frías',7768,7771,3,1),(3052,'Frías de Albarracín',37762,37765,3,1),(3053,'Friera de Valverde',42432,42435,3,1),(3054,'Frigiliana',27088,27093,3,2),(3055,'Friol',25046,25063,3,8),(3056,'Frómista',30612,30615,3,1),(3057,'Fruiz',41764,41767,3,1),(3058,'Frumales',34324,34327,3,1),(3059,'Fuembellida',16398,16401,3,1),(3060,'Fuencaliente',12088,12091,3,1),(3061,'Fuencemillán',16402,16405,3,1),(3062,'Fuendejalón',43854,43857,3,1),(3063,'Fuendetodos',43858,43861,3,1),(3064,'Fuenferrada',37766,37769,3,1),(3065,'Fuengirola',27094,27097,3,1),(3066,'Fuenlabrada',26070,26085,3,7),(3067,'Fuenlabrada de los Montes',4714,4717,3,1),(3068,'Fuenllana',12092,12095,3,1),(3069,'Fuenmayor',21296,21299,3,1),(3070,'Fuensaldaña',40810,40813,3,1),(3071,'Fuensalida',38682,38687,3,2),(3072,'Fuensanta',574,577,3,1),(3073,'Fuensanta de Martos',19598,19603,3,2),(3074,'Fuente Álamo de Murcia',27626,27639,3,6),(3075,'Fuente de Cantos',4718,4721,3,1),(3076,'Fuente de Pedro Naharro',13256,13259,3,1),(3077,'Fuente de Piedra',27098,27101,3,1),(3078,'Fuente de Santa Cruz',34328,34331,3,1),(3079,'Fuente del Arco',4722,4725,3,1),(3080,'Fuente del Maestre',4726,4729,3,1),(3081,'Fuente el Fresno',12096,12101,3,2),(3082,'Fuente el Olmo de Fuentidueña',34332,34335,3,1),(3083,'Fuente el Olmo de Íscar',34336,34339,3,1),(3084,'Fuente el Saúz',3692,3695,3,1),(3085,'Fuente el Saz de Jarama',26086,26089,3,1),(3086,'Fuente el Sol',40814,40817,3,1),(3087,'Fuente Encalada',42436,42439,3,1),(3088,'Fuente Encarroz',39860,39863,3,1),(3089,'Fuente la Higuera',39864,39869,3,2),(3090,'Fuente la Lancha',12586,12589,3,1),(3091,'Fuente la Reina',11490,11493,3,1),(3092,'Fuente Obejuna',12590,12605,3,7),(3093,'Fuente Palmera',12606,12621,3,7),(3094,'Fuente Vaqueros',15358,15361,3,1),(3095,'Fuente-Álamo',578,581,3,1),(3096,'Fuente-Olmedo',40818,40821,3,1),(3097,'Fuente-Tójar',12622,12625,3,1),(3098,'Fuentealbilla',582,589,3,3),(3099,'Fuentearmegil',35900,35905,3,2),(3100,'Fuentebureba',7772,7775,3,1),(3101,'Fuentecambrón',35906,35909,3,1),(3102,'Fuentecantos',35910,35913,3,1),(3103,'Fuentecén',7776,7779,3,1),(3104,'Fuenteguinaldo',32796,32799,3,1),(3105,'Fuenteheridos',17926,17929,3,1),(3106,'Fuentelahiguera de Albatages',16406,16409,3,1),(3107,'Fuentelapeña',42440,42443,3,1),(3108,'Fuentelcésped',7780,7783,3,1),(3109,'Fuentelencina',16410,16413,3,1),(3110,'Fuentelespino de Haro',13260,13263,3,1),(3111,'Fuentelespino de Moya',13264,13267,3,1),(3112,'Fuenteliante',32800,32803,3,1),(3113,'Fuentelisendo',7784,7787,3,1),(3114,'Fuentelmonge',35914,35917,3,1),(3115,'Fuentelsaz',16414,16417,3,1),(3116,'Fuentelsaz de Soria',35918,35923,3,2),(3117,'Fuentelviejo',16418,16421,3,1),(3118,'Fuentemolinos',7788,7791,3,1),(3119,'Fuentenava de Jábaga',13268,13275,3,3),(3120,'Fuentenebro',7792,7795,3,1),(3121,'Fuentenovilla',16422,16427,3,2),(3122,'Fuentepelayo',34340,34343,3,1),(3123,'Fuentepiñel',34344,34347,3,1),(3124,'Fuentepinilla',35924,35929,3,2),(3125,'Fuenterrebollo',34348,34351,3,1),(3126,'Fuenterroble de Salvatierra',32804,32807,3,1),(3127,'Fuenterrobles',39870,39873,3,1),(3128,'Fuentes',13276,13279,3,1),(3129,'Fuentes Calientes',37770,37773,3,1),(3130,'Fuentes Claras',37774,37777,3,1),(3131,'Fuentes de Andalucía',35190,35195,3,2),(3132,'Fuentes de Año',3696,3699,3,1),(3133,'Fuentes de Ayódar',11494,11497,3,1),(3134,'Fuentes de Béjar',32808,32811,3,1),(3135,'Fuentes de Carbajal',22212,22215,3,1),(3136,'Fuentes de Ebro',43862,43867,3,2),(3137,'Fuentes de Jiloca',43868,43871,3,1),(3138,'Fuentes de León',4730,4733,3,1),(3139,'Fuentes de Magaña',35930,35933,3,1),(3140,'Fuentes de Nava',30616,30619,3,1),(3141,'Fuentes de Oñoro',32812,32817,3,2),(3142,'Fuentes de Ropel',42444,42447,3,1),(3143,'Fuentes de Rubielos',37778,37781,3,1),(3144,'Fuentes de Valdepero',30620,30623,3,1),(3145,'Fuentesaúco',42448,42451,3,1),(3146,'Fuentesaúco de Fuentidueña',34352,34355,3,1),(3147,'Fuentesecas',42452,42455,3,1),(3148,'Fuentesoto',34356,34359,3,1),(3149,'Fuentespalda',37782,37785,3,1),(3150,'Fuentespina',7796,7799,3,1),(3151,'Fuentespreadas',42456,42459,3,1),(3152,'Fuentestrún',35934,35937,3,1),(3153,'Fuentidueña',34360,34363,3,1),(3154,'Fuentidueña de Tajo',26090,26093,3,1),(3155,'Fuerte del Rey',19604,19607,3,1),(3156,'Fuertescusa',13280,13283,3,1),(3157,'Fulleda',23796,23799,3,1),(3158,'Funes',28524,28527,3,1),(3159,'Fustiñana',28528,28531,3,1),(3160,'Gabaldón',13284,13287,3,1),(3161,'Gabiria',17488,17491,3,1),(3162,'Gádor',1944,1947,3,1),(3163,'Gaià',6236,6243,3,3),(3164,'Gaianes',1322,1325,3,1),(3165,'Gaibiel',11498,11501,3,1),(3166,'Gaintza',17492,17495,3,1),(3167,'Gajanejos',16428,16431,3,1),(3168,'Gajates',32818,32825,3,3),(3169,'Galapagar',26094,26107,3,6),(3170,'Galápagos',16432,16435,3,1),(3171,'Galar',28532,28535,3,1),(3172,'Galaroza',17930,17933,3,1),(3173,'Galbarros',7800,7803,3,1),(3174,'Galbárruli',21300,21303,3,1),(3175,'Galdakao',41768,41771,3,1),(3176,'Galdames',41772,41775,3,1),(3177,'Galende',42460,42473,3,6),(3178,'Galera',15362,15367,3,2),(3179,'Galilea',21304,21307,3,1),(3180,'Galindo y Perahuy',32826,32831,3,2),(3181,'Galinduste',32832,32837,3,2),(3182,'Galisancho',32838,32841,3,1),(3183,'Galisteo',9440,9445,3,2),(3184,'Gallegos',34364,34367,3,1),(3185,'Gallegos de Altamiros',3700,3703,3,1),(3186,'Gallegos de Argañán',32842,32845,3,1),(3187,'Gallegos de Hornija',40822,40825,3,1),(3188,'Gallegos de Sobrinos',3704,3707,3,1),(3189,'Gallegos de Solmirón',32846,32849,3,1),(3190,'Gallegos del Pan',42474,42477,3,1),(3191,'Gallegos del Río',42478,42485,3,3),(3192,'Gallifa',6244,6247,3,1),(3193,'Gallinero de Cameros',21308,21311,3,1),(3194,'Gallipienzo/Galipentzu',28536,28539,3,1),(3195,'Gallocanta',43872,43875,3,1),(3196,'Gallués/Galoze',28540,28543,3,1),(3197,'Gallur',43876,43879,3,1),(3198,'Galve',37786,37789,3,1),(3199,'Galve de Sorbe',16436,16439,3,1),(3200,'Gálvez',38688,38691,3,1),(3201,'Gamiz-Fika',41776,41779,3,1),(3202,'Gamones',42486,42489,3,1),(3203,'Gandesa',36758,36761,3,1),(3204,'Gandia',39874,39887,3,6),(3205,'Garaballa',13288,13291,3,1),(3206,'Garai',41780,41783,3,1),(3207,'Garaioa',28544,28547,3,1),(3208,'Garbayuela',4734,4737,3,1),(3209,'Garcia',36762,36765,3,1),(3210,'Garciaz',9446,9449,3,1),(3211,'Garcibuey',32850,32853,3,1),(3212,'Garcihernández',32854,32859,3,2),(3213,'Garcillán',34368,34371,3,1),(3214,'Garciotum',38692,38695,3,1),(3215,'Garcirrey',32860,32865,3,2),(3216,'Garde',28548,28551,3,1),(3217,'Gargallo',37790,37793,3,1),(3218,'Garganta de los Montes',26108,26113,3,2),(3219,'Garganta del Villar',3708,3711,3,1),(3220,'Garganta la Olla',9450,9453,3,1),(3221,'Gargantilla',9454,9457,3,1),(3222,'Gargantilla del Lozoya y Pinilla de Buitrago',26114,26117,3,1),(3223,'Gargüera',9458,9461,3,1),(3224,'Garínoain',28552,28555,3,1),(3225,'Garlitos',4738,4741,3,1),(3226,'Garrafe de Torío',22216,22223,3,3),(3227,'Garralda',28556,28559,3,1),(3228,'Garray',35938,35943,3,2),(3229,'Garrigàs',14256,14259,3,1),(3230,'Garrigoles',14260,14263,3,1),(3231,'Garriguella',14264,14267,3,1),(3232,'Garrovillas de Alconétar',9462,9465,3,1),(3233,'Garrucha',1948,1951,3,1),(3234,'Garvín',9466,9469,3,1),(3235,'Gascones',26118,26121,3,1),(3236,'Gascueña',13292,13295,3,1),(3237,'Gascueña de Bornova',16440,16443,3,1),(3238,'Gata',9470,9475,3,2),(3239,'Gata de Gorgos',1326,1329,3,1),(3240,'Gatika',41784,41787,3,1),(3241,'Gatón de Campos',40826,40829,3,1),(3242,'Gátova',39888,39891,3,1),(3243,'Gaucín',27102,27105,3,1),(3244,'Gautegiz Arteaga',41788,41791,3,1),(3245,'Gavà',6248,6251,3,1),(3246,'Gavarda',39892,39895,3,1),(3247,'Gavet de la Conca',23800,23807,3,3),(3248,'Gavilanes',3712,3717,3,2),(3249,'Gaztelu',17496,17499,3,1),(3250,'Gea de Albarracín',37794,37797,3,1),(3251,'Gejuelo del Barro',32866,32869,3,1),(3252,'Geldo',11502,11507,3,2),(3253,'Gelida',6252,6255,3,1),(3254,'Gelsa',43880,43883,3,1),(3255,'Gelves',35196,35201,3,2),(3256,'Gema',42490,42493,3,1),(3257,'Gemuño',3718,3721,3,1),(3258,'Genalguacil',27106,27109,3,1),(3259,'Génave',19608,19611,3,1),(3260,'Genevilla',28560,28563,3,1),(3261,'Genovés',39896,39899,3,1),(3262,'Ger',14268,14271,3,1),(3263,'Gerena',35202,35205,3,1),(3264,'Gérgal',1952,1961,3,4),(3265,'Geria',40830,40833,3,1),(3266,'Gerindote',38696,38699,3,1),(3267,'Gernika-Lumo',41792,41795,3,1),(3268,'Gestalgar',39900,39903,3,1),(3269,'Getafe',26122,26139,3,8),(3270,'Getaria',17500,17503,3,1),(3271,'Getxo',41796,41807,3,5),(3272,'Gibraleón',17934,17937,3,1),(3273,'Gijón',2648,2699,3,25),(3274,'Gil García',3722,3725,3,1),(3275,'Gilbuena',3726,3729,3,1),(3276,'Gilena',35206,35209,3,1),(3277,'Gilet',39904,39907,3,1),(3278,'Gimenells i el Pla de la Font',23808,23813,3,2),(3279,'Gimialcón',3730,3733,3,1),(3280,'Gimileo',21312,21315,3,1),(3281,'Gines',35210,35213,3,1),(3282,'Ginestar',36766,36769,3,1),(3283,'Girona',14272,14289,3,8),(3284,'Gironella',6256,6259,3,1),(3285,'Gisclareny',6260,6263,3,1),(3286,'Gistaín',18698,18701,3,1),(3287,'Gizaburuaga',41808,41811,3,1),(3288,'Gobernador',15368,15373,3,2),(3289,'Godall',36770,36773,3,1),(3290,'Godella',39908,39911,3,1),(3291,'Godelleta',39912,39915,3,1),(3292,'Godojos',43884,43887,3,1),(3293,'Goizueta',28564,28567,3,1),(3294,'Gójar',15374,15377,3,1),(3295,'Golmayo',35944,35955,3,5),(3296,'Golmés',23814,23817,3,1),(3297,'Golosalvo',590,593,3,1),(3298,'Golpejas',32870,32873,3,1),(3299,'Gómara',35956,35963,3,3),(3300,'Gombrèn',14290,14293,3,1),(3301,'Gomecello',32874,32877,3,1),(3302,'Gomesende',29680,29683,3,1),(3303,'Gomezserracín',34372,34375,3,1),(3304,'Gondomar',31584,31603,3,9),(3305,'Goñi',28568,28571,3,1),(3306,'Gor',15378,15381,3,1),(3307,'Gorafe',15382,15385,3,1),(3308,'Gordaliza del Pino',22224,22227,3,1),(3309,'Gordexola',41812,41817,3,2),(3310,'Gordoncillo',22228,22231,3,1),(3311,'Gorga',1330,1333,3,1),(3312,'Gorliz',41818,41823,3,2),(3313,'Gormaz',35964,35967,3,1),(3314,'Gósol',23818,23821,3,1),(3315,'Gotarrendura',3734,3737,3,1),(3316,'Gotor',43888,43891,3,1),(3317,'Gozón',2700,2713,3,6),(3318,'Gradefes',22232,22245,3,6),(3319,'Grado',2714,2727,3,6),(3320,'Graja de Campalbo',13296,13299,3,1),(3321,'Graja de Iniesta',13300,13303,3,1),(3322,'Grajal de Campos',22246,22249,3,1),(3323,'Grajera',34376,34379,3,1),(3324,'Granada',15386,15423,3,18),(3325,'Granátula de Calatrava',12102,12105,3,1),(3326,'Grandas de Salime',2728,2731,3,1),(3327,'Grandes y San Martín',3738,3741,3,1),(3328,'Grañén',18702,18713,3,5),(3329,'Granera',6264,6267,3,1),(3330,'Granja de Moreruela',42494,42499,3,2),(3331,'Granja de Rocamora',1334,1337,3,1),(3332,'Granja de Torrehermosa',4742,4745,3,1),(3333,'Granollers',6268,6275,3,3),(3334,'Grañón',21316,21319,3,1),(3335,'Granucillo',42500,42505,3,2),(3336,'Granyanella',23822,23825,3,1),(3337,'Granyena de les Garrigues',23826,23829,3,1),(3338,'Granyena de Segarra',23830,23833,3,1),(3339,'Gratallops',36774,36777,3,1),(3340,'Graus',18714,18733,3,9),(3341,'Grávalos',21320,21323,3,1),(3342,'Grazalema',10274,10279,3,2),(3343,'Griegos',37798,37801,3,1),(3344,'Grijalba',7804,7807,3,1),(3345,'Grijota',30624,30627,3,1),(3346,'Griñón',26140,26143,3,1),(3347,'Grisaleña',7808,7811,3,1),(3348,'Grisel',43892,43895,3,1),(3349,'Grisén',43896,43899,3,1),(3350,'Guadahortuna',15424,15427,3,1),(3351,'Guadalajara',16444,16467,3,11),(3352,'Guadalaviar',37802,37805,3,1),(3353,'Guadalcanal',35214,35217,3,1),(3354,'Guadalcázar',12626,12629,3,1),(3355,'Guadalix de la Sierra',26144,26147,3,1),(3356,'Guadalmez',12106,12111,3,2),(3357,'Guadalupe',9476,9479,3,1),(3358,'Guadamur',38700,38703,3,1),(3359,'Guadarrama',26148,26155,3,3),(3360,'Guadasequies',39916,39919,3,1),(3361,'Guadasuar',39920,39923,3,1),(3362,'Guadiana del Caudillo',4746,4749,3,1),(3363,'Guadix',15428,15439,3,5),(3364,'Guadramiro',32878,32881,3,1),(3365,'Gualba',6276,6279,3,1),(3366,'Gualchos',15440,15445,3,2),(3367,'Gualta',14294,14297,3,1),(3368,'Guardamar de la Safor',39924,39927,3,1),(3369,'Guardamar del Segura',1338,1341,3,1),(3370,'Guardiola de Berguedà',6280,6283,3,1),(3371,'Guardo',30628,30637,3,4),(3372,'Guareña',4750,4755,3,2),(3373,'Guaro',27110,27113,3,1),(3374,'Guarrate',42506,42509,3,1),(3375,'Guarromán',19612,19615,3,1),(3376,'Guaza de Campos',30638,30641,3,1),(3377,'Gúdar',37806,37809,3,1),(3378,'Güéjar Sierra',15446,15451,3,2),(3379,'Güeñes',41824,41831,3,3),(3380,'Güesa/Gorza',28572,28575,3,1),(3381,'Guesálaz/Gesalatz',28576,28583,3,3),(3382,'Güevéjar',15452,15455,3,1),(3383,'Guijo de Ávila',32882,32885,3,1),(3384,'Guijo de Coria',9480,9483,3,1),(3385,'Guijo de Galisteo',9484,9491,3,3),(3386,'Guijo de Granadilla',9492,9499,3,3),(3387,'Guijo de Santa Bárbara',9500,9503,3,1),(3388,'Guijuelo',32886,32895,3,4),(3389,'Guillena',35218,35225,3,3),(3390,'Guils de Cerdanya',14298,14301,3,1),(3391,'Guimerà',23834,23837,3,1),(3392,'Guirguillano',28584,28589,3,2),(3393,'Guisando',3742,3745,3,1),(3394,'Guissona',23838,23841,3,1),(3395,'Guitiriz',25064,25087,3,11),(3396,'Guixers',23842,23845,3,1),(3397,'Gumiel de Izán',7812,7815,3,1),(3398,'Gumiel de Mercado',7816,7819,3,1),(3399,'Guntín',25088,25109,3,10),(3400,'Gurb',6284,6287,3,1),(3401,'Guriezo',10692,10705,3,6),(3402,'Gurrea de Gállego',18734,18739,3,2),(3403,'Gusendos de los Oteros',22250,22253,3,1),(3404,'Gutierre-Muñoz',3746,3749,3,1),(3405,'Hacinas',7820,7823,3,1),(3406,'Harana/Valle de Arana',150,153,3,1),(3407,'Haro',21324,21329,3,2),(3408,'Haza',7824,7829,3,2),(3409,'Hazas de Cesto',10706,10713,3,3),(3410,'Helechosa de los Montes',4756,4759,3,1),(3411,'Hellín',594,607,3,6),(3412,'Henarejos',13304,13307,3,1),(3413,'Henche',16468,16471,3,1),(3414,'Heras de Ayuso',16472,16475,3,1),(3415,'Herbés',11508,11511,3,1),(3416,'Herce',21330,21333,3,1),(3417,'Herencia',12112,12115,3,1),(3418,'Herguijuela',9504,9509,3,2),(3419,'Herguijuela de Ciudad Rodrigo',32896,32901,3,2),(3420,'Herguijuela de la Sierra',32902,32907,3,2),(3421,'Herguijuela del Campo',32908,32911,3,1),(3422,'Hermandad de Campoo de Suso',10714,10723,3,4),(3423,'Hérmedes de Cerrato',30642,30645,3,1),(3424,'Hermisende',42510,42515,3,2),(3425,'Hernán-Pérez',9510,9515,3,2),(3426,'Hernani',17504,17509,3,2),(3427,'Hernansancho',3750,3753,3,1),(3428,'Hernialde',17510,17513,3,1),(3429,'Herradón de Pinares',3754,3761,3,3),(3430,'Herramélluri',21334,21337,3,1),(3431,'Herrera',35226,35229,3,1),(3432,'Herrera de Alcántara',9516,9519,3,1),(3433,'Herrera de los Navarros',43900,43903,3,1),(3434,'Herrera de Pisuerga',30646,30653,3,3),(3435,'Herrera de Soria',35968,35971,3,1),(3436,'Herrera de Valdecañas',30654,30657,3,1),(3437,'Herrera del Duque',4760,4765,3,2),(3438,'Herrería',16476,16479,3,1),(3439,'Herrerías',10724,10733,3,4),(3440,'Herreros de Suso',3762,3765,3,1),(3441,'Herreruela',9520,9523,3,1),(3442,'Herreruela de Oropesa',38704,38707,3,1),(3443,'Herrín de Campos',40834,40837,3,1),(3444,'Hervás',9524,9527,3,1),(3445,'Hervías',21338,21341,3,1),(3446,'Hiendelaencina',16480,16483,3,1),(3447,'Higuera',9528,9531,3,1),(3448,'Higuera de Calatrava',19616,19619,3,1),(3449,'Higuera de la Serena',4766,4769,3,1),(3450,'Higuera de la Sierra',17938,17941,3,1),(3451,'Higuera de las Dueñas',3766,3769,3,1),(3452,'Higuera de Llerena',4770,4773,3,1),(3453,'Higuera de Vargas',4774,4777,3,1),(3454,'Higuera la Real',4778,4781,3,1),(3455,'Higueras',11512,11515,3,1),(3456,'Higueruela',608,613,3,2),(3457,'Higueruelas',39928,39931,3,1),(3458,'Híjar',37810,37813,3,1),(3459,'Hijes',16484,16487,3,1),(3460,'Hinojal',9532,9535,3,1),(3461,'Hinojales',17942,17945,3,1),(3462,'Hinojares',19620,19623,3,1),(3463,'Hinojos',17946,17949,3,1),(3464,'Hinojosa de Duero',32912,32915,3,1),(3465,'Hinojosa de Jarque',37814,37817,3,1),(3466,'Hinojosa de San Vicente',38708,38711,3,1),(3467,'Hinojosa del Campo',35972,35975,3,1),(3468,'Hinojosa del Duque',12630,12633,3,1),(3469,'Hinojosa del Valle',4782,4785,3,1),(3470,'Hinojosas de Calatrava',12116,12119,3,1),(3471,'Hiriberri/Villanueva de Aezkoa',28590,28593,3,1),(3472,'Hita',16488,16491,3,1),(3473,'Holguera',9536,9541,3,2),(3474,'Hombrados',16492,16495,3,1),(3475,'Hondarribia',17514,17517,3,1),(3476,'Hondón de los Frailes',1342,1345,3,1),(3477,'Honrubia',13308,13311,3,1),(3478,'Honrubia de la Cuesta',34380,34383,3,1),(3479,'Hontalbilla',34384,34387,3,1),(3480,'Hontanar',38712,38715,3,1),(3481,'Hontanares de Eresma',34388,34391,3,1),(3482,'Hontanas',7830,7833,3,1),(3483,'Hontanaya',13312,13315,3,1),(3484,'Hontangas',7834,7837,3,1),(3485,'Hontecillas',13316,13319,3,1),(3486,'Hontoba',16496,16499,3,1),(3487,'Hontoria de Cerrato',30658,30661,3,1),(3488,'Hontoria de la Cantera',7838,7841,3,1),(3489,'Hontoria de Valdearados',7842,7845,3,1),(3490,'Hontoria del Pinar',7846,7851,3,2),(3491,'Horcajo de la Sierra-Aoslos',26156,26159,3,1),(3492,'Horcajo de las Torres',3770,3773,3,1),(3493,'Horcajo de los Montes',12120,12123,3,1),(3494,'Horcajo de Montemayor',32916,32919,3,1),(3495,'Horcajo de Santiago',13320,13323,3,1),(3496,'Horcajo Medianero',32920,32927,3,3),(3497,'Horcajuelo de la Sierra',26160,26163,3,1),(3498,'Horche',16500,16507,3,3),(3499,'Hormigos',38716,38719,3,1),(3500,'Hormilla',21342,21345,3,1),(3501,'Hormilleja',21346,21349,3,1),(3502,'Hornachos',4786,4789,3,1),(3503,'Hornachuelos',12634,12645,3,5),(3504,'Hornillos de Cameros',21350,21353,3,1),(3505,'Hornillos de Cerrato',30662,30665,3,1),(3506,'Hornillos de Eresma',40838,40841,3,1),(3507,'Hornillos del Camino',7852,7855,3,1),(3508,'Hornos',19624,19633,3,4),(3509,'Hornos de Moncalvillo',21354,21357,3,1),(3510,'Horta de Sant Joan',36778,36781,3,1),(3511,'Hortezuela de Océn',16508,16511,3,1),(3512,'Hortigüela',7856,7859,3,1),(3513,'Hospital de Órbigo',22254,22257,3,1),(3514,'Hostalric',14302,14305,3,1),(3515,'Hoya-Gonzalo',614,617,3,1),(3516,'Hoyales de Roa',7860,7863,3,1),(3517,'Hoyo de Manzanares',26164,26169,3,2),(3518,'Hoyocasero',3774,3777,3,1),(3519,'Hoyorredondo',3778,3781,3,1),(3520,'Hoyos',9542,9545,3,1),(3521,'Hoyos de Miguel Muñoz',3782,3785,3,1),(3522,'Hoyos del Collado',3786,3789,3,1),(3523,'Hoyos del Espino',3790,3795,3,2),(3524,'Hoz de Jaca',18740,18743,3,1),(3525,'Hoz y Costean',18744,18749,3,2),(3526,'Huarte/Uharte',28594,28597,3,1),(3527,'Huecas',38720,38723,3,1),(3528,'Huécija',1962,1965,3,1),(3529,'Huélaga',9546,9549,3,1),(3530,'Huélago',15456,15459,3,1),(3531,'Huélamo',13324,13327,3,1),(3532,'Huelma',19634,19639,3,2),(3533,'Huelva',17950,17967,3,8),(3534,'Huelves',13328,13331,3,1),(3535,'Huéneja',15460,15463,3,1),(3536,'Huércal de Almería',1966,1969,3,1),(3537,'Huércal-Overa',1970,1987,3,8),(3538,'Huércanos',21358,21361,3,1),(3539,'Huérguina',13332,13335,3,1),(3540,'Huérmeces',7864,7869,3,2),(3541,'Huérmeces del Cerro',16512,16515,3,1),(3542,'Huerta',32928,32931,3,1),(3543,'Huerta de Arriba',7870,7873,3,1),(3544,'Huerta de la Obispalía',13336,13339,3,1),(3545,'Huerta de Rey',7874,7879,3,2),(3546,'Huerta de Valdecarábanos',38724,38727,3,1),(3547,'Huerta del Marquesado',13340,13343,3,1),(3548,'Huertahernando',16516,16519,3,1),(3549,'Huerto',18750,18755,3,2),(3550,'Huesa',19640,19643,3,1),(3551,'Huesa del Común',37818,37823,3,2),(3552,'Huesca',18756,18789,3,16),(3553,'Huéscar',15464,15467,3,1),(3554,'Huete',13344,13359,3,7),(3555,'Huétor de Santillán',15468,15473,3,2),(3556,'Huétor Tájar',15474,15477,3,1),(3557,'Huétor Vega',15478,15481,3,1),(3558,'Hueva',16520,16523,3,1),(3559,'Huévar del Aljarafe',35230,35233,3,1),(3560,'Humada',7880,7885,3,2),(3561,'Humanes',16524,16531,3,3),(3562,'Humanes de Madrid',26170,26173,3,1),(3563,'Humilladero',27114,27119,3,2),(3564,'Hurones',7886,7889,3,1),(3565,'Hurtumpascual',3796,3799,3,1),(3566,'Husillos',30666,30669,3,1),(3567,'Ibahernando',9550,9553,3,1),(3568,'Ibargoiti',28598,28603,3,2),(3569,'Ibarra',17518,17521,3,1),(3570,'Ibarrangelu',41832,41835,3,1),(3571,'Ibdes',43904,43907,3,1),(3572,'Ibeas de Juarros',7890,7897,3,3),(3573,'Ibi',1346,1349,3,1),(3574,'Ibias',2732,2739,3,3),(3575,'Ibieca',18790,18793,3,1),(3576,'Ibrillos',7898,7901,3,1),(3577,'Ibros',19644,19649,3,2),(3578,'Idiazabal',17522,17525,3,1),(3579,'Igantzi',28604,28607,3,1),(3580,'Igea',21362,21365,3,1),(3581,'Iglesiarrubia',7902,7907,3,2),(3582,'Iglesias',7908,7911,3,1),(3583,'Igorre',41836,41839,3,1),(3584,'Igriés',18794,18797,3,1),(3585,'Igualada',6288,6291,3,1),(3586,'Igualeja',27120,27123,3,1),(3587,'Igüeña',22258,22273,3,7),(3588,'Igúzquiza',28608,28613,3,2),(3589,'Ikaztegieta',17526,17529,3,1),(3590,'Ilche',18798,18801,3,1),(3591,'Illán de Vacas',38728,38731,3,1),(3592,'Illana',16532,16535,3,1),(3593,'Illano',2740,2747,3,3),(3594,'Íllar',1988,1991,3,1),(3595,'Illas',2748,2755,3,3),(3596,'Illescas',38732,38735,3,1),(3597,'Íllora',15482,15497,3,7),(3598,'Illueca',43908,43911,3,1),(3599,'Imotz',28614,28619,3,2),(3600,'Inca',5434,5437,3,1),(3601,'Iniesta',13360,13367,3,3),(3602,'Iniéstola',16536,16539,3,1),(3603,'Instinción',1992,1995,3,1),(3604,'Irañeta',28620,28623,3,1),(3605,'Irixoa',20426,20429,3,1),(3606,'Iruelos',32932,32935,3,1),(3607,'Irueste',16540,16543,3,1),(3608,'Irun',17530,17541,3,5),(3609,'Iruña Oka/Iruña de Oca',154,163,3,4),(3610,'Irura',17542,17545,3,1),(3611,'Iruraiz-Gauna',164,171,3,3),(3612,'Irurtzun',28624,28627,3,1),(3613,'Isaba/Izaba',28628,28631,3,1),(3614,'Isábena',18802,18809,3,3),(3615,'Isar',7912,7919,3,3),(3616,'Íscar',40842,40845,3,1),(3617,'Isla Cristina',17968,17979,3,5),(3618,'Isla Mayor',35234,35239,3,2),(3619,'Isona i Conca Dellà',23846,23861,3,7),(3620,'Isòvol',14306,14309,3,1),(3621,'Ispaster',41840,41843,3,1),(3622,'Istán',27124,27127,3,1),(3623,'Isuerre',43912,43915,3,1),(3624,'Itero de la Vega',30670,30673,3,1),(3625,'Itero del Castillo',7920,7923,3,1),(3626,'Ítrabo',15498,15501,3,1),(3627,'Itsasondo',17546,17549,3,1),(3628,'Ituero de Azaba',32936,32939,3,1),(3629,'Ituero y Lama',34392,34395,3,1),(3630,'Ituren',28632,28635,3,1),(3631,'Iturmendi',28636,28639,3,1),(3632,'Iurreta',41844,41847,3,1),(3633,'Ivars d\'Urgell',23862,23867,3,2),(3634,'Ivars de Noguera',23868,23871,3,1),(3635,'Ivorra',23872,23875,3,1),(3636,'Iza/Itza',28640,28651,3,5),(3637,'Izagaondoa',28652,28655,3,1),(3638,'Izagre',22274,22277,3,1),(3639,'Izalzu/Itzaltzu',28656,28659,3,1),(3640,'Iznájar',12646,12655,3,4),(3641,'Iznalloz',15502,15507,3,2),(3642,'Iznate',27128,27131,3,1),(3643,'Iznatoraf',19650,19653,3,1),(3644,'Izurtza',41848,41851,3,1),(3645,'Jabaloyas',37824,37829,3,2),(3646,'Jabalquinto',19654,19659,3,2),(3647,'Jabugo',17980,17985,3,2),(3648,'Jaca',18810,18837,3,13),(3649,'Jacarilla',1350,1353,3,1),(3650,'Jadraque',16544,16549,3,2),(3651,'Jaén',19660,19685,3,12),(3652,'Jafre',14310,14313,3,1),(3653,'Jalance',39932,39935,3,1),(3654,'Jalón de Cameros',21366,21369,3,1),(3655,'Jambrina',42516,42519,3,1),(3656,'Jamilena',19686,19689,3,1),(3657,'Jaraba',43916,43919,3,1),(3658,'Jaraco',39936,39939,3,1),(3659,'Jarafuel',39940,39943,3,1),(3660,'Jaraicejo',9554,9559,3,2),(3661,'Jaraíz de la Vera',9560,9563,3,1),(3662,'Jaramillo de la Fuente',7924,7927,3,1),(3663,'Jaramillo Quemado',7928,7931,3,1),(3664,'Jarandilla de la Vera',9564,9567,3,1),(3665,'Jarilla',9568,9571,3,1),(3666,'Jarque',43920,43923,3,1),(3667,'Jarque de la Val',37830,37833,3,1),(3668,'Jasa',18838,18841,3,1),(3669,'Játar',15508,15509,3,0),(3670,'Jatiel',37834,37837,3,1),(3671,'Játiva',39944,39949,3,2),(3672,'Jaulín',43924,43927,3,1),(3673,'Jaurrieta',28660,28663,3,1),(3674,'Jávea/Xàbia',1354,1363,3,4),(3675,'Javier',28664,28669,3,2),(3676,'Jayena',15510,15513,3,1),(3677,'Jeresa',39950,39953,3,1),(3678,'Jerez de la Frontera',10280,10317,3,18),(3679,'Jerez de los Caballeros',4790,4795,3,2),(3680,'Jerez del Marquesado',15514,15517,3,1),(3681,'Jérica',11516,11519,3,1),(3682,'Jerte',9572,9575,3,1),(3683,'Jete',15518,15521,3,1),(3684,'Jijona/Xixona',1364,1367,3,1),(3685,'Jimena',19690,19693,3,1),(3686,'Jimena de la Frontera',10318,10327,3,4),(3687,'Jimera de Líbar',27132,27135,3,1),(3688,'Jirueque',16550,16553,3,1),(3689,'Joarilla de las Matas',22278,22281,3,1),(3690,'Jódar',19694,19697,3,1),(3691,'Jorba',6292,6297,3,2),(3692,'Jorcas',37838,37841,3,1),(3693,'Jorquera',618,623,3,2),(3694,'Josa',37842,37845,3,1),(3695,'Josa i Tuixén',23876,23881,3,2),(3696,'Juarros de Riomoros',34396,34399,3,1),(3697,'Juarros de Voltoya',34400,34403,3,1),(3698,'Jubrique',27136,27139,3,1),(3699,'Juià',14314,14317,3,1),(3700,'Jumilla',27640,27649,3,4),(3701,'Jun',15522,15525,3,1),(3702,'Junciana',3800,3803,3,1),(3703,'Juncosa',23882,23885,3,1),(3704,'Juneda',23886,23889,3,1),(3705,'Junta de Traslaloma',7932,7937,3,2),(3706,'Junta de Villalba de Losa',7938,7941,3,1),(3707,'Jurisdicción de Lara',7942,7947,3,2),(3708,'Jurisdicción de San Zadornil',7948,7951,3,1),(3709,'Juslapeña',28670,28677,3,3),(3710,'Justel',42520,42525,3,2),(3711,'Juviles',15526,15529,3,1),(3712,'Juzbado',32940,32943,3,1),(3713,'Júzcar',27140,27143,3,1),(3714,'Karrantza Harana/Valle de Carranza',41852,41857,3,2),(3715,'Kortezubi',41858,41861,3,1),(3716,'Kripan',172,175,3,1),(3717,'Kuartango',176,181,3,2),(3718,'L\'Albagés',23890,23893,3,1),(3719,'L\'Albi',23894,23897,3,1),(3720,'L\'Albiol',36782,36785,3,1),(3721,'l\'Alcora',11520,11527,3,3),(3722,'L\'Aldea',36786,36789,3,1),(3723,'L\'Aleixar',36790,36793,3,1),(3724,'l\'Alfàs del Pi',1368,1373,3,2),(3725,'l\'Alqueria d\'Asnar',1374,1377,3,1),(3726,'L\'Ametlla de Mar',36794,36797,3,1),(3727,'L\'Ametlla del Vallès',6298,6301,3,1),(3728,'L\'Ampolla',36798,36801,3,1),(3729,'L\'Arboç',36802,36805,3,1),(3730,'L\'Argentera',36806,36809,3,1),(3731,'L\'Armentera',14318,14321,3,1),(3732,'l\'Atzúbia',1378,1381,3,1),(3733,'L\'Escala',14322,14325,3,1),(3734,'L\'Espluga Calba',23898,23901,3,1),(3735,'L\'Espluga de Francolí',36810,36813,3,1),(3736,'L\'Espunyola',6302,6305,3,1),(3737,'L\'Esquirol',6306,6311,3,2),(3738,'L\'Estany',6312,6317,3,2),(3739,'L\'Hospitalet de Llobregat',6318,6335,3,8),(3740,'La Acebeda',26174,26177,3,1),(3741,'La Adrada',3804,3807,3,1),(3742,'La Alameda de Gardón',32944,32947,3,1),(3743,'La Alamedilla',32948,32951,3,1),(3744,'La Alberca',32952,32955,3,1),(3745,'La Alberca de Záncara',13368,13371,3,1),(3746,'La Alberguería de Argañán',32956,32959,3,1),(3747,'La Albuera',4796,4799,3,1),(3748,'La Alcudia',39954,39957,3,1),(3749,'La Aldea del Obispo',9576,9579,3,1),(3750,'La Aldehuela',3808,3811,3,1),(3751,'La Algaba',35240,35245,3,2),(3752,'La Almarcha',13372,13375,3,1),(3753,'La Almolda',43928,43931,3,1),(3754,'La Almunia de Doña Godina',43932,43935,3,1),(3755,'La Antigua',22282,22285,3,1),(3756,'La Atalaya',32960,32963,3,1),(3757,'La Bañeza',22286,22293,3,3),(3758,'La Baronia de Rialb',23902,23905,3,1),(3759,'La Bastida',32964,32967,3,1),(3760,'La Bisbal d\'Empordà',14326,14329,3,1),(3761,'La Bisbal de Falset',36814,36817,3,1),(3762,'La Bisbal del Penedès',36818,36821,3,1),(3763,'La Bodera',16554,16557,3,1),(3764,'La Bouza',32968,32971,3,1),(3765,'La Bóveda de Toro',42526,42529,3,1),(3766,'La Cabeza de Béjar',32972,32975,3,1),(3767,'La Cabrera',26178,26181,3,1),(3768,'La Calahorra',15530,15533,3,1),(3769,'La Calzada de Béjar',32976,32979,3,1),(3770,'La Campana',35246,35249,3,1),(3771,'La Cañada de Verich',37846,37849,3,1),(3772,'La Canonja',36822,36827,3,2),(3773,'La Carlota',12656,12665,3,4),(3774,'La Carolina',19698,19705,3,3),(3775,'La Carrera',3812,3815,3,1),(3776,'La Cellera de Ter',14330,14335,3,2),(3777,'La Cerollera',37850,37853,3,1),(3778,'La Cierva',13376,13379,3,1),(3779,'La Codoñera',37854,37857,3,1),(3780,'La Codosera',4800,4803,3,1),(3781,'La Colilla',3816,3819,3,1),(3782,'La Coma i la Pedra',23906,23909,3,1),(3783,'La Coronada',4804,4807,3,1),(3784,'La Cuba',37858,37861,3,1),(3785,'La Cueva de Roa',7952,7955,3,1),(3786,'La Cumbre',9580,9583,3,1),(3787,'La Eliana',39958,39961,3,1),(3788,'La Encina',32980,32983,3,1),(3789,'La Ercina',22294,22303,3,4),(3790,'La Estrella',38736,38739,3,1),(3791,'La Fatarella',36828,36831,3,1),(3792,'La Febró',36832,36835,3,1),(3793,'La Figuera',36836,36839,3,1),(3794,'La Floresta',23910,23913,3,1),(3795,'La Fregeneda',32984,32987,3,1),(3796,'La Fresneda',37862,37865,3,1),(3797,'La Frontera',13380,13383,3,1),(3798,'La Fuente de San Esteban',32988,32999,3,5),(3799,'La Fueva',18842,18853,3,5),(3800,'La Fuliola',23914,23917,3,1),(3801,'La Galera',36840,36843,3,1),(3802,'La Gallega',7956,7959,3,1),(3803,'La Garganta',9584,9587,3,1),(3804,'La Garriga',6336,6339,3,1),(3805,'La Garrovilla',4808,4811,3,1),(3806,'La Ginebrosa',37866,37869,3,1),(3807,'La Gineta',624,627,3,1),(3808,'La Granada',6340,6343,3,1),(3809,'La Granada de Río-Tinto',17986,17989,3,1),(3810,'La Granadella',23918,23921,3,1),(3811,'La Granja',9588,9591,3,1),(3812,'La Granja d\'Escarp',23922,23925,3,1),(3813,'La Granja de la Costera',39962,39965,3,1),(3814,'La Granjuela',12666,12669,3,1),(3815,'La Guardia',38740,38743,3,1),(3816,'La Guardia de Jaén',19706,19709,3,1),(3817,'La Guingueta d\'Àneu',23926,23935,3,4),(3818,'La Haba',4812,4817,3,2),(3819,'La Herrera',628,631,3,1),(3820,'La Hija de Dios',3820,3823,3,1),(3821,'La Hiniesta',42530,42533,3,1),(3822,'La Hinojosa',13384,13387,3,1),(3823,'La Hiruela',26182,26185,3,1),(3824,'La Horcajada',3824,3829,3,2),(3825,'La Horra',7960,7963,3,1),(3826,'La Hoya',33000,33003,3,1),(3827,'La Hoz de la Vieja',37870,37873,3,1),(3828,'La Huerce',16558,16561,3,1),(3829,'La Iglesuela',38744,38747,3,1),(3830,'La Iglesuela del Cid',37874,37877,3,1),(3831,'La Iruela',19710,19715,3,2),(3832,'la Jana',11528,11531,3,1),(3833,'La Jonquera',14336,14341,3,2),(3834,'La Joyosa',43936,43939,3,1),(3835,'La Lapa',4818,4821,3,1),(3836,'La Lastrilla',34404,34407,3,1),(3837,'La Línea de la Concepción',10328,10331,3,1),(3838,'La Llacuna',6344,6347,3,1),(3839,'La Llagosta',6348,6351,3,1),(3840,'la Llosa',11532,11535,3,1),(3841,'la Llosa de Ranes',39966,39969,3,1),(3842,'La Losa',34408,34411,3,1),(3843,'La Losilla',35976,35979,3,1),(3844,'La Luisiana',35250,35255,3,2),(3845,'La Malahá',15534,15537,3,1),(3846,'La Masó',36844,36847,3,1),(3847,'La Mata',38748,38751,3,1),(3848,'La Mata de Ledesma',33004,33011,3,3),(3849,'La Mata de los Olmos',37878,37881,3,1),(3850,'la Mata de Morella',11536,11539,3,1),(3851,'La Matilla',34412,34415,3,1),(3852,'La Maya',33012,33015,3,1),(3853,'La Mierla',16562,16565,3,1),(3854,'La Miñosa',16566,16571,3,2),(3855,'La Mojonera',1996,2001,3,2),(3856,'La Molsosa',23936,23939,3,1),(3857,'La Morera',4822,4825,3,1),(3858,'La Morera de Montsant',36848,36853,3,2),(3859,'La Mudarra',40846,40849,3,1),(3860,'La Muela',43940,43945,3,2),(3861,'La Nava',17990,17993,3,1),(3862,'La Nava de Ricomalillo',38752,38755,3,1),(3863,'La Nava de Santiago',4826,4829,3,1),(3864,'La Nou de Berguedà',6352,6355,3,1),(3865,'La Nou de Gaià',36854,36857,3,1),(3866,'la Nucia',1382,1385,3,1),(3867,'La Olmeda de Jadraque',16572,16575,3,1),(3868,'La Orbada',33016,33021,3,2),(3869,'La Palma d\'Ebre',36858,36861,3,1),(3870,'La Palma de Cervelló',6356,6359,3,1),(3871,'La Palma del Condado',17994,17997,3,1),(3872,'La Parra',4830,4833,3,1),(3873,'La Parra de las Vegas',13388,13391,3,1),(3874,'La Parrilla',40850,40853,3,1),(3875,'La Pedraja de Portillo',40854,40857,3,1),(3876,'La Peña',33022,33025,3,1),(3877,'La Pera',14342,14345,3,1),(3878,'La Peraleja',13392,13395,3,1),(3879,'La Pernía',30674,30681,3,3),(3880,'La Pesga',9592,9595,3,1),(3881,'La Pesquera',13396,13399,3,1),(3882,'La Peza',15538,15543,3,2),(3883,'la Pobla de Benifassà',11540,11543,3,1),(3884,'La Pobla de Cérvoles',23940,23943,3,1),(3885,'La Pobla de Claramunt',6360,6363,3,1),(3886,'La Pobla de Lillet',6364,6367,3,1),(3887,'La Pobla de Mafumet',36862,36865,3,1),(3888,'La Pobla de Massaluca',36866,36869,3,1),(3889,'La Pobla de Montornès',36870,36873,3,1),(3890,'La Pobla de Segur',23944,23951,3,3),(3891,'la Pobla Tornesa',11544,11547,3,1),(3892,'La Pola de Gordón',22304,22321,3,8),(3893,'La Portella',23952,23955,3,1),(3894,'La Portellada',37882,37885,3,1),(3895,'La Póveda de Soria',35980,35983,3,1),(3896,'La Puebla de Alfindén',43946,43951,3,2),(3897,'La Puebla de Almoradiel',38756,38759,3,1),(3898,'La Puebla de Arganzón',7964,7967,3,1),(3899,'La Puebla de Castro',18854,18857,3,1),(3900,'La Puebla de Cazalla',35256,35259,3,1),(3901,'La Puebla de Híjar',37886,37891,3,2),(3902,'La Puebla de los Infantes',35260,35265,3,2),(3903,'La Puebla de Montalbán',38760,38765,3,2),(3904,'La Puebla de Valdavia',30682,30685,3,1),(3905,'La Puebla de Valverde',37892,37895,3,1),(3906,'La Puebla del Río',35266,35269,3,1),(3907,'La Pueblanueva',38766,38771,3,2),(3908,'La Puerta de Segura',19716,19721,3,2),(3909,'La Quar',6368,6371,3,1),(3910,'La Rambla',12670,12673,3,1),(3911,'La Recueja',632,635,3,1),(3912,'La Redonda',33026,33029,3,1),(3913,'La Revilla y Ahedo',7968,7971,3,1),(3914,'La Riba',36874,36877,3,1),(3915,'La Riba de Escalote',35984,35987,3,1),(3916,'La Riera de Gaià',36878,36881,3,1),(3917,'La Rinconada',35270,35275,3,2),(3918,'La Rinconada de la Sierra',33030,33033,3,1),(3919,'La Robla',22322,22329,3,3),(3920,'La Roca de la Sierra',4834,4837,3,1),(3921,'La Roca del Vallès',6372,6375,3,1),(3922,'La Roda',636,641,3,2),(3923,'La Roda de Andalucía',35276,35281,3,2),(3924,'la Romana',1386,1389,3,1),(3925,'La Sagrada',33034,33037,3,1),(3926,'la Salzadella',11548,11551,3,1),(3927,'La Seca',40858,40861,3,1),(3928,'La Secuita',36882,36887,3,2),(3929,'La Selva de Mar',14346,14349,3,1),(3930,'La Selva del Camp',36888,36891,3,1),(3931,'La Sénia',36892,36895,3,1),(3932,'La Sentiu de Sió',23956,23959,3,1),(3933,'La Sequera de Haza',7972,7975,3,1),(3934,'La Serna',30686,30689,3,1),(3935,'La Serna del Monte',26186,26189,3,1),(3936,'La Serrada',3830,3833,3,1),(3937,'la Serratella',11552,11555,3,1),(3938,'La Seu d\'Urgell',23960,23965,3,2),(3939,'La Sierpe',33038,33041,3,1),(3940,'La Solana',12124,12127,3,1),(3941,'La Sotonera',18858,18867,3,4),(3942,'La Taha',15544,15549,3,2),(3943,'La Tala',33042,33045,3,1),(3944,'La Tallada d\'Empordà',14350,14355,3,2),(3945,'La Toba',16576,16579,3,1),(3946,'La Torre',3834,3839,3,2),(3947,'la Torre d\'En Besora',11556,11559,3,1),(3948,'la Torre d\'en Doménec',11560,11563,3,1),(3949,'La Torre de Cabdella',23966,23977,3,5),(3950,'La Torre de Claramunt',6376,6379,3,1),(3951,'La Torre de Esteban Hambrán',38772,38775,3,1),(3952,'La Torre de Fontaubella',36896,36899,3,1),(3953,'La Torre de l\'Espanyol',36900,36903,3,1),(3954,'La Torre del Valle',42534,42537,3,1),(3955,'La Unión',27650,27659,3,4),(3956,'La Unión de Campos',40862,40865,3,1),(3957,'La Vajol',14356,14359,3,1),(3958,'la Vall d\'Alcalà',1390,1393,3,1),(3959,'la Vall d\'Ebo',1394,1397,3,1),(3960,'La Vall d\'en Bas',14360,14369,3,4),(3961,'la Vall d\'Uixó',11564,11567,3,1),(3962,'La Vall de Bianya',14370,14375,3,2),(3963,'La Vall de Boí',23978,23987,3,4),(3964,'la Vall de Laguar',1398,1401,3,1),(3965,'La Vansa i Fórnols',23988,23991,3,1),(3966,'La Vecilla',22330,22337,3,3),(3967,'La Vellés',33046,33049,3,1),(3968,'La Victoria',12674,12677,3,1),(3969,'La Vid de Bureba',7976,7979,3,1),(3970,'La Vid de Ojeda',30690,30693,3,1),(3971,'La Vid y Barrios',7980,7985,3,2),(3972,'La Vídola',33050,33053,3,1),(3973,'la Vilavella',11568,11571,3,1),(3974,'La Vilella Alta',36904,36907,3,1),(3975,'La Vilella Baixa',36908,36911,3,1),(3976,'La Villa de Don Fadrique',38776,38779,3,1),(3977,'La Vilueña',43952,43955,3,1),(3978,'La Yesa',39970,39973,3,1),(3979,'La Yunta',16580,16583,3,1),(3980,'La Zaida',43956,43959,3,1),(3981,'La Zarza',40866,40869,3,1),(3982,'La Zarza',4838,4839,3,0),(3983,'La Zarza de Pumareda',33054,33057,3,1),(3984,'La Zoma',37896,37899,3,1),(3985,'La Zubia',15550,15553,3,1),(3986,'Labajos',34416,34419,3,1),(3987,'Labastida/Bastida',182,189,3,3),(3988,'Labuerda',18868,18871,3,1),(3989,'Láchar',15554,15559,3,2),(3990,'Ladrillar',9596,9601,3,2),(3991,'Lagartera',38780,38783,3,1),(3992,'Lagartos',30694,30699,3,2),(3993,'Lagata',43960,43963,3,1),(3994,'Lagrán',190,195,3,2),(3995,'Laguardia',196,205,3,4),(3996,'Lagueruela',37900,37903,3,1),(3997,'Laguna Dalga',22338,22345,3,3),(3998,'Laguna de Cameros',21370,21373,3,1),(3999,'Laguna de Contreras',34420,34423,3,1),(4000,'Laguna de Duero',40870,40875,3,2),(4001,'Laguna de Negrillos',22346,22349,3,1),(4002,'Laguna del Marquesado',13400,13403,3,1),(4003,'Lagunaseca',13404,13407,3,1),(4004,'Lagunilla',33058,33061,3,1),(4005,'Lagunilla del Jubera',21374,21377,3,1),(4006,'Lahiguera',19722,19725,3,1),(4007,'Lakuntza',28678,28681,3,1),(4008,'Lalín',31604,31631,3,13),(4009,'Laluenga',18872,18875,3,1),(4010,'Lalueza',18876,18883,3,3),(4011,'Lamasón',10734,10737,3,1),(4012,'Lana',28682,28685,3,1),(4013,'Lanaja',18884,18891,3,3),(4014,'Láncara',25110,25133,3,11),(4015,'Lanciego/Lantziego',206,209,3,1),(4016,'Landete',13408,13413,3,2),(4017,'Lanestosa',41862,41865,3,1),(4018,'Langa',3840,3843,3,1),(4019,'Langa de Duero',35988,35995,3,3),(4020,'Langa del Castillo',43964,43967,3,1),(4021,'Langayo',40876,40879,3,1),(4022,'Langreo',2756,2773,3,8),(4023,'Languilla',34424,34427,3,1),(4024,'Lanjarón',15560,15563,3,1),(4025,'Lantadilla',30700,30703,3,1),(4026,'Lantarón',210,215,3,2),(4027,'Lanteira',15564,15567,3,1),(4028,'Lantejuela',35282,35285,3,1),(4029,'Lantz',28686,28689,3,1),(4030,'Lanzahíta',3844,3847,3,1),(4031,'Lanzuela',37904,37907,3,1),(4032,'Laperdiguera',18892,18895,3,1),(4033,'Lapoblación',28690,28693,3,1),(4034,'Lapuebla de Labarca',216,219,3,1),(4035,'Lardero',21378,21381,3,1),(4036,'Laredo',10738,10743,3,2),(4037,'Larouco',29684,29693,3,4),(4038,'Laroya',2002,2005,3,1),(4039,'Larrabetzu',41866,41869,3,1),(4040,'Larraga',28694,28697,3,1),(4041,'Larraona',28698,28701,3,1),(4042,'Larraul',17550,17553,3,1),(4043,'Larraun',28702,28711,3,4),(4044,'Larrodrigo',33062,33065,3,1),(4045,'Larva',19726,19729,3,1),(4046,'Las Aldehuelas',35996,36001,3,2),(4047,'Las Berlanas',3848,3851,3,1),(4048,'Las Cabezas de San Juan',35286,35291,3,2),(4049,'Las Casas del Conde',33066,33069,3,1),(4050,'Las Cuerlas',43968,43971,3,1),(4051,'Las Gabias',15568,15573,3,2),(4052,'Las Herencias',38784,38789,3,2),(4053,'Las Hormazas',7986,7991,3,2),(4054,'Las Inviernas',16584,16587,3,1),(4055,'Las Labores',12128,12131,3,1),(4056,'Las Majadas',13414,13417,3,1),(4057,'Las Mesas',13418,13421,3,1),(4058,'Las Navas de Jadraque',16588,16591,3,1),(4059,'Las Navas de la Concepción',35292,35295,3,1),(4060,'Las Navas del Marqués',3852,3857,3,2),(4061,'Las Omañas',22350,22353,3,1),(4062,'Las Parras de Castellote',37908,37911,3,1),(4063,'Las Pedroñeras',13422,13425,3,1),(4064,'Las Pedrosas',43972,43977,3,2),(4065,'Las Peñas de Riglos',18896,18909,3,6),(4066,'Las Quintanillas',7992,7995,3,1),(4067,'Las Regueras',2774,2783,3,4),(4068,'Las Rozas de Madrid',26190,26197,3,3),(4069,'Las Rozas de Valdearroyo',10744,10749,3,2),(4070,'Las Torres de Cotillas',27660,27663,3,1),(4071,'Las Tres Villas',2006,2011,3,2),(4072,'Las Valeras',13426,13431,3,2),(4073,'Las Veguillas',33070,33079,3,4),(4074,'Las Ventas con Peña Aguilera',38790,38793,3,1),(4075,'Las Ventas de Retamosa',38794,38797,3,1),(4076,'Las Ventas de San Julián',38798,38801,3,1),(4077,'Lasarte-Oria',17554,17557,3,1),(4078,'Lascellas-Ponzano',18910,18913,3,1),(4079,'Lascuarre',18914,18917,3,1),(4080,'Laspaúles',18918,18927,3,4),(4081,'Laspuña',18928,18931,3,1),(4082,'Lastras de Cuéllar',34428,34431,3,1),(4083,'Lastras del Pozo',34432,34435,3,1),(4084,'Laudio/Llodio',220,223,3,1),(4085,'Láujar de Andarax',2012,2015,3,1),(4086,'Laukiz',41870,41873,3,1),(4087,'Laviana',2784,2801,3,8),(4088,'Laxe',20430,20435,3,2),(4089,'Layana',43978,43981,3,1),(4090,'Layos',38802,38805,3,1),(4091,'Laza',29694,29703,3,4),(4092,'Lazagurría',28712,28715,3,1),(4093,'Lazkao',17558,17561,3,1),(4094,'Leaburu',17562,17565,3,1),(4095,'Leache/Leatxe',28716,28719,3,1),(4096,'Lebrija',35296,35299,3,1),(4097,'Lécera',43982,43985,3,1),(4098,'Lechón',43986,43989,3,1),(4099,'Leciñena',43990,43993,3,1),(4100,'Lecrín',15574,15581,3,3),(4101,'Ledaña',13432,13435,3,1),(4102,'Ledanca',16592,16595,3,1),(4103,'Ledesma',33080,33089,3,4),(4104,'Ledesma de la Cogolla',21382,21385,3,1),(4105,'Ledigos',30704,30707,3,1),(4106,'Ledrada',33090,33093,3,1),(4107,'Leganés',26198,26217,3,9),(4108,'Leganiel',13436,13439,3,1),(4109,'Legarda',28720,28723,3,1),(4110,'Legaria',28724,28727,3,1),(4111,'Legazpi',17566,17571,3,2),(4112,'Legorreta',17572,17575,3,1),(4113,'Legutio',224,231,3,3),(4114,'Leintz-Gatzaga',17576,17579,3,1),(4115,'Leioa',41874,41877,3,1),(4116,'Leiro',29704,29717,3,6),(4117,'Leitza',28728,28731,3,1),(4118,'Leiva',21386,21389,3,1),(4119,'Lekeitio',41878,41881,3,1),(4120,'Lekunberri',28732,28735,3,1),(4121,'Lemoa',41882,41885,3,1),(4122,'Lemoiz',41886,41889,3,1),(4123,'Lena',2802,2827,3,12),(4124,'Lentegí',15582,15585,3,1),(4125,'León',22354,22381,3,13),(4126,'Leoz/Leotz',28736,28741,3,2),(4127,'Lepe',17998,18005,3,3),(4128,'Lerga',28742,28745,3,1),(4129,'Lerín',28746,28749,3,1),(4130,'Lerma',7996,8007,3,5),(4131,'Les',23992,23995,3,1),(4132,'les Alqueries/Alquerías del Niño Perdido',11572,11575,3,1),(4133,'Les Avellanes i Santa Linya',23996,24001,3,2),(4134,'Les Borges Blanques',24002,24005,3,1),(4135,'Les Borges del Camp',36912,36915,3,1),(4136,'Les Cabanyes',6380,6383,3,1),(4137,'les Coves de Vinromà',11576,11579,3,1),(4138,'Les Franqueses del Vallès',6384,6389,3,2),(4139,'Les Llosses',14376,14383,3,3),(4140,'Les Masies de Roda',6390,6393,3,1),(4141,'Les Masies de Voltregà',6394,6399,3,2),(4142,'Les Oluges',24006,24009,3,1),(4143,'Les Piles',36916,36921,3,2),(4144,'Les Planes d\'Hostoles',14384,14389,3,2),(4145,'Les Preses',14390,14393,3,1),(4146,'Les Valls d\'Aguilar',24010,24015,3,2),(4147,'Les Valls de Valira',24016,24019,3,1),(4148,'Lesaka',28750,28755,3,2),(4149,'Letur',642,645,3,1),(4150,'Letux',43994,43997,3,1),(4151,'Leza',232,235,3,1),(4152,'Leza de Río Leza',21390,21393,3,1),(4153,'Lezama',41890,41893,3,1),(4154,'Lezáun',28756,28759,3,1),(4155,'Lezo',17580,17585,3,2),(4156,'Lezuza',646,651,3,2),(4157,'Librilla',27664,27667,3,1),(4158,'Libros',37912,37915,3,1),(4159,'Liceras',36002,36005,3,1),(4160,'Lidón',37916,37919,3,1),(4161,'Liédena',28760,28763,3,1),(4162,'Liendo',10750,10753,3,1),(4163,'Liérganes',10754,10761,3,3),(4164,'Liétor',652,659,3,3),(4165,'Líjar',2016,2019,3,1),(4166,'Lillo',38806,38809,3,1),(4167,'Limpias',10762,10767,3,2),(4168,'Linares',19730,19737,3,3),(4169,'Linares de la Sierra',18006,18009,3,1),(4170,'Linares de Mora',37920,37923,3,1),(4171,'Linares de Riofrío',33094,33097,3,1),(4172,'Linyola',24020,24023,3,1),(4173,'Liria',39974,39977,3,1),(4174,'Litago',43998,44001,3,1),(4175,'Lituénigo',44002,44005,3,1),(4176,'Lizartza',17586,17589,3,1),(4177,'Lizoáin-Arriasgoiti',28764,28773,3,4),(4178,'Lladó',14394,14397,3,1),(4179,'Lladorre',24024,24031,3,3),(4180,'Lladurs',24032,24037,3,2),(4181,'Llagostera',14398,14401,3,1),(4182,'Llamas de la Ribera',22382,22385,3,1),(4183,'Llambilles',14402,14405,3,1),(4184,'Llanars',14406,14409,3,1),(4185,'Llançà',14410,14413,3,1),(4186,'Llanera',2828,2849,3,10),(4187,'Llanera de Ranes',39978,39981,3,1),(4188,'Llanes',2850,2869,3,9),(4189,'Llano de Bureba',8008,8011,3,1),(4190,'Llano de Olmedo',40880,40883,3,1),(4191,'Llanos del Caudillo',12132,12135,3,1),(4192,'Llardecans',24038,24041,3,1),(4193,'Llaurí',39982,39985,3,1),(4194,'Llavorsí',24042,24047,3,2),(4195,'Lledó',37924,37927,3,1),(4196,'Lleida',24048,24089,3,20),(4197,'Llera',4840,4843,3,1),(4198,'Llerena',4844,4847,3,1),(4199,'Llers',14414,14417,3,1),(4200,'Lles de Cerdanya',24090,24093,3,1),(4201,'Llíber',1402,1405,3,1),(4202,'Lliçà d\'Amunt',6400,6403,3,1),(4203,'Lliçà de Vall',6404,6407,3,1),(4204,'Llimiana',24094,24099,3,2),(4205,'Llinars del Vallès',6408,6411,3,1),(4206,'Llívia',14418,14421,3,1),(4207,'Llobera',24100,24103,3,1),(4208,'Llombay',39986,39989,3,1),(4209,'Llorac',36922,36925,3,1),(4210,'Llorenç del Penedès',36926,36931,3,2),(4211,'Lloret de Mar',14422,14427,3,2),(4212,'Lloret de Vistalegre',5438,5441,3,1),(4213,'Lloseta',5442,5445,3,1),(4214,'Llubí',5446,5449,3,1),(4215,'Lluçà',6412,6415,3,1),(4216,'Llucena/Lucena del Cid',11580,11583,3,1),(4217,'Llucmajor',5450,5459,3,4),(4218,'Loarre',18932,18935,3,1),(4219,'Lobeira',29718,29731,3,6),(4220,'Lobera de Onsella',44006,44009,3,1),(4221,'Lobios',29732,29747,3,7),(4222,'Lobón',4848,4853,3,2),(4223,'Lobras',15586,15589,3,1),(4224,'Lodosa',28774,28777,3,1),(4225,'Loeches',26218,26221,3,1),(4226,'Logroño',21394,21413,3,9),(4227,'Logrosán',9602,9605,3,1),(4228,'Loiu',41894,41897,3,1),(4229,'Loja',15590,15601,3,5),(4230,'Loma de Ucieza',30708,30717,3,4),(4231,'Lomas',30718,30721,3,1),(4232,'Lominchar',38810,38813,3,1),(4233,'Lomoviejo',40884,40887,3,1),(4234,'Longares',44010,44013,3,1),(4235,'Longás',44014,44017,3,1),(4236,'Lónguida/Longida',28778,28785,3,3),(4237,'Lopera',19738,19741,3,1),(4238,'Loporzano',18936,18943,3,3),(4239,'Lora de Estepa',35300,35303,3,1),(4240,'Lora del Río',35304,35307,3,1),(4241,'Loranca de Tajuña',16596,16599,3,1),(4242,'Lorca',27668,27705,3,18),(4243,'Lorcha/l\'Orxa',1406,1409,3,1),(4244,'Loriguilla',39990,39993,3,1),(4245,'Lorquí',27706,27709,3,1),(4246,'Los Alcázares',27710,27713,3,1),(4247,'Los Altos',8012,8019,3,3),(4248,'Los Arcos',28786,28789,3,1),(4249,'Los Ausines',8020,8027,3,3),(4250,'Los Balbases',8028,8031,3,1),(4251,'Los Barrios',10332,10337,3,2),(4252,'Los Barrios de Bureba',8032,8037,3,2),(4253,'Los Barrios de Luna',22386,22391,3,2),(4254,'Los Blázquez',12678,12681,3,1),(4255,'Los Cerralbos',38814,38817,3,1),(4256,'Los Corrales',35308,35311,3,1),(4257,'Los Corrales de Buelna',10768,10775,3,3),(4258,'Los Cortijos',12136,12139,3,1),(4259,'Los Fayos',44018,44021,3,1),(4260,'Los Gallardos',2020,2027,3,3),(4261,'Los Guájares',15602,15605,3,1),(4262,'Los Hinojosos',13440,13443,3,1),(4263,'Los Huertos',34436,34439,3,1),(4264,'Los Llanos de Tormes',3858,3861,3,1),(4265,'Los Marines',18010,18013,3,1),(4266,'Los Molares',35312,35315,3,1),(4267,'Los Molinos',26222,26225,3,1),(4268,'Los Montesinos',1410,1413,3,1),(4269,'Los Navalmorales',38818,38821,3,1),(4270,'Los Navalucillos',38822,38829,3,3),(4271,'Los Olmos',37928,37931,3,1),(4272,'Los Palacios y Villafranca',35316,35323,3,3),(4273,'Los Pintanos',44022,44025,3,1),(4274,'Los Pozuelos de Calatrava',12140,12143,3,1),(4275,'Los Rábanos',36006,36011,3,2),(4276,'Los Santos',33098,33101,3,1),(4277,'Los Santos de la Humosa',26226,26229,3,1),(4278,'Los Santos de Maimona',4854,4857,3,1),(4279,'Los Tojos',10776,10781,3,2),(4280,'Los Valdecolmenas',13444,13447,3,1),(4281,'Los Villares',19742,19745,3,1),(4282,'Los Villares de Soria',36012,36017,3,2),(4283,'Los Yébenes',38830,38835,3,2),(4284,'Losa del Obispo',39994,39997,3,1),(4285,'Losacino',42538,42543,3,2),(4286,'Losacio',42544,42547,3,1),(4287,'Losar de la Vera',9606,9611,3,2),(4288,'Loscorrales',18944,18947,3,1),(4289,'Loscos',37932,37937,3,2),(4290,'Lourenzá',25134,25141,3,3),(4291,'Lousame',20436,20447,3,5),(4292,'Lozoya',26230,26233,3,1),(4293,'Lozoyuela-Navas-Sieteiglesias',26234,26241,3,3),(4294,'Lubián',42548,42555,3,3),(4295,'Lubrín',2028,2031,3,1),(4296,'Lucainena de las Torres',2032,2039,3,3),(4297,'Lúcar',2040,2045,3,2),(4298,'Lucena',12682,12695,3,6),(4299,'Lucena de Jalón',44026,44029,3,1),(4300,'Lucena del Puerto',18014,18017,3,1),(4301,'Luceni',44030,44033,3,1),(4302,'Luchente',39998,40001,3,1),(4303,'Luciana',12144,12147,3,1),(4304,'Lucillo',22392,22399,3,3),(4305,'Lucillos',38836,38839,3,1),(4306,'Ludiente',11584,11587,3,1),(4307,'Luelmo',42556,42559,3,1),(4308,'Luena',10782,10789,3,3),(4309,'Luesia',44034,44037,3,1),(4310,'Luesma',44038,44041,3,1),(4311,'Lugar Nuevo de Fenollet',40002,40005,3,1),(4312,'Lugar Nuevo de la Corona',40006,40009,3,1),(4313,'Lugar Nuevo de San Jerónimo',40010,40013,3,1),(4314,'Lugo',25142,25205,3,31),(4315,'Lugros',15606,15609,3,1),(4316,'Lújar',15610,15613,3,1),(4317,'Lumbier',28790,28793,3,1),(4318,'Lumbrales',33102,33105,3,1),(4319,'Lumbreras',21414,21417,3,1),(4320,'Lumpiaque',44042,44045,3,1),(4321,'Luna',44046,44051,3,2),(4322,'Lupiana',16600,16603,3,1),(4323,'Lupiñén-Ortilla',18948,18953,3,2),(4324,'Lupión',19746,19751,3,2),(4325,'Luque',12696,12703,3,3),(4326,'Luquin',28794,28797,3,1),(4327,'Luyego',22400,22405,3,2),(4328,'Luzaga',16604,16607,3,1),(4329,'Luzaide/Valcarlos',28798,28803,3,2),(4330,'Luzón',16608,16611,3,1),(4331,'Macael',2046,2049,3,1),(4332,'Maçanet de Cabrenys',14428,14433,3,2),(4333,'Maçanet de la Selva',14434,14437,3,1),(4334,'Macastre',40014,40017,3,1),(4335,'Maceda',29748,29763,3,7),(4336,'Machacón',33106,33109,3,1),(4337,'Macharaviaya',27144,27147,3,1),(4338,'Macotera',33110,33113,3,1),(4339,'Madarcos',26242,26245,3,1),(4340,'Maderuelo',34440,34443,3,1),(4341,'Madremanya',14438,14441,3,1),(4342,'Madrid',26246,26359,3,56),(4343,'Madridanos',42560,42563,3,1),(4344,'Madridejos',38840,38843,3,1),(4345,'Madrigal de la Vera',9612,9615,3,1),(4346,'Madrigal de las Altas Torres',3862,3865,3,1),(4347,'Madrigal del Monte',8038,8041,3,1),(4348,'Madrigalejo',9616,9619,3,1),(4349,'Madrigalejo del Monte',8042,8047,3,2),(4350,'Madrigueras',660,663,3,1),(4351,'Madroñal',33114,33117,3,1),(4352,'Madroñera',9620,9623,3,1),(4353,'Maella',44052,44055,3,1),(4354,'Maello',3866,3869,3,1),(4355,'Magacela',4858,4861,3,1),(4356,'Magallón',44056,44059,3,1),(4357,'Magán',38844,38847,3,1),(4358,'Magaña',36018,36021,3,1),(4359,'Magaz de Cepeda',22406,22411,3,2),(4360,'Magaz de Pisuerga',30722,30725,3,1),(4361,'Maguilla',4862,4865,3,1),(4362,'Mahamud',8048,8051,3,1),(4363,'Mahide',42564,42571,3,3),(4364,'Mahora',664,667,3,1),(4365,'Maià de Montcal',14442,14445,3,1),(4366,'Maials',24104,24107,3,1),(4367,'Maicas',37938,37941,3,1),(4368,'Mainar',44060,44063,3,1),(4369,'Maire de Castroponce',42572,42575,3,1),(4370,'Mairena del Alcor',35324,35327,3,1),(4371,'Mairena del Aljarafe',35328,35335,3,3),(4372,'Majadahonda',26360,26367,3,3),(4373,'Majadas',9624,9627,3,1),(4374,'Majaelrayo',16612,16615,3,1),(4375,'Maján',36022,36025,3,1),(4376,'Málaga',27148,27205,3,28),(4377,'Málaga del Fresno',16616,16619,3,1),(4378,'Malagón',12148,12157,3,4),(4379,'Malaguilla',16620,16623,3,1),(4380,'Malanquilla',44064,44067,3,1),(4381,'Malcocinado',4866,4869,3,1),(4382,'Maldà',24108,24111,3,1),(4383,'Maleján',44068,44071,3,1),(4384,'Malgrat de Mar',6416,6419,3,1),(4385,'Malla',6420,6423,3,1),(4386,'Mallabia',41898,41901,3,1),(4387,'Mallén',44072,44075,3,1),(4388,'Malón',44076,44079,3,1),(4389,'Malpartida',33118,33121,3,1),(4390,'Malpartida de Cáceres',9628,9633,3,2),(4391,'Malpartida de Corneja',3870,3873,3,1),(4392,'Malpartida de la Serena',4870,4873,3,1),(4393,'Malpartida de Plasencia',9634,9643,3,4),(4394,'Malpica de Bergantiños',20448,20455,3,3),(4395,'Malpica de Tajo',38848,38853,3,2),(4396,'Maluenda',44080,44083,3,1),(4397,'Malva',42576,42579,3,1),(4398,'Mamblas',3874,3877,3,1),(4399,'Mambrilla de Castrejón',8052,8055,3,1),(4400,'Mambrillas de Lara',8056,8061,3,2),(4401,'Mamolar',8062,8065,3,1),(4402,'Manacor',5460,5473,3,6),(4403,'Mañaria',41902,41905,3,1),(4404,'Mancera de Abajo',33122,33125,3,1),(4405,'Mancera de Arriba',3878,3881,3,1),(4406,'Mancha Real',19752,19757,3,2),(4407,'Manchita',4874,4877,3,1),(4408,'Manchones',44084,44087,3,1),(4409,'Manciles',8066,8069,3,1),(4410,'Mancor de la Vall',5474,5477,3,1),(4411,'Mandayona',16624,16627,3,1),(4412,'Mañeru',28804,28807,3,1),(4413,'Manganeses de la Lampreana',42580,42585,3,2),(4414,'Manganeses de la Polvorosa',42586,42589,3,1),(4415,'Manilva',27206,27211,3,2),(4416,'Manises',40018,40021,3,1),(4417,'Manjabálago y Ortigosa de Rioalmar',3882,3885,3,1),(4418,'Manjarrés',21418,21421,3,1),(4419,'Manlleu',6424,6427,3,1),(4420,'Mañón',20456,20461,3,2),(4421,'Manquillos',30726,30729,3,1),(4422,'Manresa',6428,6437,3,4),(4423,'Mansilla de la Sierra',21422,21425,3,1),(4424,'Mansilla de las Mulas',22412,22417,3,2),(4425,'Mansilla Mayor',22418,22421,3,1),(4426,'Mantiel',16628,16631,3,1),(4427,'Mantinos',30730,30733,3,1),(4428,'Manuel',40022,40025,3,1),(4429,'Manzanal de Arriba',42590,42595,3,2),(4430,'Manzanal de los Infantes',42596,42601,3,2),(4431,'Manzanal del Barco',42602,42605,3,1),(4432,'Manzanares',12158,12161,3,1),(4433,'Manzanares de Rioja',21426,21429,3,1),(4434,'Manzanares el Real',26368,26375,3,3),(4435,'Manzaneda',29764,29777,3,6),(4436,'Manzaneque',38854,38857,3,1),(4437,'Manzanera',37942,37949,3,3),(4438,'Manzanilla',18018,18021,3,1),(4439,'Manzanillo',40888,40891,3,1),(4440,'Maó-Mahón',5714,5727,3,6),(4441,'Maqueda',38858,38861,3,1),(4442,'Mara',44088,44091,3,1),(4443,'Maracena',15614,15617,3,1),(4444,'Maraña',22422,22425,3,1),(4445,'Maranchón',16632,16639,3,3),(4446,'Marañón',28808,28811,3,1),(4447,'Marazoleja',34444,34447,3,1),(4448,'Marazuela',34448,34451,3,1),(4449,'Marbella',27212,27227,3,7),(4450,'Marçà',36932,36937,3,2),(4451,'Marchagaz',9644,9647,3,1),(4452,'Marchal',15618,15621,3,1),(4453,'Marchamalo',16640,16643,3,1),(4454,'Marchena',35336,35339,3,1),(4455,'Marcilla',28812,28815,3,1),(4456,'Marcilla de Campos',30734,30737,3,1),(4457,'Margalef',36938,36941,3,1),(4458,'Marganell',6438,6441,3,1),(4459,'María',2050,2055,3,2),(4460,'María de Huerva',44092,44095,3,1),(4461,'Maria de la Salut',5478,5481,3,1),(4462,'Mariana',13448,13453,3,2),(4463,'Marín',31632,31647,3,7),(4464,'Marina de Cudeyo',10790,10799,3,4),(4465,'Marinaleda',35340,35343,3,1),(4466,'Marines',40026,40029,3,1),(4467,'Marjaliza',38862,38865,3,1),(4468,'Markina-Xemein',41906,41913,3,3),(4469,'Marlín',3886,3889,3,1),(4470,'Marmolejo',19758,19761,3,1),(4471,'Marracos',44096,44099,3,1),(4472,'Marratxí',5482,5485,3,1),(4473,'Marrupe',38866,38869,3,1),(4474,'Martiago',33126,33129,3,1),(4475,'Martiherrero',3890,3893,3,1),(4476,'Martín de la Jara',35344,35347,3,1),(4477,'Martín de Yeltes',33130,33135,3,2),(4478,'Martín del Río',37950,37955,3,2),(4479,'Martín Miguel',34452,34455,3,1),(4480,'Martín Muñoz de la Dehesa',34456,34459,3,1),(4481,'Martín Muñoz de las Posadas',34460,34463,3,1),(4482,'Martinamor',33136,33139,3,1),(4483,'Martínez',3894,3899,3,2),(4484,'Martorell',6442,6445,3,1),(4485,'Martorelles',6446,6449,3,1),(4486,'Martos',19762,19769,3,3),(4487,'Marugán',34464,34467,3,1),(4488,'Maruri-Jatabe',41914,41917,3,1),(4489,'Marzales',40892,40895,3,1),(4490,'Mas de Barberans',36942,36945,3,1),(4491,'Mas de las Matas',37956,37959,3,1),(4492,'Masalavés',40030,40033,3,1),(4493,'Masalfasar',40034,40037,3,1),(4494,'Masamagrell',40038,40041,3,1),(4495,'Masanasa',40042,40045,3,1),(4496,'Masarac',14446,14451,3,2),(4497,'Mascaraque',38870,38873,3,1),(4498,'Masdenverge',36946,36951,3,2),(4499,'Masegosa',13454,13457,3,1),(4500,'Masegoso',668,671,3,1),(4501,'Masegoso de Tajuña',16644,16647,3,1),(4502,'Maside',29778,29795,3,8),(4503,'Masllorenç',36952,36955,3,1),(4504,'Maspujols',36956,36959,3,1),(4505,'Masquefa',6450,6455,3,2),(4506,'Massalcoreig',24112,24115,3,1),(4507,'Massanes',14452,14455,3,1),(4508,'Massoteres',24116,24119,3,1),(4509,'Masueco',33140,33143,3,1),(4510,'Mata de Alcántara',9648,9651,3,1),(4511,'Mata de Cuéllar',34468,34471,3,1),(4512,'Matabuena',34472,34475,3,1),(4513,'Matadeón de los Oteros',22426,22429,3,1),(4514,'Matadepera',6456,6459,3,1),(4515,'Matalebreras',36026,36029,3,1),(4516,'Matallana de Torío',22430,22443,3,6),(4517,'Matamala de Almazán',36030,36033,3,1),(4518,'Matanza',22444,22447,3,1),(4519,'Matapozuelos',40896,40901,3,2),(4520,'Mataró',6460,6469,3,4),(4521,'Matarrubia',16648,16651,3,1),(4522,'Matet',11588,11591,3,1),(4523,'Matilla de Arzón',42606,42609,3,1),(4524,'Matilla de los Caños',40902,40905,3,1),(4525,'Matilla de los Caños del Río',33144,33149,3,2),(4526,'Matilla la Seca',42610,42613,3,1),(4527,'Matillas',16652,16655,3,1),(4528,'Matute',21430,21433,3,1),(4529,'Mayalde',42614,42617,3,1),(4530,'Mayorga',40906,40909,3,1),(4531,'Mazaleón',37960,37963,3,1),(4532,'Mazarambroz',38874,38879,3,2),(4533,'Mazarete',16656,16659,3,1),(4534,'Mazaricos',20462,20467,3,2),(4535,'Mazariegos',30738,30741,3,1),(4536,'Mazarrón',27714,27735,3,10),(4537,'Mazcuerras',10800,10805,3,2),(4538,'Mazuecos',16660,16663,3,1),(4539,'Mazuecos de Valdeginate',30742,30745,3,1),(4540,'Mazuela',8070,8073,3,1),(4541,'Meaño',31648,31657,3,4),(4542,'Mecerreyes',8074,8077,3,1),(4543,'Meco',26376,26379,3,1),(4544,'Medellín',4878,4881,3,1),(4545,'Mediana de Aragón',44100,44103,3,1),(4546,'Mediana de Voltoya',3900,3903,3,1),(4547,'Medina de las Torres',4882,4885,3,1),(4548,'Medina de Pomar',8078,8089,3,5),(4549,'Medina de Rioseco',40910,40915,3,2),(4550,'Medina del Campo',40916,40923,3,3),(4551,'Medina-Sidonia',10338,10343,3,2),(4552,'Medinaceli',36034,36043,3,4),(4553,'Medinilla',3904,3907,3,1),(4554,'Medio Cudeyo',10806,10817,3,5),(4555,'Mediona',6470,6473,3,1),(4556,'Medranda',16664,16667,3,1),(4557,'Medrano',21434,21437,3,1),(4558,'Megeces',40924,40927,3,1),(4559,'Megina',16668,16671,3,1),(4560,'Meira',25206,25213,3,3),(4561,'Meis',31658,31665,3,3),(4562,'Mejorada',38880,38885,3,2),(4563,'Mejorada del Campo',26380,26383,3,1),(4564,'Melgar de Abajo',40928,40931,3,1),(4565,'Melgar de Arriba',40932,40935,3,1),(4566,'Melgar de Fernamental',8090,8097,3,3),(4567,'Melgar de Tera',42618,42621,3,1),(4568,'Melgar de Yuso',30746,30749,3,1),(4569,'Meliana',40046,40049,3,1),(4570,'Mélida',28816,28819,3,1),(4571,'Melide',20468,20477,3,4),(4573,'Melón',29796,29801,3,2),(4574,'Melque de Cercos',34476,34479,3,1),(4575,'Membibre de la Hoz',34480,34483,3,1),(4576,'Membribe de la Sierra',33150,33153,3,1),(4577,'Membrilla',12162,12165,3,1),(4578,'Membrillera',16672,16675,3,1),(4579,'Membrío',9652,9655,3,1),(4580,'Meñaka',41918,41921,3,1),(4581,'Menàrguens',24120,24123,3,1),(4582,'Menasalbas',38886,38893,3,3),(4583,'Mendaro',17590,17593,3,1),(4584,'Mendata',41922,41925,3,1),(4585,'Mendavia',28820,28823,3,1),(4586,'Mendaza',28824,28829,3,2),(4587,'Mendexa',41926,41929,3,1),(4588,'Mendigorría',28830,28833,3,1),(4589,'Meneses de Campos',30750,30753,3,1),(4590,'Mengabril',4886,4889,3,1),(4591,'Mengamuñoz',3908,3911,3,1),(4592,'Mengíbar',19770,19773,3,1),(4593,'Méntrida',38894,38897,3,1),(4594,'Mequinenza',44104,44107,3,1),(4595,'Meranges',14456,14459,3,1),(4596,'Mérida',4890,4893,3,1),(4597,'Merindad de Cuesta-Urria',8098,8107,3,4),(4598,'Merindad de Montija',8108,8113,3,2),(4599,'Merindad de Río Ubierna',8114,8125,3,5),(4600,'Merindad de Sotoscueva',8126,8133,3,3),(4601,'Merindad de Valdeporres',8134,8141,3,3),(4602,'Merindad de Valdivielso',8142,8145,3,1),(4603,'Meruelo',10818,10821,3,1),(4604,'Mesas de Ibor',9656,9659,3,1),(4605,'Mesegar de Corneja',3912,3915,3,1),(4606,'Mesegar de Tajo',38898,38901,3,1),(4607,'Mesía',20478,20485,3,3),(4608,'Mesones de Isuela',44108,44111,3,1),(4609,'Mestanza',12166,12171,3,2),(4610,'Metauten',28834,28837,3,1),(4611,'Mezalocha',44112,44115,3,1),(4612,'Mezquita de Jarque',37964,37967,3,1),(4613,'Miajadas',9660,9665,3,2),(4614,'Mianos',44116,44119,3,1),(4615,'Micereces de Tera',42622,42625,3,1),(4616,'Micieces de Ojeda',30754,30757,3,1),(4617,'Miedes de Aragón',44120,44123,3,1),(4618,'Miedes de Atienza',16676,16679,3,1),(4619,'Miengo',10822,10829,3,3),(4620,'Miera',10830,10837,3,3),(4621,'Mieres',14460,14489,3,14),(4622,'Mieres',2870,2871,3,0),(4623,'Mieza',33154,33157,3,1),(4624,'Miguel Esteban',38902,38907,3,2),(4625,'Migueláñez',34484,34487,3,1),(4626,'Miguelturra',12172,12177,3,2),(4627,'Mijares',3916,3919,3,1),(4628,'Mijas',27228,27239,3,5),(4629,'Milagro',28838,28841,3,1),(4630,'Milagros',8146,8149,3,1),(4631,'Millana',16680,16683,3,1),(4632,'Millanes',9666,9669,3,1),(4633,'Millares',40050,40053,3,1),(4634,'Millena',1414,1417,3,1),(4635,'Milles de la Polvorosa',42626,42629,3,1),(4636,'Milmarcos',16684,16687,3,1),(4637,'Minas de Riotinto',18022,18027,3,2),(4638,'Minaya',672,675,3,1),(4639,'Minglanilla',13458,13461,3,1),(4640,'Mingorría',3920,3925,3,2),(4641,'Miño',20486,20495,3,4),(4642,'Miño de Medinaceli',36044,36049,3,2),(4643,'Miño de San Esteban',36050,36053,3,1),(4644,'Mira',13462,13465,3,1),(4645,'Mirabel',9670,9673,3,1),(4646,'Mirabueno',16688,16691,3,1),(4647,'Miraflores de la Sierra',26384,26387,3,1),(4648,'Mirafuentes',28842,28845,3,1),(4649,'Miralcamp',24124,24127,3,1),(4650,'Miralrío',16692,16695,3,1),(4651,'Miramar',40054,40057,3,1),(4652,'Mirambel',37968,37971,3,1),(4653,'Miranda de Arga',28846,28851,3,2),(4654,'Miranda de Azán',33158,33161,3,1),(4655,'Miranda de Ebro',8150,8163,3,6),(4656,'Miranda del Castañar',33162,33165,3,1),(4657,'Mirandilla',4894,4897,3,1),(4658,'Miraveche',8164,8167,3,1),(4659,'Miravet',36960,36963,3,1),(4660,'Miravete de la Sierra',37972,37975,3,1),(4661,'Mironcillo',3926,3929,3,1),(4662,'Mirueña de los Infanzones',3930,3933,3,1),(4663,'Mislata',40058,40061,3,1),(4664,'Moaña',31666,31679,3,6),(4665,'Mocejón',38908,38911,3,1),(4666,'Mochales',16696,16699,3,1),(4667,'Moclín',15622,15629,3,3),(4668,'Moclinejo',27240,27243,3,1),(4669,'Modúbar de la Emparedada',8168,8171,3,1),(4670,'Moeche',20496,20501,3,2),(4671,'Mogarraz',33166,33169,3,1),(4672,'Mogente',40062,40065,3,1),(4673,'Moguer',18028,18033,3,2),(4674,'Mohedas de Granadilla',9674,9677,3,1),(4675,'Mohedas de la Jara',38912,38917,3,2),(4676,'Mohernando',16700,16703,3,1),(4677,'Moià',6474,6477,3,1),(4678,'Mojácar',2056,2061,3,2),(4679,'Mojados',40936,40939,3,1),(4680,'Molacillos',42630,42633,3,1),(4681,'Molezuelas de la Carballeda',42634,42637,3,1),(4682,'Molina de Aragón',16704,16715,3,5),(4683,'Molina de Segura',27736,27747,3,5),(4684,'Molinaseca',22448,22453,3,2),(4685,'Molinicos',676,683,3,3),(4686,'Molinillo',33170,33173,3,1),(4687,'Molinos',37976,37979,3,1),(4688,'Molinos de Duero',36054,36059,3,2),(4689,'Molins de Rei',6478,6481,3,1),(4690,'Molledo',10838,10847,3,4),(4691,'Mollerussa',24128,24131,3,1),(4692,'Mollet de Peralada',14490,14493,3,1),(4693,'Mollet del Vallès',6482,6487,3,2),(4694,'Mollina',27244,27247,3,1),(4695,'Molló',14494,14497,3,1),(4696,'Molvízar',15630,15633,3,1),(4697,'Mombeltrán',3934,3939,3,2),(4698,'Momblona',36060,36063,3,1),(4699,'Mombuey',42638,42645,3,3),(4700,'Monachil',15634,15639,3,2),(4701,'Monasterio',16716,16719,3,1),(4702,'Monasterio de la Sierra',8172,8175,3,1),(4703,'Monasterio de Rodilla',8176,8179,3,1),(4704,'Monasterio de Vega',40940,40943,3,1),(4705,'Moncada',40066,40069,3,1),(4706,'Moncalvillo',8180,8183,3,1),(4707,'Moncofa',11592,11595,3,1),(4708,'Monda',27248,27251,3,1),(4709,'Mondariz',31680,31695,3,7),(4710,'Mondariz-Balneario',31696,31699,3,1),(4711,'Mondéjar',16720,16723,3,1),(4712,'Mondoñedo',25214,25229,3,7),(4713,'Monegrillo',44124,44127,3,1),(4714,'Monesma y Cajigar',18954,18957,3,1),(4715,'Monesterio',4898,4901,3,1),(4716,'Moneva',44128,44131,3,1),(4717,'Monfarracinos',42646,42649,3,1),(4718,'Monfero',20502,20511,3,4),(4719,'Monflorite-Lascasas',18958,18963,3,2),(4720,'Monforte de la Sierra',33174,33177,3,1),(4721,'Monforte de Lemos',25230,25261,3,15),(4722,'Monforte de Moyuela',37980,37983,3,1),(4723,'Monforte del Cid',1418,1423,3,2),(4724,'Monistrol de Calders',6488,6491,3,1),(4725,'Monistrol de Montserrat',6492,6495,3,1),(4726,'Monleón',33178,33181,3,1),(4727,'Monleras',33182,33185,3,1),(4728,'Monóvar/Monòver',1424,1429,3,2),(4729,'Monreal de Ariza',44132,44137,3,2),(4730,'Monreal del Campo',37984,37987,3,1),(4731,'Monreal del Llano',13466,13469,3,1),(4732,'Monreal/Elo',28852,28855,3,1),(4733,'Monroy',9678,9681,3,1),(4734,'Monroyo',37988,37991,3,1),(4735,'Monsagro',33186,33189,3,1),(4736,'Monsalupe',3940,3943,3,1),(4737,'Mont-ral',36964,36969,3,2),(4738,'Mont-ras',14498,14501,3,1),(4739,'Mont-roig del Camp',36970,36977,3,3),(4740,'Montagut i Oix',14502,14507,3,2),(4741,'Montalbán',37992,37997,3,2),(4742,'Montalbán de Córdoba',12704,12707,3,1),(4743,'Montalbanejo',13470,13473,3,1),(4744,'Montalbo',13474,13477,3,1),(4745,'Montalvos',684,687,3,1),(4746,'Montamarta',42650,42653,3,1),(4747,'Montán',11596,11599,3,1),(4748,'Montánchez',9682,9685,3,1),(4749,'Montanejos',11600,11603,3,1),(4750,'Montanuy',18964,18973,3,4),(4751,'Montarrón',16724,16727,3,1),(4752,'Montaverner',40070,40073,3,1),(4753,'Montblanc',36978,36989,3,5),(4754,'Montbrió del Camp',36990,36993,3,1),(4755,'Montcada i Reixac',6496,6499,3,1),(4756,'Montclar',6500,6503,3,1),(4757,'Monteagudo',28856,28859,3,1),(4758,'Monteagudo de las Salinas',13478,13481,3,1),(4759,'Monteagudo de las Vicarías',36064,36067,3,1),(4760,'Monteagudo del Castillo',37998,38001,3,1),(4761,'Montealegre de Campos',40944,40949,3,2),(4762,'Montealegre del Castillo',688,691,3,1),(4763,'Montearagón',38918,38921,3,1),(4764,'Montecorto',27252,27253,3,0),(4765,'Montederramo',29802,29811,3,4),(4766,'Montefrío',15640,15643,3,1),(4767,'Montehermoso',9686,9689,3,1),(4768,'Montejaque',27254,27257,3,1),(4769,'Montejícar',15644,15647,3,1),(4770,'Montejo',33190,33193,3,1),(4771,'Montejo de Arévalo',34488,34491,3,1),(4772,'Montejo de la Sierra',26388,26391,3,1),(4773,'Montejo de la Vega de la Serrezuela',34492,34495,3,1),(4774,'Montejo de Tiermes',36068,36081,3,6),(4775,'Montellà i Martinet',24132,24137,3,2),(4776,'Montellano',35348,35351,3,1),(4777,'Montemayor',12708,12713,3,2),(4778,'Montemayor de Pililla',40950,40953,3,1),(4779,'Montemayor del Río',33194,33197,3,1),(4780,'Montemolín',4902,4909,3,3),(4781,'Montenegro de Cameros',36082,36085,3,1),(4782,'Monterde',44138,44141,3,1),(4783,'Monterde de Albarracín',38002,38005,3,1),(4784,'Monterrei',29812,29819,3,3),(4785,'Monterroso',25262,25273,3,5),(4786,'Monterrubio',34496,34499,3,1),(4787,'Monterrubio de Armuña',33198,33201,3,1),(4788,'Monterrubio de la Demanda',8184,8187,3,1),(4789,'Monterrubio de la Serena',4910,4913,3,1),(4790,'Monterrubio de la Sierra',33202,33205,3,1),(4791,'Montesa',40074,40077,3,1),(4792,'Montesclaros',38922,38925,3,1),(4793,'Montesquiu',6504,6507,3,1),(4794,'Montferrer i Castellbò',24138,24145,3,3),(4795,'Montferri',36994,36997,3,1),(4796,'Montgai',24146,24151,3,2),(4797,'Montgat',6508,6511,3,1),(4798,'Montichelvo',40078,40081,3,1),(4799,'Montiel',12178,12181,3,1),(4800,'Montijo',4914,4925,3,5),(4801,'Montilla',12714,12717,3,1),(4802,'Montillana',15648,15651,3,1),(4803,'Montizón',19774,19781,3,3),(4804,'Montmajor',6512,6515,3,1),(4805,'Montmaneu',6516,6519,3,1),(4806,'Montmeló',6520,6523,3,1),(4807,'Montoliu de Lleida',24152,24155,3,1),(4808,'Montoliu de Segarra',24156,24159,3,1),(4809,'Montón',44142,44145,3,1),(4810,'Montorio',8188,8191,3,1),(4811,'Montornès de Segarra',24160,24163,3,1),(4812,'Montornès del Vallès',6524,6527,3,1),(4813,'Montoro',12718,12721,3,1),(4814,'Montroy',40082,40085,3,1),(4815,'Montseny',6528,6531,3,1),(4816,'Montserrat',40086,40089,3,1),(4817,'Montuïri',5486,5489,3,1),(4818,'Monturque',12722,12725,3,1),(4819,'Monzón',18974,18981,3,3),(4820,'Monzón de Campos',30758,30763,3,2),(4821,'Mora',38926,38929,3,1),(4822,'Móra d\'Ebre',36998,37001,3,1),(4823,'Mora de Rubielos',38006,38009,3,1),(4824,'Móra la Nova',37002,37005,3,1),(4825,'Moradillo de Roa',8192,8195,3,1),(4826,'Moral de Calatrava',12182,12185,3,1),(4827,'Moral de Hornuez',34500,34503,3,1),(4828,'Moral de la Reina',40954,40957,3,1),(4829,'Moral de Sayago',42654,42657,3,1),(4830,'Moraleda de Zafayona',15652,15655,3,1),(4831,'Moraleja',9690,9693,3,1),(4832,'Moraleja de Enmedio',26392,26395,3,1),(4833,'Moraleja de las Panaderas',40958,40961,3,1),(4834,'Moraleja de Matacabras',3944,3947,3,1),(4835,'Moraleja de Sayago',42658,42661,3,1),(4836,'Moraleja del Vino',42662,42665,3,1),(4837,'Morales de Campos',40962,40965,3,1),(4838,'Morales de Rey',42666,42669,3,1),(4839,'Morales de Toro',42670,42673,3,1),(4840,'Morales de Valverde',42674,42677,3,1),(4841,'Morales del Vino',42678,42683,3,2),(4842,'Moralina',42684,42687,3,1),(4843,'Moralzarzal',26396,26399,3,1),(4844,'Moraña',31700,31707,3,3),(4845,'Morasverdes',33206,33209,3,1),(4846,'Morata de Jalón',44146,44149,3,1),(4847,'Morata de Jiloca',44150,44153,3,1),(4848,'Morata de Tajuña',26400,26403,3,1),(4849,'Moratalla',27748,27767,3,9),(4850,'Moratilla de los Meleros',16728,16731,3,1),(4851,'Moratinos',30764,30767,3,1),(4852,'Morcillo',9694,9697,3,1),(4853,'Morcín',2872,2879,3,3),(4854,'Moreda de Álava/Moreda Araba',236,239,3,1),(4855,'Morelábor',15656,15659,3,1),(4856,'Morella',11604,11607,3,1),(4857,'Morenilla',16732,16735,3,1),(4858,'Morentin',28860,28863,3,1),(4859,'Moreruela de los Infanzones',42688,42691,3,1),(4860,'Moreruela de Tábara',42692,42695,3,1),(4861,'Morés',44154,44159,3,2),(4862,'Morga',41930,41933,3,1),(4863,'Moriles',12726,12729,3,1),(4864,'Morille',33210,33213,3,1),(4865,'Moríñigo',33214,33217,3,1),(4866,'Moriscos',33218,33221,3,1),(4867,'Morón de Almazán',36086,36091,3,2),(4868,'Morón de la Frontera',35352,35355,3,1),(4869,'Moronta',33222,33229,3,3),(4870,'Moros',44160,44163,3,1),(4871,'Mos',31708,31721,3,6),(4872,'Moscardón',38010,38013,3,1),(4873,'Mosqueruela',38014,38017,3,1),(4874,'Móstoles',26404,26423,3,9),(4875,'Mota de Altarejos',13482,13485,3,1),(4876,'Mota del Cuervo',13486,13489,3,1),(4877,'Mota del Marqués',40966,40969,3,1),(4878,'Motilla del Palancar',13490,13493,3,1),(4879,'Motilleja',692,695,3,1),(4880,'Motril',15660,15675,3,7),(4882,'Moyuela',44164,44167,3,1),(4883,'Mozárbez',33230,33239,3,4),(4884,'Mozoncillo',34504,34507,3,1),(4885,'Mozota',44168,44171,3,1),(4886,'Mucientes',40970,40973,3,1),(4887,'Mudá',30768,30771,3,1),(4888,'Muduex',16736,16739,3,1),(4889,'Muel',44172,44177,3,2),(4890,'Muelas de los Caballeros',42696,42703,3,3),(4891,'Muelas del Pan',42704,42711,3,3),(4892,'Mues',28864,28867,3,1),(4893,'Muga de Sayago',42712,42715,3,1),(4894,'Mugardos',20512,20519,3,3),(4895,'Muíños',29820,29829,3,4),(4896,'Mula',27768,27777,3,4),(4897,'Muñana',3948,3951,3,1),(4898,'Mundaka',41934,41937,3,1),(4899,'Munébrega',44178,44181,3,1),(4900,'Munera',696,699,3,1),(4901,'Mungia',41938,41943,3,2),(4902,'Muñico',3952,3955,3,1),(4903,'Muniesa',38018,38021,3,1),(4904,'Munilla',21438,21441,3,1),(4905,'Munitibar-Arbatzegi Gerrikaitz',41944,41947,3,1),(4906,'Muñogalindo',3956,3959,3,1),(4907,'Muñogrande',3960,3965,3,2),(4908,'Muñomer del Peco',3966,3969,3,1),(4909,'Muñopedro',34508,34511,3,1),(4910,'Muñopepe',3970,3973,3,1),(4911,'Muñosancho',3974,3977,3,1),(4912,'Muñotello',3978,3981,3,1),(4913,'Muñoveros',34512,34515,3,1),(4914,'Muntanyola',6532,6537,3,2),(4915,'Mura',6538,6541,3,1),(4916,'Muras',25274,25283,3,4),(4917,'Murchante',28868,28871,3,1),(4918,'Murcia',27778,27901,3,61),(4919,'Murero',44182,44185,3,1),(4920,'Murias de Paredes',22454,22467,3,6),(4921,'Muriel',40974,40977,3,1),(4922,'Muriel de la Fuente',36092,36095,3,1),(4923,'Muriel Viejo',36096,36099,3,1),(4924,'Murieta',28872,28875,3,1),(4925,'Murillo de Gállego',44186,44191,3,2),(4926,'Murillo de Río Leza',21442,21445,3,1),(4927,'Murillo el Cuende',28876,28883,3,3),(4928,'Murillo el Fruto',28884,28887,3,1),(4929,'Murla',1430,1433,3,1),(4930,'Muro',5490,5495,3,2),(4931,'Muro de Aguas',21446,21449,3,1),(4932,'Muro de Alcoy',1434,1439,3,2),(4933,'Muro en Cameros',21450,21453,3,1),(4934,'Muros',20520,20533,3,6),(4935,'Muros de Nalón',2880,2885,3,2),(4936,'Murtas',15676,15681,3,2),(4937,'Murueta',41948,41951,3,1),(4938,'Muruzábal',28888,28891,3,1),(4939,'Museros',40090,40093,3,1),(4940,'Muskiz',41952,41955,3,1),(4941,'Mutiloa',17594,17597,3,1),(4942,'Mutriku',17598,17601,3,1),(4943,'Mutxamel',1440,1443,3,1),(4944,'Muxía',20534,20541,3,3),(4945,'Muxika',41956,41961,3,2),(4946,'Nabarniz',41962,41965,3,1),(4947,'Nacimiento',2062,2065,3,1),(4948,'Nafría de Ucero',36100,36103,3,1),(4949,'Nájera',21454,21459,3,2),(4950,'Nalda',21460,21465,3,2),(4951,'Nalec',24164,24167,3,1),(4952,'Nambroca',38930,38935,3,2),(4953,'Náquera',40094,40097,3,1),(4954,'Narboneta',13496,13499,3,1),(4955,'Narón',20542,20561,3,9),(4956,'Narrillos del Álamo',3982,3985,3,1),(4957,'Narrillos del Rebollar',3986,3989,3,1),(4958,'Narros',36104,36107,3,1),(4959,'Narros de Matalayegua',33240,33245,3,2),(4960,'Narros de Saldueña',3990,3993,3,1),(4961,'Narros del Castillo',3994,3997,3,1),(4962,'Narros del Puerto',3998,4001,3,1),(4963,'Naut Aran',24168,24175,3,3),(4964,'Nava',2886,2897,3,5),(4965,'Nava de Arévalo',4002,4005,3,1),(4966,'Nava de Béjar',33246,33249,3,1),(4967,'Nava de Francia',33250,33253,3,1),(4968,'Nava de la Asunción',34516,34521,3,2),(4969,'Nava de Roa',8196,8199,3,1),(4970,'Nava de Sotrobal',33254,33257,3,1),(4971,'Nava del Barco',4006,4009,3,1),(4972,'Nava del Rey',40978,40981,3,1),(4973,'Navacarros',33258,33261,3,1),(4974,'Navacepedilla de Corneja',4010,4013,3,1),(4975,'Navacerrada',26424,26427,3,1),(4976,'Navaconcejo',9698,9701,3,1),(4977,'Navadijos',4014,4017,3,1),(4978,'Navaescurial',4018,4021,3,1),(4979,'Navafría',34522,34525,3,1),(4980,'Navahermosa',38936,38941,3,2),(4981,'Navahondilla',4022,4025,3,1),(4982,'Navajas',11608,11611,3,1),(4983,'Navajún',21466,21469,3,1),(4984,'Naval',18982,18987,3,2),(4985,'Navalacruz',4026,4029,3,1),(4986,'Navalafuente',26428,26431,3,1),(4987,'Navalagamella',26432,26439,3,3),(4988,'Navalcán',38942,38945,3,1),(4989,'Navalcarnero',26440,26443,3,1),(4990,'Navaleno',36108,36111,3,1),(4991,'Navales',33262,33265,3,1),(4992,'Navalilla',34526,34529,3,1),(4993,'Navalmanzano',34530,34533,3,1),(4994,'Navalmoral',4030,4033,3,1),(4995,'Navalmoral de Béjar',33266,33269,3,1),(4996,'Navalmoral de la Mata',9702,9705,3,1),(4997,'Navalmoralejo',38946,38949,3,1),(4998,'Navalonguilla',4034,4037,3,1),(4999,'Navalosa',4038,4041,3,1),(5000,'Navalperal de Pinares',4042,4045,3,1),(5001,'Navalperal de Tormes',4046,4051,3,2),(5002,'Navalpino',12186,12189,3,1),(5003,'Navaluenga',4052,4055,3,1),(5004,'Navalvillar de Ibor',9706,9709,3,1),(5005,'Navalvillar de Pela',4926,4933,3,3),(5006,'Navamorales',33270,33273,3,1),(5007,'Navamorcuende',38950,38953,3,1),(5008,'Navaquesera',4056,4059,3,1),(5009,'Navarcles',6542,6545,3,1),(5010,'Navardún',44192,44197,3,2),(5011,'Navares de Ayuso',34534,34539,3,2),(5012,'Navares de Enmedio',34540,34543,3,1),(5013,'Navares de las Cuevas',34544,34547,3,1),(5014,'Navaridas',240,243,3,1),(5015,'Navarredonda de Gredos',4060,4063,3,1),(5016,'Navarredonda de la Rinconada',33274,33277,3,1),(5017,'Navarredonda y San Mamés',26444,26447,3,1),(5018,'Navarredondilla',4064,4067,3,1),(5019,'Navarrés',40098,40101,3,1),(5020,'Navarrete',21470,21473,3,1),(5021,'Navarrevisca',4068,4071,3,1),(5022,'Navàs',6546,6551,3,2),(5023,'Navas de Bureba',8200,8203,3,1),(5024,'Navas de Estena',12190,12193,3,1),(5025,'Navas de Jorquera',700,703,3,1),(5026,'Navas de Oro',34548,34551,3,1),(5027,'Navas de Riofrío',34552,34555,3,1),(5028,'Navas de San Antonio',34556,34559,3,1),(5029,'Navas de San Juan',19782,19785,3,1),(5030,'Navas del Madroño',9710,9713,3,1),(5031,'Navas del Rey',26448,26451,3,1),(5032,'Navascués/Nabaskoze',28892,28899,3,3),(5033,'Navasfrías',33278,33281,3,1),(5034,'Navata',14508,14511,3,1),(5035,'Navatalgordo',4072,4075,3,1),(5036,'Navatejares',4076,4079,3,1),(5037,'Navès',24176,24179,3,1),(5038,'Navezuelas',9714,9717,3,1),(5039,'Navia',2898,2907,3,4),(5040,'Navia de Suarna',25284,25305,3,10),(5041,'Navianos de Valverde',42716,42719,3,1),(5042,'Nazar',28900,28903,3,1),(5043,'Nebreda',8204,8207,3,1),(5044,'Neda',20562,20569,3,3),(5045,'Negredo',16740,16743,3,1),(5046,'Negreira',20570,20579,3,4),(5047,'Negrilla de Palencia',33282,33285,3,1),(5048,'Negueira de Muñiz',25306,25309,3,1),(5049,'Neila',8208,8211,3,1),(5050,'Neila de San Miguel',4080,4083,3,1),(5051,'Nepas',36112,36115,3,1),(5052,'Nerja',27258,27263,3,2),(5053,'Nerpio',704,719,3,7),(5054,'Nerva',18034,18037,3,1),(5055,'Nestares',21474,21477,3,1),(5056,'Nevada',15682,15687,3,2),(5057,'Niebla',18038,18041,3,1),(5058,'Nieva',34560,34563,3,1),(5059,'Nieva de Cameros',21478,21481,3,1),(5060,'Nigrán',31722,31735,3,6),(5061,'Nigüelas',15688,15691,3,1),(5062,'Nigüella',44198,44201,3,1),(5063,'Niharra',4084,4087,3,1),(5064,'Níjar',2066,2093,3,13),(5065,'Nívar',15692,15695,3,1),(5066,'Noáin (Valle de Elorz)/Noain (Elortzibar)',28904,28911,3,3),(5067,'Noalejo',19786,19789,3,1),(5068,'Noblejas',38954,38957,3,1),(5069,'Noceda del Bierzo',22468,22473,3,2),(5070,'Noez',38958,38961,3,1),(5071,'Nogal de las Huertas',30772,30775,3,1),(5072,'Nogales',4934,4937,3,1),(5073,'Nogueira de Ramuín',29830,29849,3,9),(5074,'Noguera de Albarracín',38022,38025,3,1),(5075,'Nogueras',38026,38029,3,1),(5076,'Nogueruelas',38030,38033,3,1),(5077,'Noia',20580,20591,3,5),(5078,'Noja',10848,10851,3,1),(5079,'Nolay',36116,36119,3,1),(5080,'Nombela',38962,38965,3,1),(5081,'Nombrevilla',44202,44205,3,1),(5082,'Nonaspe',44206,44209,3,1),(5083,'Noreña',2908,2911,3,1),(5084,'Novales',18988,18991,3,1),(5085,'Novallas',44210,44213,3,1),(5086,'Novelda',1444,1447,3,1),(5087,'Novelé',40102,40105,3,1),(5088,'Novés',38966,38969,3,1),(5089,'Noviercas',36120,36125,3,2),(5090,'Novillas',44214,44217,3,1),(5091,'Nueno',18992,18997,3,2),(5092,'Nueva Carteya',12730,12735,3,2),(5093,'Nueva Villa de las Torres',40982,40985,3,1),(5094,'Nuévalos',44218,44223,3,2),(5095,'Nuevo Baztán',26452,26455,3,1),(5096,'Nuez de Ebro',44224,44227,3,1),(5097,'Nules',11612,11617,3,2),(5098,'Nulles',37006,37009,3,1),(5099,'Numancia de la Sagra',38970,38973,3,1),(5100,'Nuño Gómez',38974,38977,3,1),(5101,'Nuñomoral',9718,9729,3,5),(5102,'O Barco de Valdeorras',29850,29863,3,6),(5103,'O Bolo',29864,29875,3,5),(5104,'O Carballiño',29876,29893,3,8),(5105,'O Corgo',25310,25323,3,6),(5106,'O Grove',31736,31745,3,4),(5107,'O Incio',25324,25337,3,6),(5108,'O Irixo',29894,29909,3,7),(5109,'O Páramo',25338,25349,3,5),(5110,'O Pereiro de Aguiar',29910,29919,3,4),(5111,'O Pino',20592,20603,3,5),(5112,'O Porriño',31746,31763,3,8),(5113,'O Rosal',31764,31771,3,3),(5114,'O Saviñao',25350,25371,3,10),(5115,'O Valadouro',25372,25383,3,5),(5116,'O Vicedo',25384,25391,3,3),(5117,'Obanos',28912,28915,3,1),(5118,'Obejo',12736,12743,3,3),(5119,'Obón',38034,38037,3,1),(5120,'Ocaña',38978,38981,3,1),(5121,'Ocentejo',16744,16747,3,1),(5122,'Ochagavía/Otsagabia',28916,28919,3,1),(5123,'Ochánduri',21482,21485,3,1),(5124,'Oco',28920,28923,3,1),(5125,'Ocón',21486,21495,3,4),(5126,'Odèn',24180,24185,3,2),(5127,'Òdena',6552,6555,3,1),(5128,'Odieta',28924,28929,3,2),(5129,'Odón',38038,38041,3,1),(5130,'Oencia',22474,22483,3,4),(5131,'Ogassa',14512,14515,3,1),(5132,'Ogíjares',15696,15699,3,1),(5133,'Ohanes',2094,2097,3,1),(5134,'Oia',31772,31779,3,3),(5135,'Oiartzun',17602,17605,3,1),(5136,'Oímbra',29920,29925,3,2),(5137,'Oiz',28930,28933,3,1),(5138,'Ojacastro',21496,21499,3,1),(5139,'Ojén',27264,27269,3,2),(5140,'Ojós',27902,27905,3,1),(5141,'Ojos Negros',38042,38047,3,2),(5142,'Ojos-Albos',4088,4091,3,1),(5143,'Okondo',244,247,3,1),(5144,'Olaberria',17606,17609,3,1),(5145,'Olaibar',28934,28937,3,1),(5146,'Olazti/Olazagutía',28938,28941,3,1),(5147,'Olba',38048,38053,3,2),(5148,'Olea de Boedo',30776,30779,3,1),(5149,'Oleiros',20604,20619,3,7),(5150,'Olejua',28942,28945,3,1),(5151,'Olèrdola',6556,6561,3,2),(5152,'Olesa de Bonesvalls',6562,6565,3,1),(5153,'Olesa de Montserrat',6566,6569,3,1),(5154,'Oliana',24186,24189,3,1),(5155,'Olías del Rey',38982,38985,3,1),(5156,'Oliete',38054,38057,3,1),(5157,'Oliola',24190,24197,3,3),(5158,'Olite/Erriberri',28946,28949,3,1),(5159,'Olius',24198,24205,3,3),(5160,'Oliva',40106,40111,3,2),(5161,'Oliva de la Frontera',4938,4941,3,1),(5162,'Oliva de Mérida',4942,4945,3,1),(5163,'Oliva de Plasencia',9730,9735,3,2),(5164,'Olivares',35356,35359,3,1),(5165,'Olivares de Duero',40986,40989,3,1),(5166,'Olivares de Júcar',13500,13503,3,1),(5167,'Olivella',6570,6573,3,1),(5168,'Olivenza',4946,4957,3,5),(5169,'Ollauri',21500,21503,3,1),(5170,'Ollería',40112,40115,3,1),(5171,'Olmeda de Cobeta',16748,16753,3,2),(5172,'Olmeda de la Cuesta',13504,13507,3,1),(5173,'Olmeda de las Fuentes',26456,26459,3,1),(5174,'Olmeda del Rey',13508,13511,3,1),(5175,'Olmedilla de Alarcón',13512,13515,3,1),(5176,'Olmedilla de Eliz',13516,13519,3,1),(5177,'Olmedillo de Roa',8212,8215,3,1),(5178,'Olmedo',40990,40995,3,2),(5179,'Olmedo de Camaces',33286,33291,3,2),(5180,'Olmillos de Castro',42720,42727,3,3),(5181,'Olmillos de Muñó',8216,8219,3,1),(5182,'Olmos de Esgueva',40996,40999,3,1),(5183,'Olmos de Ojeda',30780,30787,3,3),(5184,'Olmos de Peñafiel',41000,41003,3,1),(5185,'Olocau',40116,40119,3,1),(5186,'Olocau del Rey',11618,11621,3,1),(5187,'Olombrada',34564,34569,3,2),(5188,'Olóriz/Oloritz',28950,28955,3,2),(5189,'Olost',6574,6577,3,1),(5190,'Olot',14516,14523,3,3),(5191,'Olula de Castro',2098,2101,3,1),(5192,'Olula del Río',2102,2105,3,1),(5193,'Olvan',6578,6583,3,2),(5194,'Ólvega',36126,36131,3,2),(5195,'Olvena',18998,19001,3,1),(5196,'Olvera',10344,10347,3,1),(5197,'Olvés',44228,44231,3,1),(5198,'Oña',8220,8235,3,7),(5199,'Oñati',17610,17619,3,4),(5200,'Oncala',36132,36135,3,1),(5201,'Onda',11622,11627,3,2),(5202,'Ondara',1448,1451,3,1),(5203,'Ondarroa',41966,41969,3,1),(5204,'Onil',1452,1455,3,1),(5205,'Onís',2912,2915,3,1),(5206,'Onteniente',40120,40123,3,1),(5207,'Ontígola',38986,38989,3,1),(5208,'Ontiñena',19002,19005,3,1),(5209,'Ontur',720,723,3,1),(5210,'Onzonilla',22484,22493,3,4),(5211,'Oquillas',8236,8239,3,1),(5212,'Orba',1456,1465,3,4),(5213,'Orbaizeta',28956,28959,3,1),(5214,'Orbaneja Riopico',8240,8243,3,1),(5215,'Orbara',28960,28963,3,1),(5216,'Orbita',4092,4095,3,1),(5217,'Orcajo',44232,44235,3,1),(5218,'Orce',15700,15703,3,1),(5219,'Orcera',19790,19793,3,1),(5220,'Ordes',20620,20631,3,5),(5221,'Ordis',14524,14527,3,1),(5222,'Ordizia',17620,17623,3,1),(5223,'Orea',16754,16757,3,1),(5224,'Orejana',34570,34573,3,1),(5225,'Orellana de la Sierra',4958,4961,3,1),(5226,'Orellana la Vieja',4962,4965,3,1),(5227,'Orendain',17624,17627,3,1),(5228,'Orera',44236,44239,3,1),(5229,'Orés',44240,44243,3,1),(5230,'Orexa',17628,17631,3,1),(5231,'Organyà',24206,24209,3,1),(5232,'Orgaz',38990,38995,3,2),(5233,'Órgiva',15704,15713,3,4),(5234,'Oria',2106,2117,3,5),(5235,'Orihuela',1466,1493,3,13),(5236,'Orihuela del Tremedal',38058,38061,3,1),(5237,'Orio',17632,17635,3,1),(5238,'Orís',6584,6587,3,1),(5239,'Orísoain',28964,28967,3,1),(5240,'Oristà',6588,6591,3,1),(5241,'Orkoien',28968,28971,3,1),(5242,'Ormaiztegi',17636,17639,3,1),(5243,'Oronz/Orontze',28972,28975,3,1),(5244,'Oropesa',38996,39003,3,3),(5245,'Oropesa del Mar/Orpesa',11628,11631,3,1),(5246,'Oroso',20632,20639,3,3),(5247,'Oroz-Betelu/Orotz-Betelu',28976,28979,3,1),(5248,'Orozko',41970,41975,3,2),(5249,'Orpí',6592,6595,3,1),(5250,'Orreaga/Roncesvalles',28980,28983,3,1),(5251,'Orrios',38062,38065,3,1),(5252,'Òrrius',6596,6599,3,1),(5253,'Ortigosa de Cameros',21504,21507,3,1),(5254,'Ortigosa de Pestaño',34574,34577,3,1),(5255,'Ortigosa del Monte',34578,34581,3,1),(5256,'Ortigueira',20640,20657,3,8),(5257,'Ortuella',41976,41979,3,1),(5258,'Orusco de Tajuña',26460,26463,3,1),(5259,'Orxeta',1494,1497,3,1),(5260,'Os Blancos',29926,29931,3,2),(5261,'Os de Balaguer',24210,24219,3,4),(5262,'Osa de la Vega',13520,13523,3,1),(5263,'Oseja',44244,44247,3,1),(5264,'Oseja de Sajambre',22494,22497,3,1),(5265,'Osera de Ebro',44248,44251,3,1),(5266,'Osor',14528,14531,3,1),(5267,'Osornillo',30788,30791,3,1),(5268,'Osorno la Mayor',30792,30797,3,2),(5269,'Ossa de Montiel',724,727,3,1),(5270,'Osso de Cinca',19006,19011,3,2),(5271,'Ossó de Sió',24220,24223,3,1),(5272,'Osuna',35360,35363,3,1),(5273,'Oteiza',28984,28987,3,1),(5274,'Otero',39004,39007,3,1),(5275,'Otero de Bodas',42728,42733,3,2),(5276,'Otero de Herreros',34582,34585,3,1),(5277,'Otívar',15714,15717,3,1),(5278,'Otos',40124,40127,3,1),(5279,'Otxandio',41980,41983,3,1),(5280,'Ourense',29932,29965,3,16),(5281,'Ourol',25392,25399,3,3),(5282,'Outeiro de Rei',25400,25419,3,9),(5283,'Outes',20658,20673,3,7),(5284,'Oviedo',2916,2985,3,34),(5285,'Oyón-Oion',248,253,3,2),(5286,'Oza-Cesuras',20674,20689,3,7),(5287,'Pacs del Penedès',6600,6603,3,1),(5288,'Paderne',20690,20695,3,2),(5289,'Paderne de Allariz',29966,29973,3,3),(5290,'Padiernos',4096,4099,3,1),(5291,'Padilla de Abajo',8244,8247,3,1),(5292,'Padilla de Arriba',8248,8251,3,1),(5293,'Padrenda',29974,29987,3,6),(5294,'Padrón',20696,20709,3,6),(5295,'Padrones de Bureba',8252,8255,3,1),(5296,'Padul',15718,15721,3,1),(5297,'Padules',2118,2121,3,1),(5298,'Paiporta',40128,40131,3,1),(5299,'Pajarejos',34586,34589,3,1),(5300,'Pajares de Adaja',4100,4103,3,1),(5301,'Pajares de la Laguna',33292,33297,3,2),(5302,'Pajares de la Lampreana',42734,42737,3,1),(5303,'Pajares de los Oteros',22498,22507,3,4),(5304,'Pajarón',13524,13527,3,1),(5305,'Pajaroncillo',13528,13531,3,1),(5306,'Palacios de Goda',4104,4107,3,1),(5307,'Palacios de la Sierra',8256,8259,3,1),(5308,'Palacios de la Valduerna',22508,22513,3,2),(5309,'Palacios de Riopisuerga',8260,8263,3,1),(5310,'Palacios de Sanabria',42738,42745,3,3),(5311,'Palacios del Arzobispo',33298,33301,3,1),(5312,'Palacios del Pan',42746,42749,3,1),(5313,'Palacios del Sil',22514,22527,3,6),(5314,'Palaciosrubios',33302,33305,3,1),(5315,'Palafolls',6604,6607,3,1),(5316,'Palafrugell',14532,14545,3,6),(5317,'Palamós',14546,14551,3,2),(5318,'Palanques',11632,11635,3,1),(5319,'Palas de Rei',25420,25441,3,10),(5320,'Palau de Santa Eulàlia',14552,14555,3,1),(5321,'Palau-sator',14556,14559,3,1),(5322,'Palau-saverdera',14560,14563,3,1),(5323,'Palau-solità i Plegamans',6608,6611,3,1),(5324,'Palazuelo de Vedija',41004,41007,3,1),(5325,'Palazuelos de Eresma',34590,34593,3,1),(5326,'Palazuelos de la Sierra',8264,8267,3,1),(5327,'Palazuelos de Muñó',8268,8271,3,1),(5328,'Palencia',30798,30813,3,7),(5329,'Palencia de Negrilla',33306,33309,3,1),(5330,'Palenciana',12744,12747,3,1),(5331,'Palenzuela',30814,30817,3,1),(5332,'Pallejà',6612,6617,3,2),(5333,'Palma',5496,5543,3,23),(5334,'Palma de Gandía',40132,40135,3,1),(5335,'Palma del Río',12748,12757,3,4),(5336,'Pálmaces de Jadraque',16758,16761,3,1),(5337,'Palmera',40136,40139,3,1),(5338,'Palo',19012,19015,3,1),(5339,'Palol de Revardit',14564,14567,3,1),(5340,'Palomar de Arroyos',38066,38069,3,1),(5341,'Palomares del Campo',13532,13535,3,1),(5342,'Palomares del Río',35364,35367,3,1),(5343,'Palomas',4966,4969,3,1),(5344,'Palomeque',39008,39011,3,1),(5345,'Palomera',13536,13539,3,1),(5346,'Palomero',9736,9739,3,1),(5347,'Palos de la Frontera',18042,18051,3,4),(5348,'Pals',14568,14571,3,1),(5349,'Pampaneira',15722,15725,3,1),(5350,'Pampliega',8272,8279,3,3),(5351,'Pamplona/Iruña',28988,29019,3,15),(5352,'Pancorbo',8280,8283,3,1),(5353,'Pancrudo',38070,38075,3,2),(5354,'Paniza',44252,44255,3,1),(5355,'Panticosa',19016,19023,3,3),(5356,'Pantoja',39012,39015,3,1),(5357,'Pantón',25442,25463,3,10),(5358,'Papatrigo',4108,4111,3,1),(5359,'Paracuellos',13540,13545,3,2),(5360,'Paracuellos de Jarama',26464,26471,3,3),(5361,'Paracuellos de Jiloca',44256,44259,3,1),(5362,'Paracuellos de la Ribera',44260,44263,3,1),(5363,'Parada de Arriba',33310,33315,3,2),(5364,'Parada de Rubiales',33316,33319,3,1),(5365,'Parada de Sil',29988,30003,3,7),(5366,'Paradas',35368,35371,3,1),(5367,'Paradela',25464,25469,3,2),(5368,'Paradinas de San Juan',33320,33323,3,1),(5369,'Páramo de Boedo',30818,30821,3,1),(5370,'Páramo del Sil',22528,22541,3,6),(5371,'Parauta',27270,27273,3,1),(5372,'Parcent',1498,1501,3,1),(5373,'Pardilla',8284,8287,3,1),(5374,'Pardines',14572,14575,3,1),(5375,'Pardos',16762,16765,3,1),(5376,'Paredes',13546,13551,3,2),(5377,'Paredes de Escalona',39016,39019,3,1),(5378,'Paredes de Nava',30822,30825,3,1),(5379,'Paredes de Sigüenza',16766,16771,3,2),(5380,'Pareja',16772,16779,3,3),(5381,'Parets del Vallès',6618,6621,3,1),(5382,'Parla',26472,26483,3,5),(5383,'Parlavà',14576,14579,3,1),(5384,'Parres',2986,3005,3,9),(5385,'Parrillas',39020,39023,3,1),(5386,'Partaloa',2122,2125,3,1),(5387,'Partido de la Sierra en Tobalina',8288,8291,3,1),(5388,'Pasaia',17640,17643,3,1),(5389,'Pasarón de la Vera',9740,9743,3,1),(5390,'Pascualcobo',4112,4115,3,1),(5391,'Passanant i Belltall',37010,37015,3,2),(5392,'Pastores',33324,33327,3,1),(5393,'Pastrana',16780,16783,3,1),(5394,'Pastriz',44264,44267,3,1),(5395,'Paterna',40140,40149,3,4),(5396,'Paterna de Rivera',10348,10351,3,1),(5397,'Paterna del Campo',18052,18057,3,2),(5398,'Paterna del Madera',728,737,3,4),(5399,'Paterna del Río',2126,2131,3,2),(5400,'Patones',26484,26487,3,1),(5401,'Pau',14580,14583,3,1),(5402,'Paüls',37016,37019,3,1),(5403,'Pavías',11636,11639,3,1),(5404,'Paymogo',18058,18061,3,1),(5405,'Payo de Ojeda',30826,30829,3,1),(5406,'Pazos de Borbén',31780,31793,3,6),(5407,'Pazuengos',21508,21511,3,1),(5408,'Peal de Becerro',19794,19801,3,3),(5409,'Pechina',2132,2137,3,2),(5410,'Pedrafita do Cebreiro',25470,25479,3,4),(5411,'Pedrajas de San Esteban',41008,41011,3,1),(5412,'Pedralba',40150,40153,3,1),(5413,'Pedralba de la Pradería',42750,42755,3,2),(5414,'Pedraza',34594,34599,3,2),(5415,'Pedraza de Alba',33328,33331,3,1),(5416,'Pedraza de Campos',30830,30833,3,1),(5417,'Pedreguer',1502,1505,3,1),(5418,'Pedrera',35372,35375,3,1),(5419,'Pedret i Marzà',14584,14587,3,1),(5420,'Pedrezuela',26488,26491,3,1),(5421,'Pedro Abad',12758,12761,3,1),(5422,'Pedro Bernardo',4116,4119,3,1),(5423,'Pedro Martínez',15726,15729,3,1),(5424,'Pedro Muñoz',12194,12197,3,1),(5425,'Pedro-Rodríguez',4120,4123,3,1),(5426,'Pedroche',12762,12765,3,1),(5427,'Pedrola',44268,44271,3,1),(5428,'Pedrosa de Duero',8292,8297,3,2),(5429,'Pedrosa de la Vega',30834,30839,3,2),(5430,'Pedrosa de Río Úrbel',8298,8301,3,1),(5431,'Pedrosa del Páramo',8302,8305,3,1),(5432,'Pedrosa del Príncipe',8306,8309,3,1),(5433,'Pedrosa del Rey',41012,41015,3,1),(5434,'Pedrosillo de Alba',33332,33335,3,1),(5435,'Pedrosillo de los Aires',33336,33345,3,4),(5436,'Pedrosillo el Ralo',33346,33349,3,1),(5437,'Pedroso',21512,21515,3,1),(5438,'Pedroso de Acim',9744,9747,3,1),(5439,'Pegalajar',19802,19807,3,2),(5440,'Pego',1506,1511,3,2),(5441,'Peguerinos',4124,4127,3,1),(5442,'Pelabravo',33350,33353,3,1),(5443,'Pelahustán',39024,39027,3,1),(5444,'Pelarrodríguez',33354,33359,3,2),(5445,'Pelayos',33360,33365,3,2),(5446,'Pelayos de la Presa',26492,26495,3,1),(5447,'Pelayos del Arroyo',34600,34605,3,2),(5448,'Peleagonzalo',42756,42759,3,1),(5449,'Peleas de Abajo',42760,42763,3,1),(5450,'Peligros',15730,15733,3,1),(5451,'Peñacaballera',33366,33369,3,1),(5452,'Peñacerrada-Urizaharra',254,261,3,3),(5453,'Peñafiel',41016,41037,3,10),(5454,'Peñaflor',35376,35379,3,1),(5455,'Peñaflor de Hornija',41038,41041,3,1),(5456,'Penagos',10852,10855,3,1),(5457,'Penàguila',1512,1515,3,1),(5458,'Peñalba',19024,19027,3,1),(5459,'Peñalba de Ávila',4128,4131,3,1),(5460,'Peñalén',16784,16787,3,1),(5461,'Peñalsordo',4970,4973,3,1),(5462,'Peñalver',16788,16791,3,1),(5463,'Peñamellera Alta',3006,3013,3,3),(5464,'Peñamellera Baja',3014,3017,3,1),(5465,'Peñaparda',33370,33373,3,1),(5466,'Peñaranda de Bracamonte',33374,33377,3,1),(5467,'Peñaranda de Duero',8310,8315,3,2),(5468,'Peñarandilla',33378,33381,3,1),(5469,'Peñarroya de Tastavins',38076,38079,3,1),(5470,'Peñarroya-Pueblonuevo',12766,12769,3,1),(5471,'Peñarrubia',10856,10859,3,1),(5472,'Peñas de San Pedro',738,745,3,3),(5473,'Peñascosa',746,753,3,3),(5474,'Peñausende',42764,42771,3,3),(5475,'Penelles',24224,24233,3,4),(5476,'Peníscola/Peñíscola',11640,11643,3,1),(5477,'Pepino',39028,39031,3,1),(5478,'Peque',42772,42775,3,1),(5479,'Peracense',38080,38083,3,1),(5480,'Perafita',6622,6625,3,1),(5481,'Perafort',37020,37025,3,2),(5482,'Peral de Arlanza',8316,8319,3,1),(5483,'Peralada',14588,14593,3,2),(5484,'Peraleda de la Mata',9748,9751,3,1),(5485,'Peraleda de San Román',9752,9755,3,1),(5486,'Peraleda del Zaucejo',4974,4977,3,1),(5487,'Peralejos',38084,38087,3,1),(5488,'Peralejos de Abajo',33382,33385,3,1),(5489,'Peralejos de Arriba',33386,33389,3,1),(5490,'Peralejos de las Truchas',16792,16795,3,1),(5491,'Perales',30840,30845,3,2),(5492,'Perales de Tajuña',26496,26499,3,1),(5493,'Perales del Alfambra',38088,38093,3,2),(5494,'Perales del Puerto',9756,9759,3,1),(5495,'Peralta de Alcofea',19028,19035,3,3),(5496,'Peralta de Calasanz',19036,19043,3,3),(5497,'Peralta/Azkoien',29020,29023,3,1),(5498,'Peraltilla',19044,19047,3,1),(5499,'Peralveche',16796,16799,3,1),(5500,'Peramola',24234,24237,3,1),(5501,'Peranzanes',22542,22545,3,1),(5502,'Perarrúa',19048,19051,3,1),(5503,'Perdiguera',44272,44275,3,1),(5504,'Pereña de la Ribera',33390,33393,3,1),(5505,'Pereruela',42776,42795,3,9),(5506,'Periana',27274,27277,3,1),(5507,'Perilla de Castro',42796,42799,3,1),(5508,'Peromingo',33394,33397,3,1),(5509,'Perosillo',34606,34609,3,1),(5510,'Pertusa',19052,19055,3,1),(5511,'Pesaguero',10860,10865,3,2),(5512,'Pescueza',9760,9763,3,1),(5513,'Pesoz',3018,3025,3,3),(5514,'Pesquera',10866,10869,3,1),(5515,'Pesquera de Duero',41042,41045,3,1),(5516,'Petilla de Aragón',29024,29027,3,1),(5517,'Petín',30004,30013,3,4),(5518,'Petra',5544,5547,3,1),(5519,'Petrer',1516,1519,3,1),(5520,'Petrés',40154,40157,3,1),(5521,'Pétrola',754,757,3,1),(5522,'Pezuela de las Torres',26500,26503,3,1),(5523,'Pías',42800,42805,3,2),(5524,'Picanya',40158,40161,3,1),(5525,'Picasent',40162,40165,3,1),(5526,'Picón',12198,12201,3,1),(5527,'Piedrabuena',12202,12207,3,2),(5528,'Piedrahíta',4132,4137,3,2),(5529,'Piedrahita de Castro',42806,42809,3,1),(5530,'Piedralaves',4138,4143,3,2),(5531,'Piedramillera',29028,29031,3,1),(5532,'Piedras Albas',9764,9767,3,1),(5533,'Piedratajada',44276,44279,3,1),(5534,'Piélagos',10870,10883,3,6),(5535,'Piera',6626,6629,3,1),(5536,'Piérnigas',8320,8323,3,1),(5537,'Pilar de la Horadada',1520,1525,3,2),(5538,'Pilas',35380,35383,3,1),(5539,'Piles',40166,40169,3,1),(5540,'Piloña',3026,3045,3,9),(5541,'Piña de Campos',30846,30849,3,1),(5542,'Pina de Ebro',44280,44283,3,1),(5543,'Piña de Esgueva',41046,41049,3,1),(5544,'Pina de Montalgrao',11644,11647,3,1),(5545,'Píñar',15734,15739,3,2),(5546,'Pinarejo',13552,13555,3,1),(5547,'Pinarejos',34610,34613,3,1),(5548,'Pinarnegrillo',34614,34617,3,1),(5549,'Pineda de Gigüela',13556,13559,3,1),(5550,'Pineda de la Sierra',8324,8327,3,1),(5551,'Pineda de Mar',6630,6633,3,1),(5552,'Pineda Trasmonte',8328,8331,3,1),(5553,'Pinedas',33398,33401,3,1),(5554,'Piñel de Abajo',41050,41053,3,1),(5555,'Piñel de Arriba',41054,41057,3,1),(5556,'Pinell de Solsonès',24238,24241,3,1),(5557,'Pinet',40170,40173,3,1),(5558,'Pinilla de Jadraque',16800,16803,3,1),(5559,'Pinilla de los Barruecos',8332,8335,3,1),(5560,'Pinilla de los Moros',8336,8339,3,1),(5561,'Pinilla de Molina',16804,16807,3,1),(5562,'Pinilla de Toro',42810,42813,3,1),(5563,'Pinilla del Campo',36136,36139,3,1),(5564,'Pinilla del Valle',26504,26507,3,1),(5565,'Pinilla Trasmonte',8340,8343,3,1),(5566,'Pinillos',21516,21519,3,1),(5567,'Pino del Oro',42814,42817,3,1),(5568,'Pino del Río',30850,30855,3,2),(5569,'Pinofranqueado',9768,9775,3,3),(5570,'Piñor',30014,30021,3,3),(5571,'Pinós',24242,24245,3,1),(5572,'Pinos Genil',15740,15743,3,1),(5573,'Pinos Puente',15744,15753,3,4),(5574,'Pinseque',44284,44287,3,1),(5575,'Pinto',26508,26511,3,1),(5576,'Piñuécar-Gandullas',26512,26515,3,1),(5577,'Piornal',9776,9779,3,1),(5578,'Pioz',16808,16813,3,2),(5579,'Piqueras',16814,16817,3,1),(5580,'Piqueras del Castillo',13560,13563,3,1),(5581,'Pira',37026,37029,3,1),(5582,'Piracés',19056,19059,3,1),(5583,'Pitarque',38094,38097,3,1),(5584,'Pitiegua',33402,33405,3,1),(5585,'Pitillas',29032,29035,3,1),(5586,'Pizarra',27278,27285,3,3),(5587,'Pizarral',33406,33409,3,1),(5588,'Plan',19060,19065,3,2),(5589,'Planes',1526,1529,3,1),(5590,'Planoles',14594,14597,3,1),(5591,'Plasencia',9780,9787,3,3),(5592,'Plasencia de Jalón',44288,44291,3,1),(5593,'Plasenzuela',9788,9791,3,1),(5594,'Pleitas',44292,44295,3,1),(5595,'Plenas',44296,44299,3,1),(5596,'Plentzia',41984,41987,3,1),(5597,'Pliego',27906,27911,3,2),(5598,'Plou',38098,38101,3,1),(5599,'Población de Arroyo',30856,30859,3,1),(5600,'Población de Campos',30860,30863,3,1),(5601,'Población de Cerrato',30864,30867,3,1),(5602,'Pobladura de Pelayo García',22546,22549,3,1),(5603,'Pobladura de Valderaduey',42818,42821,3,1),(5604,'Pobladura del Valle',42822,42825,3,1),(5605,'Poblete',12208,12211,3,1),(5606,'Poboleda',37030,37033,3,1),(5607,'Poio',31794,31805,3,5),(5608,'Pol',25480,25499,3,9),(5609,'Polaciones',10884,10889,3,2),(5610,'Polán',39032,39035,3,1),(5611,'Polanco',10890,10895,3,2),(5612,'Poleñino',19066,19069,3,1),(5613,'Polentinos',30868,30871,3,1),(5614,'Polícar',15754,15757,3,1),(5615,'Poliñá de Júcar',40174,40177,3,1),(5616,'Polinyà',6634,6637,3,1),(5617,'Pollença',5548,5555,3,3),(5618,'Pollos',41058,41061,3,1),(5619,'Polop',1530,1533,3,1),(5620,'Polopos',15758,15763,3,2),(5621,'Pomar de Valdivia',30872,30881,3,4),(5622,'Pomer',44300,44303,3,1),(5623,'Ponferrada',22550,22581,3,15),(5624,'Ponga',3046,3051,3,2),(5625,'Pont de Molins',14598,14601,3,1),(5626,'Ponte Caldelas',31806,31821,3,7),(5627,'Ponteareas',31822,31853,3,15),(5628,'Ponteceso',20710,20715,3,2),(5629,'Pontecesures',31854,31859,3,2),(5630,'Pontedeume',20716,20727,3,5),(5631,'Pontedeva',30022,30025,3,1),(5632,'Pontevedra',31860,31903,3,21),(5633,'Pontils',37034,37037,3,1),(5634,'Pontons',6638,6641,3,1),(5635,'Pontós',14602,14605,3,1),(5636,'Ponts',24246,24253,3,3),(5637,'Porcuna',19808,19811,3,1),(5638,'Porqueira',30026,30035,3,4),(5639,'Porqueres',14606,14611,3,2),(5640,'Porrera',37038,37041,3,1),(5641,'Porreres',5556,5559,3,1),(5642,'Portaje',9792,9795,3,1),(5643,'Portalrubio de Guadamejud',13564,13567,3,1),(5644,'Portas',31904,31911,3,3),(5645,'Portbou',14612,14615,3,1),(5646,'Portell de Morella',11648,11651,3,1),(5647,'Portezuelo',9796,9799,3,1),(5648,'Portilla',13568,13571,3,1),(5649,'Portillo',41062,41065,3,1),(5650,'Portillo de Soria',36140,36143,3,1),(5651,'Portillo de Toledo',39036,39039,3,1),(5652,'Porto',42826,42841,3,7),(5653,'Porto do Son',20728,20747,3,9),(5654,'Portomarín',25500,25519,3,9),(5655,'Portugalete',41988,41991,3,1),(5656,'Pórtugos',15764,15767,3,1),(5657,'Porzuna',12212,12221,3,4),(5658,'Posada de Valdeón',22582,22587,3,2),(5659,'Posadas',12770,12775,3,2),(5660,'Potes',10896,10899,3,1),(5661,'Potries',40178,40181,3,1),(5662,'Poveda',4144,4147,3,1),(5663,'Poveda de la Sierra',16818,16821,3,1),(5664,'Poveda de las Cintas',33410,33413,3,1),(5665,'Povedilla',758,761,3,1),(5666,'Poyales del Hoyo',4148,4151,3,1),(5667,'Poyatos',13572,13575,3,1),(5668,'Poza de la Sal',8344,8349,3,2),(5669,'Poza de la Vega',30882,30885,3,1),(5670,'Pozal de Gallinas',41066,41069,3,1),(5671,'Pozaldez',41070,41073,3,1),(5672,'Pozalmuro',36144,36147,3,1),(5673,'Pozán de Vero',19070,19073,3,1),(5674,'Pozanco',4152,4155,3,1),(5675,'Pozo Alcón',19812,19817,3,2),(5676,'Pozo Cañada',762,767,3,2),(5677,'Pozo de Almoguera',16822,16825,3,1),(5678,'Pozo de Guadalajara',16826,16831,3,2),(5679,'Pozo de Urama',30886,30889,3,1),(5680,'Pozo-Lorente',768,771,3,1),(5681,'Pozoamargo',13576,13579,3,1),(5682,'Pozoantiguo',42842,42845,3,1),(5683,'Pozoblanco',12776,12779,3,1),(5684,'Pozohondo',772,779,3,3),(5685,'Pozondón',38102,38105,3,1),(5686,'Pozorrubielos de la Mancha',13580,13583,3,1),(5687,'Pozorrubio de Santiago',13584,13587,3,1),(5688,'Pozos de Hinojo',33414,33417,3,1),(5689,'Pozuel de Ariza',44304,44307,3,1),(5690,'Pozuel del Campo',38106,38109,3,1),(5691,'Pozuelo',780,783,3,1),(5692,'Pozuelo de Alarcón',26516,26521,3,2),(5693,'Pozuelo de Aragón',44308,44311,3,1),(5694,'Pozuelo de Calatrava',12222,12225,3,1),(5695,'Pozuelo de la Orden',41074,41077,3,1),(5696,'Pozuelo de Tábara',42846,42849,3,1),(5697,'Pozuelo de Zarzón',9800,9803,3,1),(5698,'Pozuelo del Páramo',22588,22593,3,2),(5699,'Pozuelo del Rey',26522,26525,3,1),(5700,'Prádanos de Bureba',8350,8353,3,1),(5701,'Prádanos de Ojeda',30890,30893,3,1),(5702,'Pradejón',21520,21523,3,1),(5703,'Pradell de la Teixeta',37042,37045,3,1),(5704,'Prádena',34618,34623,3,2),(5705,'Prádena de Atienza',16832,16837,3,2),(5706,'Prádena del Rincón',26526,26529,3,1),(5707,'Prades',37046,37049,3,1),(5708,'Pradilla de Ebro',44312,44317,3,2),(5709,'Pradillo',21524,21527,3,1),(5710,'Prado',42850,42853,3,1),(5711,'Prado de la Guzpeña',22594,22597,3,1),(5712,'Prado del Rey',10352,10355,3,1),(5713,'Pradoluengo',8354,8359,3,2),(5714,'Prados Redondos',16838,16847,3,4),(5715,'Pradosegar',4156,4159,3,1),(5716,'Prat de Comte',37050,37053,3,1),(5717,'Pratdip',37054,37059,3,2),(5718,'Prats de Lluçanès',6642,6645,3,1),(5719,'Prats i Sansor',24254,24257,3,1),(5720,'Pravia',3052,3061,3,4),(5721,'Preixana',24258,24261,3,1),(5722,'Preixens',24262,24265,3,1),(5723,'Préjano',21528,21531,3,1),(5724,'Premià de Dalt',6646,6649,3,1),(5725,'Premià de Mar',6650,6653,3,1),(5726,'Presencio',8360,8363,3,1),(5727,'Priaranza del Bierzo',22598,22607,3,4),(5728,'Priego',13588,13591,3,1),(5729,'Priego de Córdoba',12780,12793,3,6),(5730,'Prioro',22608,22611,3,1),(5731,'Proaza',3062,3069,3,3),(5732,'Prullans',24266,24269,3,1),(5733,'Pruna',35384,35387,3,1),(5734,'Puçol',40182,40185,3,1),(5735,'Puebla de Albortón',44318,44321,3,1),(5736,'Puebla de Alcocer',4978,4981,3,1),(5737,'Puebla de Almenara',13592,13595,3,1),(5738,'Puebla de Arenoso',11652,11655,3,1),(5739,'Puebla de Azaba',33418,33423,3,2),(5740,'Puebla de Beleña',16848,16851,3,1),(5741,'Puebla de Don Fadrique',15768,15771,3,1),(5742,'Puebla de Don Rodrigo',12226,12229,3,1),(5743,'Puebla de Farnals',40186,40191,3,2),(5744,'Puebla de Guzmán',18062,18067,3,2),(5745,'Puebla de la Calzada',4982,4985,3,1),(5746,'Puebla de la Reina',4986,4989,3,1),(5747,'Puebla de la Sierra',26530,26533,3,1),(5748,'Puebla de Lillo',22612,22617,3,2),(5749,'Puebla de Obando',4990,4993,3,1),(5750,'Puebla de Pedraza',34624,34627,3,1),(5751,'Puebla de San Medel',33424,33427,3,1),(5752,'Puebla de San Miguel',40192,40195,3,1),(5753,'Puebla de Sanabria',42854,42861,3,3),(5754,'Puebla de Sancho Pérez',4994,4999,3,2),(5755,'Puebla de Vallbona',40196,40199,3,1),(5756,'Puebla de Valles',16852,16855,3,1),(5757,'Puebla de Yeltes',33428,33431,3,1),(5758,'Puebla del Duc',40200,40203,3,1),(5759,'Puebla del Maestre',5000,5003,3,1),(5760,'Puebla del Príncipe',12230,12233,3,1),(5761,'Puebla del Prior',5004,5007,3,1),(5762,'Puebla del Salvador',13596,13599,3,1),(5763,'Puebla Larga',40204,40207,3,1),(5764,'Pueblica de Valverde',42862,42867,3,2),(5765,'Pueblonuevo de Miramontes',9804,9805,3,0),(5766,'Pueblonuevo del Guadiana',5008,5011,3,1),(5767,'Puendeluna',44322,44325,3,1),(5768,'Puente de Domingo Flórez',22618,22631,3,6),(5769,'Puente de Génave',19818,19823,3,2),(5770,'Puente de Montañana',19074,19077,3,1),(5771,'Puente del Congosto',33432,33437,3,2),(5772,'Puente Genil',12794,12799,3,2),(5773,'Puente la Reina de Jaca',19078,19085,3,3),(5774,'Puente la Reina/Gares',29036,29039,3,1),(5775,'Puente Viesgo',10900,10905,3,2),(5776,'Puentedura',8364,8367,3,1),(5777,'Puentes Viejas',26534,26541,3,3),(5778,'Puertas',33438,33441,3,1),(5779,'Puerto Castilla',4160,4163,3,1),(5780,'Puerto de Béjar',33442,33447,3,2),(5781,'Puerto de San Vicente',39040,39043,3,1),(5782,'Puerto de Santa Cruz',9806,9809,3,1),(5783,'Puerto Lápice',12234,12237,3,1),(5784,'Puerto Lumbreras',27912,27917,3,2),(5785,'Puerto Moral',18068,18071,3,1),(5786,'Puerto Real',10356,10363,3,3),(5787,'Puerto Seguro',33448,33451,3,1),(5788,'Puerto Serrano',10364,10369,3,2),(5789,'Puértolas',19086,19091,3,2),(5790,'Puertollano',12238,12243,3,2),(5791,'Puertomingalvo',38110,38113,3,1),(5792,'Pueyo',29040,29043,3,1),(5793,'Pueyo de Santa Cruz',19092,19095,3,1),(5794,'Puig-reig',6654,6657,3,1),(5795,'Puigcerdà',14616,14621,3,2),(5796,'Puigdàlber',6658,6661,3,1),(5797,'Puiggròs',24270,24273,3,1),(5798,'Puigpelat',37060,37063,3,1),(5799,'Puigpunyent',5560,5565,3,2),(5800,'Puigverd d\'Agramunt',24274,24277,3,1),(5801,'Puigverd de Lleida',24278,24281,3,1),(5802,'Pujalt',6662,6665,3,1),(5803,'Pujerra',27286,27289,3,1),(5804,'Pulgar',39044,39047,3,1),(5805,'Pulianas',15772,15777,3,2),(5806,'Pulpí',2138,2147,3,4),(5807,'Punta Umbría',18072,18079,3,3),(5808,'Punxín',30036,30047,3,5),(5809,'Puras',41078,41081,3,1),(5810,'Purchena',2148,2151,3,1),(5811,'Purujosa',44326,44329,3,1),(5812,'Purullena',15778,15783,3,2),(5813,'Quart',14622,14627,3,2),(5814,'Quatretondeta',1534,1537,3,1),(5815,'Quel',21532,21535,3,1),(5816,'Quemada',8368,8371,3,1),(5817,'Quéntar',15784,15789,3,2),(5818,'Quer',16856,16859,3,1),(5819,'Queralbs',14628,14631,3,1),(5820,'Quero',39048,39051,3,1),(5821,'Querol',37064,37069,3,2),(5822,'Quesa',40208,40211,3,1),(5823,'Quesada',19824,19831,3,3),(5824,'Quicena',19096,19099,3,1),(5825,'Quijorna',26542,26545,3,1),(5826,'Quiñonería',36148,36151,3,1),(5827,'Quintana de la Serena',5012,5015,3,1),(5828,'Quintana del Castillo',22632,22637,3,2),(5829,'Quintana del Marco',22638,22643,3,2),(5830,'Quintana del Pidio',8372,8375,3,1),(5831,'Quintana del Puente',30894,30897,3,1),(5832,'Quintana Redonda',36152,36161,3,4),(5833,'Quintana y Congosto',22644,22649,3,2),(5834,'Quintanabureba',8376,8379,3,1),(5835,'Quintanaélez',8380,8383,3,1),(5836,'Quintanaortuño',8384,8387,3,1),(5837,'Quintanapalla',8388,8391,3,1),(5838,'Quintanar de la Orden',39052,39057,3,2),(5839,'Quintanar de la Sierra',8392,8395,3,1),(5840,'Quintanar del Rey',13600,13603,3,1),(5841,'Quintanas de Gormaz',36162,36165,3,1),(5842,'Quintanavides',8396,8399,3,1),(5843,'Quintanilla de Arriba',41082,41085,3,1),(5844,'Quintanilla de la Mata',8400,8403,3,1),(5845,'Quintanilla de Onésimo',41086,41089,3,1),(5846,'Quintanilla de Onsoña',30898,30903,3,2),(5847,'Quintanilla de Trigueros',41090,41093,3,1),(5848,'Quintanilla de Urz',42868,42871,3,1),(5849,'Quintanilla del Agua y Tordueles',8404,8407,3,1),(5850,'Quintanilla del Coco',8408,8411,3,1),(5851,'Quintanilla del Molar',41094,41097,3,1),(5852,'Quintanilla del Monte',42872,42875,3,1),(5853,'Quintanilla del Olmo',42876,42879,3,1),(5854,'Quintanilla San García',8412,8415,3,1),(5855,'Quintanilla Vivar',8416,8419,3,1),(5856,'Quintela de Leirado',30048,30051,3,1),(5857,'Quinto',44330,44333,3,1),(5858,'Quiroga',25520,25531,3,5),(5859,'Quirós',3070,3079,3,4),(5860,'Quiruelas de Vidriales',42880,42885,3,2),(5861,'Quismondo',39058,39061,3,1),(5862,'Rábade',25532,25535,3,1),(5863,'Rabanales',42886,42891,3,2),(5864,'Rabanera',21536,21539,3,1),(5865,'Rabanera del Pinar',8420,8423,3,1),(5866,'Rábano',41098,41101,3,1),(5867,'Rábano de Aliste',42892,42899,3,3),(5868,'Rábanos',8424,8431,3,3),(5869,'Rabé de las Calzadas',8432,8435,3,1),(5870,'Rabós',14632,14637,3,2),(5871,'Rada de Haro',13604,13607,3,1),(5872,'Rafal',1538,1541,3,1),(5873,'Ráfales',38114,38117,3,1),(5874,'Rafelbuñol',40212,40215,3,1),(5875,'Rafelcofer',40216,40219,3,1),(5876,'Rafelguaraf',40220,40223,3,1),(5877,'Ráfol de Salem',40224,40227,3,1),(5878,'Rágama',33452,33455,3,1),(5879,'Rágol',2152,2155,3,1),(5880,'Rairiz de Veiga',30052,30061,3,4),(5881,'Rajadell',6666,6669,3,1),(5882,'Ramales de la Victoria',10906,10917,3,5),(5883,'Ramirás',30062,30069,3,3),(5884,'Ramiro',41102,41105,3,1),(5885,'Rapariegos',34628,34631,3,1),(5886,'Rascafría',26546,26551,3,2),(5887,'Rasines',10918,10921,3,1),(5888,'Rasquera',37070,37073,3,1),(5889,'Rasueros',4164,4167,3,1),(5890,'Real',40228,40231,3,1),(5891,'Real Sitio de San Ildefonso',34632,34639,3,3),(5892,'Rebollar',36166,36169,3,1),(5893,'Rebollar',9810,9811,3,0),(5894,'Rebolledo de la Torre',8436,8439,3,1),(5895,'Rebollo',34640,34643,3,1),(5896,'Rebollosa de Jadraque',16860,16863,3,1),(5897,'Recas',39062,39065,3,1),(5898,'Recuerda',36170,36177,3,3),(5899,'Redecilla del Camino',8440,8443,3,1),(5900,'Redecilla del Campo',8444,8449,3,2),(5901,'Redondela',31912,31937,3,12),(5902,'Redován',1542,1545,3,1),(5903,'Redueña',26552,26555,3,1),(5904,'Regencós',14638,14641,3,1),(5905,'Regueras de Arriba',22650,22653,3,1),(5906,'Regumiel de la Sierra',8450,8453,3,1),(5907,'Reíllo',13608,13611,3,1),(5908,'Reina',5016,5019,3,1),(5909,'Reinosa',10922,10925,3,1),(5910,'Reinoso',8454,8457,3,1),(5911,'Reinoso de Cerrato',30904,30907,3,1),(5912,'Relleu',1546,1549,3,1),(5913,'Rellinars',6670,6673,3,1),(5914,'Rello',36178,36181,3,1),(5915,'Remolinos',44334,44337,3,1),(5916,'Remondo',34644,34647,3,1),(5917,'Rena',5020,5023,3,1),(5918,'Renau',37074,37077,3,1),(5919,'Renedo de Esgueva',41106,41109,3,1),(5920,'Renedo de la Vega',30908,30911,3,1),(5921,'Renera',16864,16867,3,1),(5922,'Renieblas',36182,36187,3,2),(5923,'Reocín',10926,10937,3,5),(5924,'Requejo',42900,42903,3,1),(5925,'Requena',40232,40255,3,11),(5926,'Requena de Campos',30912,30915,3,1),(5927,'Respenda de la Peña',30916,30923,3,3),(5928,'Retamal de Llerena',5024,5027,3,1),(5929,'Retamoso de la Jara',39066,39069,3,1),(5930,'Retascón',44338,44341,3,1),(5931,'Retiendas',16868,16873,3,2),(5932,'Retortillo',33456,33461,3,2),(5933,'Retortillo de Soria',36188,36195,3,3),(5934,'Retuerta',8458,8461,3,1),(5935,'Retuerta del Bullaque',12244,12247,3,1),(5936,'Reus',37078,37091,3,6),(5937,'Revellinos',42904,42907,3,1),(5938,'Revenga de Campos',30924,30927,3,1),(5939,'Revilla de Collazos',30928,30931,3,1),(5940,'Revilla del Campo',8462,8467,3,2),(5941,'Revilla Vallejera',8468,8471,3,1),(5942,'Revillarruz',8472,8475,3,1),(5943,'Reyero',22654,22657,3,1),(5944,'Rezmondo',8476,8479,3,1),(5945,'Reznos',36196,36199,3,1),(5946,'Riaguas de San Bartolomé',34648,34651,3,1),(5947,'Rialp',24282,24285,3,1),(5948,'Riaño',22658,22663,3,2),(5949,'Rianxo',20748,20759,3,5),(5950,'Riaza',34652,34663,3,5),(5951,'Riba de Saelices',16874,16877,3,1),(5952,'Riba-roja d\'Ebre',37092,37095,3,1),(5953,'Ribadavia',30070,30085,3,7),(5954,'Ribadedeva',3080,3085,3,2),(5955,'Ribadeo',25536,25555,3,9),(5956,'Ribadesella',3086,3105,3,9),(5957,'Ribadumia',31938,31945,3,3),(5958,'Ribaforada',29044,29047,3,1),(5959,'Ribafrecha',21540,21543,3,1),(5960,'Ribamontán al Mar',10938,10947,3,4),(5961,'Ribamontán al Monte',10948,10953,3,2),(5962,'Ribarroja del Turia',40256,40259,3,1),(5963,'Ribas de Campos',30932,30935,3,1),(5964,'Ribas de Sil',25556,25563,3,3),(5965,'Ribatejada',26556,26559,3,1),(5966,'Ribeira',20760,20779,3,9),(5967,'Ribeira de Piquín',25564,25571,3,3),(5968,'Ribera Baja/Erribera Beitia',262,267,3,2),(5969,'Ribera d\'Ondara',24286,24291,3,2),(5970,'Ribera d\'Urgellet',24292,24303,3,5),(5971,'Ribera de Arriba',3106,3117,3,5),(5972,'Ribera del Fresno',5028,5031,3,1),(5973,'Riberos de la Cueza',30936,30939,3,1),(5974,'Ribes de Freser',14642,14645,3,1),(5975,'Ribesalbes',11656,11659,3,1),(5976,'Ribota',34664,34667,3,1),(5977,'Ricla',44342,44347,3,2),(5978,'Ricote',27918,27921,3,1),(5979,'Riego de la Vega',22664,22671,3,3),(5980,'Riello',22672,22685,3,6),(5981,'Riells i Viabrea',14646,14649,3,1),(5982,'Rielves',39070,39073,3,1),(5983,'Rillo',38118,38123,3,2),(5984,'Rillo de Gallo',16878,16881,3,1),(5985,'Rincón de la Victoria',27290,27297,3,3),(5986,'Rincón de Soto',21544,21547,3,1),(5987,'Riner',24304,24309,3,2),(5988,'Riocabado',4168,4173,3,2),(5989,'Riocavado de la Sierra',8480,8483,3,1),(5990,'Riodeva',38124,38127,3,1),(5991,'Riofrío',4174,4177,3,1),(5992,'Riofrío de Aliste',42908,42913,3,2),(5993,'Riofrío de Riaza',34668,34671,3,1),(5994,'Riofrío del Llano',16882,16885,3,1),(5995,'Riogordo',27298,27301,3,1),(5996,'Rioja',2156,2159,3,1),(5997,'Riola',40260,40263,3,1),(5998,'Riolobos',9812,9817,3,2),(5999,'Rionansa',10954,10961,3,3),(6000,'Rionegro del Puente',42914,42921,3,3),(6001,'Riópar',784,791,3,3),(6002,'Riós',30086,30093,3,3),(6003,'Riosa',3118,3121,3,1),(6004,'Rioseco de Soria',36200,36203,3,1),(6005,'Rioseco de Tapia',22686,22691,3,2),(6006,'Riotorto',25572,25579,3,3),(6007,'Riotuerto',10962,10967,3,2),(6008,'Ripoll',14650,14653,3,1),(6009,'Ripollet',6674,6677,3,1),(6010,'Risco',5032,5035,3,1),(6011,'Riu de Cerdanya',24310,24313,3,1),(6012,'Riudarenes',14654,14657,3,1),(6013,'Riudaura',14658,14661,3,1),(6014,'Riudecanyes',37096,37099,3,1),(6015,'Riudecols',37100,37103,3,1),(6016,'Riudellots de la Selva',14662,14665,3,1),(6017,'Riudoms',37104,37107,3,1),(6018,'Riumors',14666,14669,3,1),(6019,'Rivas-Vaciamadrid',26560,26571,3,5),(6020,'Rivilla de Barajas',4178,4181,3,1),(6021,'Roa',8484,8487,3,1),(6022,'Roales',42922,42925,3,1),(6023,'Roales de Campos',41110,41113,3,1),(6024,'Robladillo',41114,41117,3,1),(6025,'Robleda',33462,33465,3,1),(6026,'Robleda-Cervantes',42926,42935,3,4),(6027,'Robledillo de Gata',9818,9821,3,1),(6028,'Robledillo de la Jara',26572,26575,3,1),(6029,'Robledillo de la Vera',9822,9825,3,1),(6030,'Robledillo de Mohernando',16886,16889,3,1),(6031,'Robledillo de Trujillo',9826,9831,3,2),(6032,'Robledo',792,799,3,3),(6033,'Robledo de Chavela',26576,26579,3,1),(6034,'Robledo de Corpes',16890,16893,3,1),(6035,'Robledo del Mazo',39074,39085,3,5),(6036,'Robledollano',9832,9835,3,1),(6037,'Robliza de Cojos',33466,33471,3,2),(6038,'Robregordo',26580,26583,3,1),(6039,'Robres',19100,19103,3,1),(6040,'Robres del Castillo',21548,21551,3,1),(6041,'Rocafort',40264,40267,3,1),(6042,'Rocafort de Queralt',37108,37111,3,1),(6043,'Rociana del Condado',18080,18083,3,1),(6044,'Roda de Berà',37112,37115,3,1),(6045,'Roda de Eresma',34672,34675,3,1),(6046,'Roda de Ter',6678,6681,3,1),(6047,'Rodeiro',31946,31957,3,5),(6048,'Ródenas',38128,38131,3,1),(6049,'Rodezno',21552,21557,3,2),(6050,'Rodonyà',37116,37119,3,1),(6051,'Roelos de Sayago',42936,42939,3,1),(6052,'Rois',20780,20793,3,6),(6053,'Rojales',1550,1553,3,1),(6054,'Rojas',8488,8491,3,1),(6055,'Rollamienta',36204,36207,3,1),(6056,'Rollán',33472,33475,3,1),(6057,'Romangordo',9836,9839,3,1),(6058,'Romanillos de Atienza',16894,16897,3,1),(6059,'Romanones',16898,16901,3,1),(6060,'Romanos',44348,44351,3,1),(6061,'Romanzado',29048,29051,3,1),(6062,'Roncal/Erronkari',29052,29055,3,1),(6063,'Ronda',27302,27311,3,4),(6064,'Roperuelos del Páramo',22692,22697,3,2),(6065,'Roquetas de Mar',2160,2169,3,4),(6066,'Roquetes',37120,37125,3,2),(6067,'Rosal de la Frontera',18084,18087,3,1),(6068,'Rosalejo',9840,9843,3,1),(6069,'Roses',14670,14673,3,1),(6070,'Rosinos de la Requejada',42940,42951,3,5),(6071,'Rossell',11660,11667,3,3),(6072,'Rosselló',24314,24317,3,1),(6073,'Rota',10370,10373,3,1),(6074,'Rotglá y Corbera',40268,40271,3,1),(6075,'Rótova',40272,40275,3,1),(6076,'Roturas',41118,41121,3,1),(6077,'Royuela',38132,38135,3,1),(6078,'Royuela de Río Franco',8492,8497,3,2),(6079,'Rozalén del Monte',13612,13617,3,2),(6080,'Rozas de Puerto Real',26584,26587,3,1),(6081,'Ruanes',9844,9847,3,1),(6082,'Rubena',8498,8501,3,1),(6083,'Rubí',6682,6687,3,2),(6084,'Rubí de Bracamonte',41122,41125,3,1),(6085,'Rubiá',30094,30105,3,5),(6086,'Rubiales',38136,38139,3,1),(6087,'Rubielos de la Cérida',38140,38143,3,1),(6088,'Rubielos de Mora',38144,38147,3,1),(6089,'Rubió',6688,6691,3,1),(6090,'Rubite',15790,15793,3,1),(6091,'Rublacedo de Abajo',8502,8505,3,1),(6092,'Rucandio',8506,8509,3,1),(6093,'Rueda',41126,41133,3,3),(6094,'Rueda de Jalón',44352,44355,3,1),(6095,'Rueda de la Sierra',16902,16905,3,1),(6096,'Ruente',10968,10973,3,2),(6097,'Ruesca',44356,44359,3,1),(6098,'Ruesga',10974,10981,3,3),(6099,'Rugat',40276,40279,3,1),(6100,'Ruidera',12248,12251,3,1),(6101,'Ruiloba',10982,10985,3,1),(6102,'Rupià',14674,14677,3,1),(6103,'Rupit i Pruit',6692,6695,3,1),(6104,'Rus',19832,19837,3,2),(6105,'Rute',12800,12805,3,2),(6106,'Sa Pobla',5566,5569,3,1),(6107,'Sabadell',6696,6713,3,8),(6108,'Sabero',22698,22709,3,5),(6109,'Sabiñán',44360,44363,3,1),(6110,'Sabiñánigo',19104,19133,3,14),(6111,'Sabiote',19838,19841,3,1),(6112,'Sacañet',11668,11671,3,1),(6113,'Sacecorbo',16906,16909,3,1),(6114,'Saceda-Trasierra',13618,13621,3,1),(6115,'Sacedón',16910,16917,3,3),(6116,'Saceruela',12252,12255,3,1),(6117,'Sacramenia',34676,34679,3,1),(6118,'Sada',20794,20801,3,3),(6119,'Sada',29056,29057,3,0),(6120,'Sádaba',44364,44369,3,2),(6121,'Saelices',13622,13625,3,1),(6122,'Saelices de la Sal',16918,16921,3,1),(6123,'Saelices de Mayorga',41134,41137,3,1),(6124,'Saelices el Chico',33476,33479,3,1),(6125,'Sagàs',6714,6717,3,1),(6126,'Sagra',1554,1557,3,1),(6127,'Sagunto/Sagunt',40280,40289,3,4),(6128,'Sahagún',22710,22719,3,4),(6129,'Sahún',19134,19141,3,3),(6130,'Sajazarra',21558,21561,3,1),(6131,'Salamanca',33480,33499,3,9),(6132,'Salar',15794,15797,3,1),(6133,'Salares',27312,27315,3,1),(6134,'Salas',3122,3153,3,15),(6135,'Salas Altas',19142,19147,3,2),(6136,'Salas Bajas',19148,19151,3,1),(6137,'Salas de Bureba',8510,8513,3,1),(6138,'Salas de los Infantes',8514,8521,3,3),(6139,'Salàs de Pallars',24318,24321,3,1),(6140,'Salce',42952,42955,3,1),(6141,'Salceda de Caselas',31958,31973,3,7),(6142,'Salcedillo',38148,38151,3,1),(6143,'Saldaña',30940,30949,3,4),(6144,'Saldaña de Burgos',8522,8525,3,1),(6145,'Saldeana',33500,33503,3,1),(6146,'Saldes',6718,6723,3,2),(6147,'Saldías',29058,29061,3,1),(6148,'Saldón',38152,38155,3,1),(6149,'Salduero',36208,36211,3,1),(6150,'Salem',40290,40293,3,1),(6151,'Sales de Llierca',14678,14681,3,1),(6152,'Salillas',19152,19155,3,1),(6153,'Salillas de Jalón',44370,44373,3,1),(6154,'Salinas',1558,1565,3,3),(6155,'Salinas de Oro/Jaitz',29062,29065,3,1),(6156,'Salinas de Pisuerga',30950,30957,3,3),(6157,'Salinas del Manzano',13626,13629,3,1),(6158,'Salinillas de Bureba',8526,8529,3,1),(6159,'Sallent',6724,6727,3,1),(6160,'Sallent de Gállego',19156,19165,3,4),(6161,'Salmerón',16922,16925,3,1),(6162,'Salmeroncillos',13630,13633,3,1),(6163,'Salmoral',33504,33507,3,1),(6164,'Salobral',4182,4185,3,1),(6165,'Salobre',800,803,3,1),(6166,'Salobreña',15798,15807,3,4),(6167,'Salomó',37126,37129,3,1),(6168,'Salorino',9848,9851,3,1),(6169,'Salou',37130,37133,3,1),(6170,'Salt',14682,14685,3,1),(6171,'Salteras',35388,35391,3,1),(6172,'Salvacañete',13634,13637,3,1),(6173,'Salvadiós',4186,4189,3,1),(6174,'Salvador de Zapardiel',41138,41141,3,1),(6175,'Salvaleón',5036,5039,3,1),(6176,'Salvaterra de Miño',31974,31987,3,6),(6177,'Salvatierra de Esca',44374,44377,3,1),(6178,'Salvatierra de los Barros',5040,5043,3,1),(6179,'Salvatierra de Santiago',9852,9855,3,1),(6180,'Salvatierra de Tormes',33508,33511,3,1),(6181,'Samaniego',268,271,3,1),(6182,'Samboal',34680,34685,3,2),(6183,'Samir de los Caños',42956,42959,3,1),(6184,'Samos',25580,25605,3,12),(6185,'Samper de Calanda',38156,38159,3,1),(6186,'Samper del Salz',44378,44381,3,1),(6187,'San Adrián',29066,29069,3,1),(6188,'San Adrián de Juarros',8530,8533,3,1),(6189,'San Adrián del Valle',22720,22723,3,1),(6190,'San Agustín',38160,38163,3,1),(6191,'San Agustín del Guadalix',26588,26591,3,1),(6192,'San Agustín del Pozo',42960,42963,3,1),(6193,'San Amaro',30106,30113,3,3),(6194,'San Andrés del Congosto',16926,16929,3,1),(6195,'San Andrés del Rabanedo',22724,22735,3,5),(6196,'San Andrés del Rey',16930,16933,3,1),(6197,'San Antonio de Benagéber',40294,40297,3,1),(6198,'San Asensio',21562,21565,3,1),(6199,'San Bartolomé de Béjar',4190,4193,3,1),(6200,'San Bartolomé de Corneja',4194,4197,3,1),(6201,'San Bartolomé de la Torre',18088,18093,3,2),(6202,'San Bartolomé de las Abiertas',39086,39089,3,1),(6203,'San Bartolomé de Pinares',4198,4201,3,1),(6204,'San Carlos del Valle',12256,12259,3,1),(6205,'San Cebrián de Campos',30958,30961,3,1),(6206,'San Cebrián de Castro',42964,42969,3,2),(6207,'San Cebrián de Mazote',41142,41145,3,1),(6208,'San Cebrián de Mudá',30962,30967,3,2),(6209,'San Cibrao das Viñas',30114,30125,3,5),(6210,'San Clemente',13638,13641,3,1),(6211,'San Cristóbal de Boedo',30968,30971,3,1),(6212,'San Cristóbal de Cuéllar',34686,34689,3,1),(6213,'San Cristóbal de Entreviñas',42970,42975,3,2),(6214,'San Cristóbal de la Cuesta',33512,33515,3,1),(6215,'San Cristóbal de la Polantera',22736,22741,3,2),(6216,'San Cristóbal de la Vega',34690,34693,3,1),(6217,'San Cristóbal de Segovia',34694,34697,3,1),(6218,'San Cristovo de Cea',30126,30143,3,8),(6219,'San Emiliano',22742,22749,3,3),(6220,'San Esteban de Gormaz',36212,36227,3,7),(6221,'San Esteban de la Sierra',33516,33519,3,1),(6222,'San Esteban de Litera',19166,19169,3,1),(6223,'San Esteban de los Patos',4202,4205,3,1),(6224,'San Esteban de Nogales',22750,22753,3,1),(6225,'San Esteban de Zapardiel',4206,4209,3,1),(6226,'San Esteban del Molar',42976,42979,3,1),(6227,'San Esteban del Valle',4210,4213,3,1),(6228,'San Felices',36228,36231,3,1),(6229,'San Felices de Buelna',10986,10989,3,1),(6230,'San Felices de los Gallegos',33520,33523,3,1),(6231,'San Fernando',10374,10377,3,1),(6232,'San Fernando de Henares',26592,26595,3,1),(6233,'San Fulgencio',1566,1569,3,1),(6234,'San García de Ingelmos',4214,4217,3,1),(6235,'San Isidro',1570,1573,3,1),(6236,'San Javier',27922,27939,3,8),(6237,'San José del Valle',10378,10383,3,2),(6238,'San Juan de Aznalfarache',35392,35395,3,1),(6239,'San Juan de Gredos',4218,4223,3,2),(6240,'San Juan de la Encinilla',4224,4229,3,2),(6241,'San Juan de la Nava',4230,4233,3,1),(6242,'San Juan de Plan',19170,19173,3,1),(6243,'San Juan del Molinillo',4234,4237,3,1),(6244,'San Juan del Monte',8534,8537,3,1),(6245,'San Juan del Olmo',4238,4241,3,1),(6246,'San Juan del Puerto',18094,18099,3,2),(6247,'San Justo',42980,42987,3,3),(6248,'San Justo de la Vega',22754,22761,3,3),(6249,'San Leonardo de Yagüe',36232,36235,3,1),(6250,'San Llorente',41146,41149,3,1),(6251,'San Lorenzo de Calatrava',12260,12263,3,1),(6252,'San Lorenzo de El Escorial',26596,26601,3,2),(6253,'San Lorenzo de la Parrilla',13642,13645,3,1),(6254,'San Lorenzo de Tormes',4242,4245,3,1),(6255,'San Mamés de Burgos',8538,8541,3,1),(6256,'San Mamés de Campos',30972,30975,3,1),(6257,'San Martín de Boniches',13646,13649,3,1),(6258,'San Martín de la Vega',26602,26605,3,1),(6259,'San Martín de la Vega del Alberche',4246,4249,3,1),(6260,'San Martín de la Virgen de Moncayo',44382,44385,3,1),(6261,'San Martín de Montalbán',39090,39093,3,1),(6262,'San Martín de Oscos',3154,3157,3,1),(6263,'San Martín de Pusa',39094,39097,3,1),(6264,'San Martín de Rubiales',8542,8545,3,1),(6265,'San Martín de Trevejo',9856,9859,3,1),(6266,'San Martín de Unx',29070,29073,3,1),(6267,'San Martín de Valdeiglesias',26606,26609,3,1),(6268,'San Martín de Valderaduey',42988,42991,3,1),(6269,'San Martín de Valvení',41150,41153,3,1),(6270,'San Martín del Castañar',33524,33527,3,1),(6271,'San Martín del Pimpollar',4250,4253,3,1),(6272,'San Martín del Rey Aurelio',3158,3179,3,10),(6273,'San Martín del Río',38164,38167,3,1),(6274,'San Martín y Mudrián',34698,34701,3,1),(6275,'San Mateo de Gállego',44386,44389,3,1),(6276,'San Miguel de Aguayo',10990,10993,3,1),(6277,'San Miguel de Bernuy',34702,34705,3,1),(6278,'San Miguel de Corneja',4254,4257,3,1),(6279,'San Miguel de la Ribera',42992,42995,3,1),(6280,'San Miguel de Salinas',1574,1577,3,1),(6281,'San Miguel de Serrezuela',4258,4261,3,1),(6282,'San Miguel de Valero',33528,33531,3,1),(6283,'San Miguel del Arroyo',41154,41157,3,1),(6284,'San Miguel del Cinca',19174,19181,3,3),(6285,'San Miguel del Pino',41158,41161,3,1),(6286,'San Miguel del Robledo',33532,33537,3,2),(6287,'San Miguel del Valle',42996,42999,3,1),(6288,'San Millán de la Cogolla',21566,21569,3,1),(6289,'San Millán de Lara',8546,8549,3,1),(6290,'San Millán de los Caballeros',22762,22765,3,1),(6291,'San Millán de Yécora',21570,21573,3,1),(6292,'San Millán/Donemiliaga',272,277,3,2),(6293,'San Morales',33538,33541,3,1),(6294,'San Muñoz',33542,33547,3,2),(6295,'San Nicolás del Puerto',35396,35403,3,3),(6296,'San Pablo de la Moraleja',41162,41165,3,1),(6297,'San Pablo de los Montes',39098,39101,3,1),(6298,'San Pascual',4262,4265,3,1),(6299,'San Pedro',804,807,3,1),(6300,'San Pedro Bercianos',22766,22769,3,1),(6301,'San Pedro de Ceque',43000,43003,3,1),(6302,'San Pedro de Gaíllos',34706,34709,3,1),(6303,'San Pedro de la Nave-Almendra',43004,43009,3,2),(6304,'San Pedro de Latarce',41166,41169,3,1),(6305,'San Pedro de Mérida',5044,5047,3,1),(6306,'San Pedro de Rozados',33548,33561,3,6),(6307,'San Pedro del Arroyo',4266,4269,3,1),(6308,'San Pedro del Pinatar',27940,27945,3,2),(6309,'San Pedro del Romeral',10994,10999,3,2),(6310,'San Pedro del Valle',33562,33565,3,1),(6311,'San Pedro Manrique',36236,36241,3,2),(6312,'San Pedro Palmiches',13650,13653,3,1),(6313,'San Pelayo',41170,41173,3,1),(6314,'San Pelayo de Guareña',33566,33573,3,3),(6315,'San Rafael del Río',11672,11677,3,2),(6316,'San Román de Cameros',21574,21577,3,1),(6317,'San Román de Hornija',41174,41177,3,1),(6318,'San Román de la Cuba',30976,30979,3,1),(6319,'San Román de los Montes',39102,39105,3,1),(6320,'San Roque',10384,10401,3,8),(6321,'San Roque de Riomiera',11000,11005,3,2),(6322,'San Sadurniño',20802,20815,3,6),(6323,'San Salvador',41178,41181,3,1),(6324,'San Sebastián de los Ballesteros',12806,12809,3,1),(6325,'San Sebastián de los Reyes',26610,26627,3,8),(6326,'San Silvestre de Guzmán',18100,18103,3,1),(6327,'San Tirso de Abres',3180,3183,3,1),(6328,'San Torcuato',21578,21581,3,1),(6329,'San Vicente de Alcántara',5048,5051,3,1),(6330,'San Vicente de Arévalo',4270,4273,3,1),(6331,'San Vicente de la Barquera',11006,11015,3,4),(6332,'San Vicente de la Cabeza',43010,43013,3,1),(6333,'San Vicente de la Sonsierra',21582,21587,3,2),(6334,'San Vicente del Palacio',41182,41185,3,1),(6335,'San Vicente del Raspeig/Sant Vicent del Raspeig',1578,1581,3,1),(6336,'San Vicente del Valle',8550,8553,3,1),(6337,'San Vitero',43014,43021,3,3),(6338,'San Xoán de Río',30144,30151,3,3),(6339,'Sanaüja',24322,24325,3,1),(6340,'Sancedo',22770,22775,3,2),(6341,'Sanchidrián',4274,4277,3,1),(6342,'Sanchón de la Ribera',33574,33577,3,1),(6343,'Sanchón de la Sagrada',33578,33581,3,1),(6344,'Sanchonuño',34710,34713,3,1),(6345,'Sanchorreja',4278,4281,3,1),(6346,'Sanchotello',33582,33585,3,1),(6347,'Sancti-Spíritus',33586,33591,3,2),(6348,'Sancti-Spíritus',5052,5053,3,0),(6349,'Sandiás',30152,30157,3,2),(6350,'Sando',33592,33599,3,3),(6351,'Sanet y Negrals',1582,1585,3,1),(6352,'Sangarcía',34714,34719,3,2),(6353,'Sangarrén',19182,19185,3,1),(6354,'Sangüesa/Zangoza',29074,29079,3,2),(6355,'Sanlúcar de Barrameda',10402,10411,3,4),(6356,'Sanlúcar de Guadiana',18104,18107,3,1),(6357,'Sanlúcar la Mayor',35404,35407,3,1),(6358,'Sansol',29080,29083,3,1),(6359,'Sant Adrià de Besòs',6728,6731,3,1),(6360,'Sant Agustí de Lluçanès',6732,6735,3,1),(6361,'Sant Andreu de la Barca',6736,6739,3,1),(6362,'Sant Andreu de Llavaneres',6740,6743,3,1),(6363,'Sant Andreu Salou',14686,14689,3,1),(6364,'Sant Aniol de Finestres',14690,14695,3,2),(6365,'Sant Antoni de Portmany',5250,5259,3,4),(6366,'Sant Antoni de Vilamajor',6744,6747,3,1),(6367,'Sant Bartomeu del Grau',6748,6751,3,1),(6368,'Sant Boi de Llobregat',6752,6757,3,2),(6369,'Sant Boi de Lluçanès',6758,6761,3,1),(6370,'Sant Carles de la Ràpita',37134,37139,3,2),(6371,'Sant Cebrià de Vallalta',6762,6765,3,1),(6372,'Sant Celoni',6766,6773,3,3),(6373,'Sant Climent de Llobregat',6774,6777,3,1),(6374,'Sant Climent Sescebes',14696,14699,3,1),(6375,'Sant Cugat del Vallès',6778,6797,3,9),(6376,'Sant Cugat Sesgarrigues',6798,6801,3,1),(6377,'Sant Esteve de la Sarga',24326,24329,3,1),(6378,'Sant Esteve de Palautordera',6802,6807,3,2),(6379,'Sant Esteve Sesrovires',6808,6813,3,2),(6380,'Sant Feliu de Buixalleu',14700,14703,3,1),(6381,'Sant Feliu de Codines',6814,6817,3,1),(6382,'Sant Feliu de Guíxols',14704,14709,3,2),(6383,'Sant Feliu de Llobregat',6818,6821,3,1),(6384,'Sant Feliu de Pallerols',14710,14713,3,1),(6385,'Sant Feliu Sasserra',6822,6825,3,1),(6386,'Sant Ferriol',14714,14719,3,2),(6387,'Sant Fost de Campsentelles',6826,6829,3,1),(6388,'Sant Fruitós de Bages',6830,6833,3,1),(6389,'Sant Gregori',14720,14729,3,4),(6390,'Sant Guim de Freixenet',24330,24337,3,3),(6391,'Sant Guim de la Plana',24338,24341,3,1),(6392,'Sant Hilari Sacalm',14730,14733,3,1),(6393,'Sant Hipòlit de Voltregà',6834,6837,3,1),(6394,'Sant Iscle de Vallalta',6838,6841,3,1),(6395,'Sant Jaume d\'Enveja',37140,37145,3,2),(6396,'Sant Jaume de Frontanyà',6842,6845,3,1),(6397,'Sant Jaume de Llierca',14734,14737,3,1),(6398,'Sant Jaume dels Domenys',37146,37149,3,1),(6399,'Sant Joan',5570,5575,3,2),(6400,'Sant Joan d\'Alacant',1586,1589,3,1),(6401,'Sant Joan de Labritja',5260,5269,3,4),(6402,'Sant Joan de les Abadesses',14738,14741,3,1),(6403,'Sant Joan de Mollet',14742,14745,3,1),(6404,'Sant Joan de Moró',11678,11681,3,1),(6405,'Sant Joan de Vilatorrada',6846,6849,3,1),(6406,'Sant Joan Despí',6850,6853,3,1),(6407,'Sant Joan les Fonts',14746,14749,3,1),(6408,'Sant Joanet',40298,40301,3,1),(6409,'Sant Jordi Desvalls',14750,14753,3,1),(6410,'Sant Jordi/San Jorge',11682,11685,3,1),(6411,'Sant Josep de sa Talaia',5270,5281,3,5),(6412,'Sant Julià de Cerdanyola',6854,6857,3,1),(6413,'Sant Julià de Ramis',14754,14759,3,2),(6414,'Sant Julià de Vilatorta',6858,6861,3,1),(6415,'Sant Julià del Llor i Bonmatí',14760,14763,3,1),(6416,'Sant Just Desvern',6862,6865,3,1),(6417,'Sant Llorenç d\'Hortons',6866,6869,3,1),(6418,'Sant Llorenç de la Muga',14764,14767,3,1),(6419,'Sant Llorenç de Morunys',24342,24347,3,2),(6420,'Sant Llorenç des Cardassar',5576,5585,3,4),(6421,'Sant Llorenç Savall',6870,6875,3,2),(6422,'Sant Lluís',5728,5735,3,3),(6423,'Sant Martí d\'Albars',6876,6879,3,1),(6424,'Sant Martí de Centelles',6880,6883,3,1),(6425,'Sant Martí de Llémena',14768,14775,3,3),(6426,'Sant Martí de Riucorb',24348,24355,3,3),(6427,'Sant Martí de Tous',6884,6887,3,1),(6428,'Sant Martí Sarroca',6888,6891,3,1),(6429,'Sant Martí Sesgueioles',6892,6895,3,1),(6430,'Sant Martí Vell',14776,14779,3,1),(6431,'Sant Mateu',11686,11689,3,1),(6432,'Sant Mateu de Bages',6896,6901,3,2),(6433,'Sant Miquel de Campmajor',14780,14783,3,1),(6434,'Sant Miquel de Fluvià',14784,14787,3,1),(6435,'Sant Mori',14788,14791,3,1),(6436,'Sant Pau de Segúries',14792,14797,3,2),(6437,'Sant Pere de Ribes',6902,6907,3,2),(6438,'Sant Pere de Riudebitlles',6908,6911,3,1),(6439,'Sant Pere de Torelló',6912,6915,3,1),(6440,'Sant Pere de Vilamajor',6916,6923,3,3),(6441,'Sant Pere Pescador',14798,14801,3,1),(6442,'Sant Pere Sallavinera',6924,6927,3,1),(6443,'Sant Pol de Mar',6928,6931,3,1),(6444,'Sant Quintí de Mediona',6932,6935,3,1),(6445,'Sant Quirze de Besora',6936,6941,3,2),(6446,'Sant Quirze del Vallès',6942,6949,3,3),(6447,'Sant Quirze Safaja',6950,6953,3,1),(6448,'Sant Ramon',24356,24361,3,2),(6449,'Sant Sadurní d\'Anoia',6954,6957,3,1),(6450,'Sant Sadurní d\'Osormort',6958,6961,3,1),(6451,'Sant Salvador de Guardiola',6962,6965,3,1),(6452,'Sant Vicenç de Castellet',6966,6969,3,1),(6453,'Sant Vicenç de Montalt',6970,6973,3,1),(6454,'Sant Vicenç de Torelló',6974,6977,3,1),(6455,'Sant Vicenç dels Horts',6978,6981,3,1),(6456,'Santa Amalia',5054,5057,3,1),(6457,'Santa Ana',9860,9863,3,1),(6458,'Santa Ana de Pusa',39106,39109,3,1),(6459,'Santa Ana la Real',18108,18113,3,2),(6460,'Santa Bàrbara',37150,37153,3,1),(6461,'Santa Bárbara de Casa',18114,18117,3,1),(6462,'Santa Cecilia',8554,8557,3,1),(6463,'Santa Cecília de Voltregà',6982,6985,3,1),(6464,'Santa Cecilia del Alcor',30980,30983,3,1),(6465,'Santa Cilia',19186,19191,3,2),(6466,'Santa Clara de Avedillo',43022,43025,3,1),(6467,'Santa Coloma',21588,21591,3,1),(6468,'Santa Coloma de Cervelló',6986,6989,3,1),(6469,'Santa Coloma de Farners',14802,14805,3,1),(6470,'Santa Coloma de Gramenet',6990,6999,3,4),(6471,'Santa Coloma de Queralt',37154,37159,3,2),(6472,'Santa Colomba de Curueño',22776,22783,3,3),(6473,'Santa Colomba de las Monjas',43026,43029,3,1),(6474,'Santa Colomba de Somoza',22784,22789,3,2),(6475,'Santa Comba',20816,20835,3,9),(6476,'Santa Cristina d\'Aro',14806,14813,3,3),(6477,'Santa Cristina de la Polvorosa',43030,43033,3,1),(6478,'Santa Cristina de Valmadrigal',22790,22793,3,1),(6479,'Santa Croya de Tera',43034,43037,3,1),(6480,'Santa Cruz de Bezana',11016,11023,3,3),(6481,'Santa Cruz de Boedo',30984,30989,3,2),(6482,'Santa Cruz de Grío',44390,44393,3,1),(6483,'Santa Cruz de la Salceda',8558,8561,3,1),(6484,'Santa Cruz de la Serós',19192,19197,3,2),(6485,'Santa Cruz de la Sierra',9864,9867,3,1),(6486,'Santa Cruz de la Zarza',39110,39113,3,1),(6487,'Santa Cruz de los Cáñamos',12264,12267,3,1),(6488,'Santa Cruz de Marchena',2170,2173,3,1),(6489,'Santa Cruz de Moncayo',44394,44397,3,1),(6490,'Santa Cruz de Moya',13654,13659,3,2),(6491,'Santa Cruz de Mudela',12268,12271,3,1),(6492,'Santa Cruz de Nogueras',38168,38171,3,1),(6493,'Santa Cruz de Paniagua',9868,9873,3,2),(6494,'Santa Cruz de Pinares',4282,4285,3,1),(6495,'Santa Cruz de Yanguas',36242,36247,3,2),(6496,'Santa Cruz del Comercio',15808,15811,3,1),(6497,'Santa Cruz del Retamar',39114,39119,3,2),(6498,'Santa Cruz del Valle',4286,4289,3,1),(6499,'Santa Cruz del Valle Urbión',8562,8565,3,1),(6500,'Santa Elena',19842,19845,3,1),(6501,'Santa Elena de Jamuz',22794,22799,3,2),(6502,'Santa Engracia del Jubera',21592,21597,3,2),(6503,'Santa Eufemia',12810,12815,3,2),(6504,'Santa Eufemia del Arroyo',41186,41189,3,1),(6505,'Santa Eufemia del Barco',43038,43043,3,2),(6506,'Santa Eugènia',5586,5589,3,1),(6507,'Santa Eugènia de Berga',7000,7003,3,1),(6508,'Santa Eulalia',38172,38175,3,1),(6509,'Santa Eulalia Bajera',21598,21601,3,1),(6510,'Santa Eulalia de Gállego',44398,44401,3,1),(6511,'Santa Eulalia de Oscos',3184,3189,3,2),(6512,'Santa Eulàlia de Riuprimer',7004,7007,3,1),(6513,'Santa Eulàlia de Ronçana',7008,7011,3,1),(6514,'Santa Eulària des Riu',5282,5295,3,6),(6515,'Santa Fe',15812,15821,3,4),(6516,'Santa Fe de Mondújar',2174,2177,3,1),(6517,'Santa Fe del Penedès',7012,7015,3,1),(6518,'Santa Gadea del Cid',8566,8569,3,1),(6519,'Santa Inés',8570,8573,3,1),(6520,'Santa Llogaia d\'Àlguema',14814,14817,3,1),(6521,'Santa Magdalena de Pulpis',11690,11693,3,1),(6522,'Santa Margalida',5590,5597,3,3),(6523,'Santa Margarida de Montbui',7016,7019,3,1),(6524,'Santa Margarida i els Monjos',7020,7023,3,1),(6525,'Santa Maria d\'Oló',7024,7027,3,1),(6526,'Santa Maria de Besora',7028,7033,3,2),(6527,'Santa María de Cayón',11024,11035,3,5),(6528,'Santa María de Dulcis',19198,19203,3,2),(6529,'Santa María de Huerta',36248,36251,3,1),(6530,'Santa María de la Alameda',26628,26633,3,2),(6531,'Santa María de la Isla',22800,22803,3,1),(6532,'Santa María de la Vega',43044,43047,3,1),(6533,'Santa María de las Hoyas',36252,36255,3,1),(6534,'Santa María de los Caballeros',4290,4295,3,2),(6535,'Santa María de los Llanos',13660,13663,3,1),(6536,'Santa Maria de Martorelles',7034,7037,3,1),(6537,'Santa Maria de Merlès',7038,7043,3,2),(6538,'Santa Maria de Miralles',7044,7047,3,1),(6539,'Santa María de Ordás',22804,22813,3,4),(6540,'Santa Maria de Palautordera',7048,7051,3,1),(6541,'Santa María de Sando',33600,33603,3,1),(6542,'Santa María de Valverde',43048,43051,3,1),(6543,'Santa María del Arroyo',4296,4299,3,1),(6544,'Santa María del Berrocal',4300,4305,3,2),(6545,'Santa María del Camí',5598,5601,3,1),(6546,'Santa María del Campo',8574,8577,3,1),(6547,'Santa María del Campo Rus',13664,13667,3,1),(6548,'Santa María del Cubillo',4306,4309,3,1),(6549,'Santa María del Invierno',8578,8581,3,1),(6550,'Santa María del Mercadillo',8582,8585,3,1),(6551,'Santa María del Monte de Cea',22814,22819,3,2),(6552,'Santa María del Páramo',22820,22823,3,1),(6553,'Santa María del Tiétar',4310,4313,3,1),(6554,'Santa María del Val',13668,13671,3,1),(6555,'Santa María la Real de Nieva',34720,34737,3,8),(6556,'Santa María Rivarredonda',8586,8589,3,1),(6557,'Santa Marina del Rey',22824,22827,3,1),(6558,'Santa Marta',5058,5061,3,1),(6559,'Santa Marta de Magasca',9874,9877,3,1),(6560,'Santa Marta de Tormes',33604,33609,3,2),(6561,'Santa Marta del Cerro',34738,34741,3,1),(6562,'Santa Olalla',39120,39123,3,1),(6563,'Santa Olalla de Bureba',8590,8593,3,1),(6564,'Santa Olalla del Cala',18118,18123,3,2),(6565,'Santa Oliva',37160,37165,3,2),(6566,'Santa Pau',14818,14821,3,1),(6567,'Santa Perpètua de Mogoda',7052,7055,3,1),(6568,'Santa Pola',1590,1593,3,1),(6569,'Santa Susanna',7056,7059,3,1),(6570,'Santacara',29084,29087,3,1),(6571,'Santaella',12816,12823,3,3),(6572,'Santaliestra y San Quílez',19204,19209,3,2),(6573,'Santander',11036,11061,3,12),(6574,'Santanyí',5602,5621,3,9),(6575,'Santas Martas',22828,22835,3,3),(6576,'Santed',44402,44405,3,1),(6577,'Santervás de Campos',41190,41193,3,1),(6578,'Santervás de la Vega',30990,30993,3,1),(6579,'Santiago de Alcántara',9878,9883,3,2),(6580,'Santiago de Calatrava',19846,19849,3,1),(6581,'Santiago de Compostela',20836,20873,3,18),(6582,'Santiago de la Puebla',33610,33613,3,1),(6583,'Santiago del Campo',9884,9887,3,1),(6584,'Santiago del Collado',4314,4317,3,1),(6585,'Santiago del Tormes',4318,4321,3,1),(6586,'Santiago Millas',22836,22845,3,4),(6587,'Santiago-Pontones',19850,19865,3,7),(6588,'Santibáñez de Béjar',33614,33617,3,1),(6589,'Santibáñez de Ecla',30994,30997,3,1),(6590,'Santibáñez de Esgueva',8594,8597,3,1),(6591,'Santibáñez de la Peña',30998,31009,3,5),(6592,'Santibáñez de la Sierra',33618,33623,3,2),(6593,'Santibáñez de Tera',43052,43057,3,2),(6594,'Santibáñez de Valcorba',41194,41199,3,2),(6595,'Santibáñez de Vidriales',43058,43069,3,5),(6596,'Santibáñez del Val',8598,8603,3,2),(6597,'Santibáñez el Alto',9888,9891,3,1),(6598,'Santibáñez el Bajo',9892,9895,3,1),(6599,'Santillana del Mar',11062,11073,3,5),(6600,'Santiponce',35408,35411,3,1),(6601,'Santiso',20874,20877,3,1),(6602,'Santisteban del Puerto',19866,19869,3,1),(6603,'Santiurde de Reinosa',11074,11079,3,2),(6604,'Santiurde de Toranzo',11080,11087,3,3),(6605,'Santiuste',16934,16937,3,1),(6606,'Santiuste de Pedraza',34742,34749,3,3),(6607,'Santiuste de San Juan Bautista',34750,34753,3,1),(6608,'Santiz',33624,33627,3,1),(6609,'Santo Adriano',3190,3193,3,1),(6610,'Santo Domingo de la Calzada',21602,21605,3,1),(6611,'Santo Domingo de las Posadas',4322,4325,3,1),(6612,'Santo Domingo de Pirón',34754,34757,3,1),(6613,'Santo Domingo de Silos',8604,8607,3,1),(6614,'Santo Domingo-Caudilla',39124,39127,3,1),(6615,'Santo Tomé',19870,19873,3,1),(6616,'Santo Tomé de Zabarcos',4326,4329,3,1),(6617,'Santo Tomé del Puerto',34758,34761,3,1),(6618,'Santomera',27946,27955,3,4),(6619,'Santoña',11088,11095,3,3),(6620,'Santorcaz',26634,26637,3,1),(6621,'Santovenia',43070,43073,3,1),(6622,'Santovenia de la Valdoncina',22846,22851,3,2),(6623,'Santovenia de Pisuerga',41200,41203,3,1),(6624,'Santoyo',31010,31013,3,1),(6625,'Santpedor',7060,7063,3,1),(6626,'Santurde de Rioja',21606,21609,3,1),(6627,'Santurdejo',21610,21613,3,1),(6628,'Santurtzi',41992,41995,3,1),(6629,'Sanxenxo',31988,32001,3,6),(6630,'Sanzoles',43074,43077,3,1),(6631,'Sardón de Duero',41204,41207,3,1),(6632,'Sardón de los Frailes',33628,33631,3,1),(6633,'Sargentes de la Lora',8608,8615,3,3),(6634,'Sariego',3194,3197,3,1),(6635,'Sariegos',22852,22857,3,2),(6636,'Sariñena',19210,19219,3,4),(6637,'Saro',11096,11099,3,1),(6638,'Sarracín',8616,8619,3,1),(6639,'Sarral',37166,37173,3,3),(6640,'Sarreaus',30158,30165,3,3),(6641,'Sarria',25606,25633,3,13),(6642,'Sarrià de Ter',14822,14825,3,1),(6643,'Sarriés/Sartze',29088,29091,3,1),(6644,'Sarrión',38176,38181,3,2),(6645,'Sarroca de Bellera',24362,24365,3,1),(6646,'Sarroca de Lleida',24366,24369,3,1),(6647,'Sartaguda',29092,29095,3,1),(6648,'Sartajada',39128,39131,3,1),(6649,'Sasamón',8620,8625,3,2),(6650,'Sástago',44406,44409,3,1),(6651,'Saúca',16938,16941,3,1),(6652,'Saucedilla',9896,9899,3,1),(6653,'Saucelle',33632,33635,3,1),(6654,'Sauquillo de Cabezas',34762,34765,3,1),(6655,'Saus, Camallera i Llampaies',14826,14831,3,2),(6656,'Savallà del Comtat',37174,37177,3,1),(6657,'Sax',1594,1597,3,1),(6658,'Sayalonga',27316,27321,3,2),(6659,'Sayatón',16942,16945,3,1),(6660,'Sebúlcor',34766,34771,3,2),(6661,'Secastilla',19220,19225,3,2),(6662,'Sedaví',40302,40305,3,1),(6663,'Sedella',27322,27327,3,2),(6664,'Sediles',44410,44413,3,1),(6665,'Segart',40306,40309,3,1),(6666,'Segorbe',11694,11701,3,3),(6667,'Segovia',34772,34793,3,10),(6668,'Segura',17644,17647,3,1),(6669,'Segura de la Sierra',19874,19885,3,5),(6670,'Segura de León',5062,5065,3,1),(6671,'Segura de los Baños',38182,38185,3,1),(6672,'Segura de Toro',9900,9903,3,1),(6673,'Segurilla',39132,39135,3,1),(6674,'Seira',19226,19231,3,2),(6675,'Selas',16946,16949,3,1),(6676,'Selaya',11100,11103,3,1),(6677,'Sella',1598,1601,3,1),(6678,'Sellent',40310,40313,3,1),(6679,'Selva',5622,5631,3,4),(6680,'Semillas',16950,16953,3,1),(6681,'Sempere',40314,40317,3,1),(6682,'Sena',19232,19235,3,1),(6683,'Sena de Luna',22858,22863,3,2),(6684,'Senan',37178,37181,3,1),(6685,'Sencelles',5632,5641,3,4),(6686,'Señera',40318,40321,3,1),(6687,'Senés',2178,2181,3,1),(6688,'Senés de Alcubierre',19236,19239,3,1),(6689,'Senija',1602,1605,3,1),(6690,'Seno',38186,38189,3,1),(6691,'Senterada',24370,24377,3,3),(6692,'Sentmenat',7064,7067,3,1),(6693,'Sepulcro-Hilario',33636,33639,3,1),(6694,'Sepúlveda',34794,34807,3,6),(6695,'Sequera de Fresno',34808,34811,3,1),(6696,'Sequeros',33640,33643,3,1),(6697,'Serinyà',14832,14835,3,1),(6698,'Serón',2182,2191,3,4),(6699,'Serón de Nágima',36256,36259,3,1),(6700,'Seròs',24378,24381,3,1),(6701,'Serra',40322,40325,3,1),(6702,'Serra de Daró',14836,14839,3,1),(6703,'Serrada',41208,41211,3,1),(6704,'Serradilla',9904,9909,3,2),(6705,'Serradilla del Arroyo',33644,33649,3,2),(6706,'Serradilla del Llano',33650,33653,3,1),(6707,'Serranillos',4330,4335,3,2),(6708,'Serranillos del Valle',26638,26641,3,1),(6709,'Serrato',27328,27329,3,0),(6710,'Serrejón',9910,9913,3,1),(6711,'ses Salines',5642,5647,3,2),(6712,'Sesa',19240,19243,3,1),(6713,'Seseña',39136,39143,3,3),(6714,'Sesma',29096,29099,3,1),(6715,'Sestao',41996,41999,3,1),(6716,'Sestrica',44414,44419,3,2),(6717,'Sesué',19244,19247,3,1),(6718,'Setcases',14840,14843,3,1),(6719,'Setenil de las Bodegas',10412,10415,3,1),(6720,'Setiles',16954,16957,3,1),(6721,'Seva',7068,7073,3,2),(6722,'Sevilla',35412,35455,3,21),(6723,'Sevilla la Nueva',26642,26645,3,1),(6724,'Sevilleja de la Jara',39144,39151,3,3),(6725,'Sidamon',24382,24385,3,1),(6726,'Sienes',16958,16961,3,1),(6727,'Siero',3198,3229,3,15),(6728,'Sierra de Fuentes',9914,9917,3,1),(6729,'Sierra de Luna',44420,44423,3,1),(6730,'Sierra de Yeguas',27330,27335,3,2),(6731,'Sierra Engarcerán',11702,11711,3,4),(6732,'Sierro',2192,2195,3,1),(6733,'Siétamo',19248,19255,3,3),(6734,'Siete Aguas',40326,40331,3,2),(6735,'Siete Iglesias de Trabancos',41212,41215,3,1),(6736,'Sieteiglesias de Tormes',33654,33657,3,1),(6737,'Sigeres',4336,4339,3,1),(6738,'Sigüenza',16962,16983,3,10),(6739,'Sigüés',44424,44429,3,2),(6740,'Siles',19886,19889,3,1),(6741,'Silla',40332,40335,3,1),(6742,'Silleda',32002,32027,3,12),(6743,'Sils',14844,14849,3,2),(6744,'Simancas',41216,41219,3,1),(6745,'Simat de la Valldigna',40336,40339,3,1),(6746,'Sinarcas',40340,40343,3,1),(6747,'Sineu',5648,5651,3,1),(6748,'Singra',38190,38193,3,1),(6749,'Sinlabajos',4340,4343,3,1),(6750,'Siruela',5066,5069,3,1),(6751,'Sisamón',44430,44433,3,1),(6752,'Sisante',13672,13675,3,1),(6753,'Sitges',7074,7079,3,2),(6754,'Siurana',14850,14853,3,1),(6755,'Soba',11104,11117,3,6),(6756,'Sober',25634,25655,3,10),(6757,'Sobradiel',44434,44437,3,1),(6758,'Sobradillo',33658,33661,3,1),(6759,'Sobrado',20878,20885,3,3),(6760,'Sobrado',22864,22865,3,0),(6761,'Sobremunt',7080,7083,3,1),(6762,'Sobrescobio',3230,3233,3,1),(6763,'Socovos',808,813,3,2),(6764,'Socuéllamos',12272,12275,3,1),(6765,'Sojuela',21614,21617,3,1),(6766,'Solana de Ávila',4344,4349,3,2),(6767,'Solana de los Barros',5070,5077,3,3),(6768,'Solana de Rioalmar',4350,4353,3,1),(6769,'Solana del Pino',12276,12279,3,1),(6770,'Solanillos del Extremo',16984,16987,3,1),(6771,'Solarana',8626,8629,3,1),(6772,'Solera de Gabaldón',13676,13679,3,1),(6773,'Soliedra',36260,36265,3,2),(6774,'Solivella',37182,37185,3,1),(6775,'Sollana',40344,40349,3,2),(6776,'Sóller',5652,5661,3,4),(6777,'Solórzano',11118,11125,3,3),(6778,'Solosancho',4354,4357,3,1),(6779,'Solsona',24386,24389,3,1),(6780,'Somiedo',3234,3241,3,3),(6781,'Somolinos',16988,16991,3,1),(6782,'Somontín',2196,2199,3,1),(6783,'Somosierra',26646,26649,3,1),(6784,'Son Servera',5662,5671,3,4),(6785,'Sondika',42000,42003,3,1),(6786,'Soneja',11712,11715,3,1),(6787,'Sonseca',39152,39157,3,2),(6788,'Sopeira',19256,19259,3,1),(6789,'Sopela',42004,42007,3,1),(6790,'Soportújar',15822,15825,3,1),(6791,'Sopuerta',42008,42017,3,4),(6792,'Sora',7084,7087,3,1),(6793,'Soraluze-Placencia de las Armas',17648,17651,3,1),(6794,'Sorbas',2200,2217,3,8),(6795,'Sordillos',8630,8633,3,1),(6796,'Soria',36266,36281,3,7),(6797,'Soriguera',24390,24397,3,3),(6798,'Sorihuela',33662,33665,3,1),(6799,'Sorihuela del Guadalimar',19890,19893,3,1),(6800,'Sorlada',29100,29103,3,1),(6801,'Sort',24398,24407,3,4),(6802,'Sorvilán',15826,15833,3,3),(6803,'Sorzano',21618,21621,3,1),(6804,'Sos del Rey Católico',44438,44447,3,4),(6805,'Soses',24408,24411,3,1),(6806,'Sot de Chera',40350,40355,3,2),(6807,'Sot de Ferrer',11716,11719,3,1),(6808,'Sotalbo',4358,4361,3,1),(6809,'Sotés',21622,21625,3,1),(6810,'Sotillo',34812,34815,3,1),(6811,'Sotillo de la Adrada',4362,4365,3,1),(6812,'Sotillo de la Ribera',8634,8639,3,2),(6813,'Sotillo de las Palomas',39158,39161,3,1),(6814,'Sotillo del Rincón',36282,36287,3,2),(6815,'Soto de Cerrato',31014,31017,3,1),(6816,'Soto de la Vega',22866,22873,3,3),(6817,'Soto del Barco',3242,3251,3,4),(6818,'Soto del Real',26650,26653,3,1),(6819,'Soto en Cameros',21626,21629,3,1),(6820,'Soto y Amío',22874,22883,3,4),(6821,'Sotobañado y Priorato',31018,31021,3,1),(6822,'Sotodosos',16992,16995,3,1),(6823,'Sotorribas',13680,13687,3,3),(6824,'Sotosalbos',34816,34819,3,1),(6825,'Sotoserrano',33666,33669,3,1),(6826,'Sotragero',8640,8645,3,2),(6827,'Sotresgudo',8646,8653,3,3),(6828,'Soutomaior',32028,32033,3,2),(6829,'Suances',11126,11133,3,3),(6830,'Subirats',7088,7091,3,1),(6831,'Sudanell',24412,24415,3,1),(6832,'Sueca',40356,40363,3,3),(6833,'Suellacabras',36288,36291,3,1),(6834,'Sueras/Suera',11720,11723,3,1),(6835,'Suflí',2218,2221,3,1),(6836,'Sukarrieta',42018,42021,3,1),(6837,'Sumacárcer',40364,40367,3,1),(6838,'Sunbilla',29104,29107,3,1),(6839,'Sunyer',24416,24419,3,1),(6840,'Súria',7092,7095,3,1),(6841,'Susinos del Páramo',8654,8657,3,1),(6842,'Susqueda',14854,14859,3,2),(6843,'Tabanera de Cerrato',31022,31025,3,1),(6844,'Tabanera de Valdavia',31026,31029,3,1),(6845,'Tabanera la Luenga',34820,34823,3,1),(6846,'Tábara',43078,43081,3,1),(6847,'Tabera de Abajo',33670,33677,3,3),(6848,'Tabernas',2222,2227,3,2),(6849,'Taberno',2228,2233,3,2),(6850,'Taboada',25656,25673,3,8),(6851,'Taboadela',30166,30171,3,2),(6852,'Tabuenca',44448,44451,3,1),(6853,'Tafalla',29108,29111,3,1),(6854,'Tagamanent',7096,7099,3,1),(6855,'Tahal',2234,2239,3,2),(6856,'Tajahuerce',36292,36295,3,1),(6857,'Tajueco',36296,36299,3,1),(6858,'Talamanca',7100,7103,3,1),(6859,'Talamanca de Jarama',26654,26657,3,1),(6860,'Talamantes',44452,44455,3,1),(6861,'Talarn',24420,24423,3,1),(6862,'Talarrubias',5078,5081,3,1),(6863,'Talaván',9918,9921,3,1),(6864,'Talavera',24424,24429,3,2),(6865,'Talavera de la Reina',39162,39171,3,4),(6866,'Talavera la Real',5082,5085,3,1),(6867,'Talaveruela de la Vera',9922,9925,3,1),(6868,'Talayuela',9926,9933,3,3),(6869,'Talayuelas',13688,13693,3,2),(6870,'Tales',11724,11727,3,1),(6871,'Táliga',5086,5089,3,1),(6872,'Talveila',36300,36305,3,2),(6873,'Tamajón',16996,17003,3,3),(6874,'Tamames',33678,33685,3,3),(6875,'Támara de Campos',31030,31033,3,1),(6876,'Tamarite de Litera',19260,19267,3,3),(6877,'Tamariz de Campos',41220,41223,3,1),(6878,'Tamarón',8658,8661,3,1),(6879,'Tamurejo',5090,5093,3,1),(6880,'Tapia de Casariego',3252,3263,3,5),(6881,'Tapioles',43082,43085,3,1),(6882,'Taradell',7104,7107,3,1),(6883,'Taragudo',17004,17007,3,1),(6884,'Taramundi',3264,3267,3,1),(6885,'Tarancón',13694,13697,3,1),(6886,'Taravilla',17008,17011,3,1),(6887,'Tarazona',44456,44463,3,3),(6888,'Tarazona de Guareña',33686,33689,3,1),(6889,'Tarazona de la Mancha',814,819,3,2),(6890,'Tàrbena',1606,1609,3,1),(6891,'Tardáguila',33690,33693,3,1),(6892,'Tardajos',8662,8665,3,1),(6893,'Tardelcuende',36306,36309,3,1),(6894,'Tardienta',19268,19271,3,1),(6895,'Tariego de Cerrato',31034,31037,3,1),(6896,'Tarifa',10416,10427,3,5),(6897,'Taroda',36310,36313,3,1),(6898,'Tarragona',37186,37207,3,10),(6899,'Tàrrega',24430,24445,3,7),(6900,'Tarrés',24446,24449,3,1),(6901,'Tarroja de Segarra',24450,24453,3,1),(6902,'Tartanedo',17012,17021,3,4),(6903,'Tauste',44464,44469,3,2),(6904,'Tavernes Blanques',40368,40371,3,1),(6905,'Tavernes de la Valldigna',40372,40375,3,1),(6906,'Tavèrnoles',7108,7111,3,1),(6907,'Tavertet',7112,7115,3,1),(6908,'Teba',27336,27339,3,1),(6909,'Tébar',13698,13701,3,1),(6910,'Teià',7116,7119,3,1),(6911,'Tejada',8666,8669,3,1),(6912,'Tejadillos',13702,13705,3,1),(6913,'Tejado',36314,36319,3,2),(6914,'Tejeda de Tiétar',9934,9939,3,2),(6915,'Tejeda y Segoyuela',33694,33697,3,1),(6916,'Tella-Sin',19272,19279,3,3),(6917,'Tembleque',39172,39175,3,1),(6918,'Tendilla',17022,17025,3,1),(6919,'Tenebrón',33698,33701,3,1),(6920,'Teo',20886,20895,3,4),(6921,'Teresa',11728,11731,3,1),(6922,'Teresa de Cofrentes',40376,40381,3,2),(6923,'Térmens',24454,24457,3,1),(6924,'Terque',2240,2245,3,2),(6925,'Terrades',14860,14863,3,1),(6926,'Terradillos',33702,33709,3,3),(6927,'Terradillos de Esgueva',8670,8673,3,1),(6928,'Terrassa',7120,7139,3,9),(6929,'Terrateig',40382,40385,3,1),(6930,'Terrer',44470,44473,3,1),(6931,'Terriente',38194,38197,3,1),(6932,'Terrinches',12280,12283,3,1),(6933,'Terroba',21630,21633,3,1),(6934,'Teruel',38198,38221,3,11),(6935,'Terzaga',17026,17029,3,1),(6936,'Teulada',1610,1615,3,2),(6937,'Teverga',3268,3273,3,2),(6938,'Tiana',7140,7143,3,1),(6939,'Tibi',1616,1619,3,1),(6940,'Tiebas-Muruarte de Reta',29112,29117,3,2),(6941,'Tiedra',41224,41227,3,1),(6942,'Tielmes',26658,26661,3,1),(6943,'Tierga',44474,44477,3,1),(6944,'Tierz',19280,19283,3,1),(6945,'Tierzo',17030,17033,3,1),(6946,'Tiétar',9940,9941,3,0),(6947,'Tíjola',2246,2255,3,4),(6948,'Tinajas',13706,13709,3,1),(6949,'Tineo',3274,3291,3,8),(6950,'Tinieblas de la Sierra',8674,8679,3,2),(6951,'Tiñosillos',4366,4369,3,1),(6952,'Tirapu',29118,29121,3,1),(6953,'Tirgo',21634,21639,3,2),(6954,'Tírig',11732,11735,3,1),(6955,'Tírvia',24458,24461,3,1),(6956,'Titaguas',40386,40389,3,1),(6957,'Titulcia',26662,26665,3,1),(6958,'Tiurana',24462,24465,3,1),(6959,'Tivenys',37208,37211,3,1),(6960,'Tivissa',37212,37217,3,2),(6961,'Tobar',8680,8683,3,1),(6962,'Tobarra',820,827,3,3),(6963,'Tobed',44478,44481,3,1),(6964,'Tobía',21640,21643,3,1),(6965,'Tocina',35456,35461,3,2),(6966,'Todolella',11736,11739,3,1),(6967,'Toén',30172,30181,3,4),(6968,'Toga',11740,11743,3,1),(6969,'Tolbaños',4370,4375,3,2),(6970,'Toledo',39176,39193,3,8),(6971,'Tollos',1620,1623,3,1),(6972,'Tolocirio',34824,34827,3,1),(6973,'Tolosa',17652,17661,3,4),(6974,'Tolox',27340,27343,3,1),(6975,'Tolva',19284,19287,3,1),(6976,'Tomares',35462,35465,3,1),(6977,'Tomelloso',12284,12289,3,2),(6978,'Tomiño',32034,32059,3,12),(6979,'Tona',7144,7147,3,1),(6980,'Topas',33710,33713,3,1),(6981,'Toques',20896,20899,3,1),(6982,'Torà',24466,24471,3,2),(6983,'Toral de los Guzmanes',22884,22887,3,1),(6984,'Toral de los Vados',22888,22901,3,6),(6985,'Torás',11744,11747,3,1),(6986,'Tordehumos',41228,41231,3,1),(6987,'Tordellego',17034,17037,3,1),(6988,'Tordelrábano',17038,17041,3,1),(6989,'Tordera',7148,7151,3,1),(6990,'Tordesillas',41232,41239,3,3),(6991,'Tordesilos',17042,17045,3,1),(6992,'Tordillos',33714,33717,3,1),(6993,'Tordoia',20900,20907,3,3),(6994,'Tordómar',8684,8687,3,1),(6995,'Torelló',7152,7155,3,1),(6996,'Toreno',22902,22917,3,7),(6997,'Torija',17046,17051,3,2),(6998,'Toril',9942,9951,3,4),(6999,'Toril y Masegoso',38222,38225,3,1),(7000,'Torla-Ordesa',19288,19295,3,3),(7001,'Torlengua',36320,36323,3,1),(7002,'Tormantos',21644,21647,3,1),(7003,'Tormellas',4376,4379,3,1),(7004,'Tormón',38226,38229,3,1),(7005,'Tormos',1624,1627,3,1),(7006,'Tornabous',24472,24475,3,1),(7007,'Tornadizos de Ávila',4380,4383,3,1),(7008,'Tornavacas',9952,9955,3,1),(7009,'Tornos',38230,38233,3,1),(7010,'Toro',43086,43095,3,4),(7011,'Torquemada',31038,31041,3,1),(7012,'Torralba',13710,13713,3,1),(7013,'Torralba de Aragón',19296,19299,3,1),(7014,'Torralba de Calatrava',12290,12293,3,1),(7015,'Torralba de los Frailes',44482,44485,3,1),(7016,'Torralba de los Sisones',38234,38237,3,1),(7017,'Torralba de Oropesa',39194,39197,3,1),(7018,'Torralba de Ribota',44486,44489,3,1),(7019,'Torralba del Pinar',11748,11751,3,1),(7020,'Torralba del Río',29122,29127,3,2),(7021,'Torralbilla',44490,44493,3,1),(7022,'Torre Alháquime',10428,10431,3,1),(7023,'Torre de Arcas',38238,38241,3,1),(7024,'Torre de Don Miguel',9956,9959,3,1),(7025,'Torre de Esgueva',41240,41243,3,1),(7026,'Torre de Juan Abad',12294,12297,3,1),(7027,'Torre de las Arcas',38242,38245,3,1),(7028,'Torre de Miguel Sesmero',5094,5097,3,1),(7029,'Torre de Peñafiel',41244,41249,3,2),(7030,'Torre de Santa María',9960,9963,3,1),(7031,'Torre del Bierzo',22918,22933,3,7),(7032,'Torre del Burgo',17052,17055,3,1),(7033,'Torre del Compte',38246,38249,3,1),(7034,'Torre en Cameros',21648,21651,3,1),(7035,'Torre la Ribera',19300,19307,3,3),(7036,'Torre los Negros',38250,38253,3,1),(7037,'Torre Val de San Pedro',34828,34831,3,1),(7038,'Torre-Cardela',15834,15837,3,1),(7039,'Torre-Pacheco',27956,27971,3,7),(7040,'Torre-serona',24476,24479,3,1),(7041,'Torreadrada',34832,34835,3,1),(7042,'Torrebaja',40390,40393,3,1),(7043,'Torrebesses',24480,24483,3,1),(7044,'Torreblacos',36324,36329,3,2),(7045,'Torreblanca',11752,11755,3,1),(7046,'Torreblascopedro',19894,19899,3,2),(7047,'Torrecaballeros',34836,34839,3,1),(7048,'Torrecampo',12824,12827,3,1),(7049,'Torrechiva',11756,11759,3,1),(7050,'Torrecilla de Alcañiz',38254,38257,3,1),(7051,'Torrecilla de la Abadesa',41250,41253,3,1),(7052,'Torrecilla de la Jara',39198,39201,3,1),(7053,'Torrecilla de la Orden',41254,41257,3,1),(7054,'Torrecilla de la Torre',41258,41261,3,1),(7055,'Torrecilla de los Ángeles',9964,9967,3,1),(7056,'Torrecilla del Monte',8688,8691,3,1),(7057,'Torrecilla del Pinar',34840,34843,3,1),(7058,'Torrecilla del Rebollar',38258,38263,3,2),(7059,'Torrecilla en Cameros',21652,21655,3,1),(7060,'Torrecilla sobre Alesanco',21656,21659,3,1),(7061,'Torrecillas de la Tiesa',9968,9971,3,1),(7062,'Torrecuadrada de Molina',17056,17059,3,1),(7063,'Torrecuadradilla',17060,17063,3,1),(7064,'Torredelcampo',19900,19903,3,1),(7065,'Torredembarra',37218,37221,3,1),(7066,'Torredonjimeno',19904,19907,3,1),(7067,'Torrefarrera',24484,24491,3,3),(7068,'Torrefeta i Florejacs',24492,24497,3,2),(7069,'Torregalindo',8692,8695,3,1),(7070,'Torregamones',43096,43099,3,1),(7071,'Torregrossa',24498,24501,3,1),(7072,'Torrehermosa',44494,44497,3,1),(7073,'Torreiglesias',34844,34849,3,2),(7074,'Torrejón de Ardoz',26666,26669,3,1),(7075,'Torrejón de la Calzada',26670,26673,3,1),(7076,'Torrejón de Velasco',26674,26677,3,1),(7077,'Torrejón del Rey',17064,17067,3,1),(7078,'Torrejón el Rubio',9972,9975,3,1),(7079,'Torrejoncillo',9976,9981,3,2),(7080,'Torrejoncillo del Rey',13714,13721,3,3),(7081,'Torrelacárcel',38264,38267,3,1),(7082,'Torrelaguna',26678,26681,3,1),(7083,'Torrelameu',24502,24505,3,1),(7084,'Torrelapaja',44498,44501,3,1),(7085,'Torrelara',8696,8699,3,1),(7086,'Torrelavega',11134,11143,3,4),(7087,'Torrelavit',7156,7159,3,1),(7088,'Torrella',40394,40397,3,1),(7089,'Torrellas',44502,44505,3,1),(7090,'Torrelles de Foix',7160,7163,3,1),(7091,'Torrelles de Llobregat',7164,7167,3,1),(7092,'Torrelobatón',41262,41265,3,1),(7093,'Torrelodones',26682,26685,3,1),(7094,'Torremanzanas/la Torre de les Maçanes',1628,1631,3,1),(7095,'Torremayor',5098,5101,3,1),(7096,'Torremejía',5102,5105,3,1),(7097,'Torremenga',9982,9985,3,1),(7098,'Torremocha',9986,9989,3,1),(7099,'Torremocha de Jadraque',17068,17071,3,1),(7100,'Torremocha de Jarama',26686,26689,3,1),(7101,'Torremocha de Jiloca',38268,38271,3,1),(7102,'Torremocha del Campo',17072,17079,3,3),(7103,'Torremocha del Pinar',17080,17083,3,1),(7104,'Torremochuela',17084,17087,3,1),(7105,'Torremolinos',27344,27347,3,1),(7106,'Torremontalbo',21660,21663,3,1),(7107,'Torremormojón',31042,31045,3,1),(7108,'Torrent',14864,14877,3,6),(7109,'Torrent',40398,40399,3,0),(7110,'Torrente de Cinca',19308,19311,3,1),(7111,'Torrenueva',12298,12301,3,1),(7112,'Torreorgaz',9990,9993,3,1),(7113,'Torrepadre',8700,8705,3,2),(7114,'Torreperogil',19908,19911,3,1),(7115,'Torrequemada',9994,9997,3,1),(7116,'Torres',19912,19915,3,1),(7117,'Torres de Albánchez',19916,19919,3,1),(7118,'Torres de Albarracín',38272,38275,3,1),(7119,'Torres de Alcanadre',19312,19315,3,1),(7120,'Torres de Barbués',19316,19319,3,1),(7121,'Torres de Berrellén',44506,44509,3,1),(7122,'Torres de la Alameda',26690,26693,3,1),(7123,'Torres de Segre',24506,24509,3,1),(7124,'Torres del Carrizal',43100,43103,3,1),(7125,'Torres del Río',29128,29131,3,1),(7126,'Torres Torres',40400,40403,3,1),(7127,'Torresandino',8706,8709,3,1),(7128,'Torrescárcela',41266,41269,3,1),(7129,'Torresmenudas',33718,33721,3,1),(7130,'Torrevelilla',38276,38279,3,1),(7131,'Torrevieja',1632,1649,3,8),(7132,'Torrico',39202,39205,3,1),(7133,'Torrijas',38280,38283,3,1),(7134,'Torrijo de la Cañada',44510,44513,3,1),(7135,'Torrijo del Campo',38284,38287,3,1),(7136,'Torrijos',39206,39209,3,1),(7137,'Torroella de Fluvià',14878,14881,3,1),(7138,'Torroella de Montgrí',14882,14893,3,5),(7139,'Torroja del Priorat',37222,37225,3,1),(7140,'Torrox',27348,27355,3,3),(7141,'Torrubia',17088,17091,3,1),(7142,'Torrubia de Soria',36330,36333,3,1),(7143,'Torrubia del Campo',13722,13725,3,1),(7144,'Torrubia del Castillo',13726,13729,3,1),(7145,'Tortellà',14894,14897,3,1),(7146,'Tórtola de Henares',17092,17095,3,1),(7147,'Tórtoles',4384,4387,3,1),(7148,'Tórtoles de Esgueva',8710,8715,3,2),(7149,'Tortosa',37226,37239,3,6),(7150,'Tortuera',17096,17099,3,1),(7151,'Tortuero',17100,17103,3,1),(7152,'Torvizcón',15838,15841,3,1),(7153,'Tosantos',8716,8719,3,1),(7154,'Toses',14898,14901,3,1),(7155,'Tosos',44514,44517,3,1),(7156,'Tossa de Mar',14902,14905,3,1),(7157,'Totalán',27356,27359,3,1),(7158,'Totana',27972,27979,3,3),(7159,'Totanés',39210,39213,3,1),(7160,'Touro',20908,20917,3,4),(7161,'Tous',40404,40407,3,1),(7162,'Trabada',25674,25683,3,4),(7163,'Trabadelo',22934,22939,3,2),(7164,'Trabanca',33722,33725,3,1),(7165,'Trabazos',43104,43113,3,4),(7166,'Tragacete',13730,13733,3,1),(7167,'Traíd',17104,17107,3,1),(7168,'Traiguera',11760,11763,3,1),(7169,'Tramacastiel',38288,38293,3,2),(7170,'Tramacastilla',38294,38297,3,1),(7171,'Tramaced',19320,19323,3,1),(7172,'Trasierra',5106,5109,3,1),(7173,'Trasmiras',30182,30191,3,4),(7174,'Trasmoz',44518,44521,3,1),(7175,'Trasobares',44522,44525,3,1),(7176,'Traspinedo',41270,41273,3,1),(7177,'Trazo',20918,20923,3,2),(7178,'Trebujena',10432,10435,3,1),(7179,'Trefacio',43114,43119,3,2),(7180,'Tremedal de Tormes',33726,33731,3,2),(7181,'Tremp',24510,24535,3,12),(7182,'Tres Cantos',26694,26699,3,2),(7183,'Trescasas',34850,34853,3,1),(7184,'Tresjuncos',13734,13737,3,1),(7185,'Trespaderne',8720,8727,3,3),(7186,'Tresviso',11144,11147,3,1),(7187,'Trévago',36334,36337,3,1),(7188,'Trevélez',15842,15845,3,1),(7189,'Treviana',21664,21667,3,1),(7190,'Triacastela',25684,25695,3,5),(7191,'Tribaldos',13738,13741,3,1),(7192,'Tricio',21668,21671,3,1),(7193,'Trigueros',18124,18127,3,1),(7194,'Trigueros del Valle',41274,41277,3,1),(7195,'Trijueque',17108,17111,3,1),(7196,'Trillo',17112,17119,3,3),(7197,'Triollo',31046,31049,3,1),(7198,'Tronchón',38298,38301,3,1),(7199,'Truchas',22940,22947,3,3),(7200,'Trucios-Turtzioz',42022,42025,3,1),(7201,'Trujillanos',5110,5113,3,1),(7202,'Trujillo',9998,10009,3,5),(7203,'Tubilla del Agua',8728,8733,3,2),(7204,'Tubilla del Lago',8734,8737,3,1),(7205,'Tudanca',11148,11151,3,1),(7206,'Tudela',29132,29135,3,1),(7207,'Tudela de Duero',41278,41285,3,3),(7208,'Tudelilla',21672,21675,3,1),(7209,'Tuéjar',40408,40411,3,1),(7210,'Tui',32060,32081,3,10),(7211,'Tulebras',29136,29139,3,1),(7212,'Turcia',22948,22953,3,2),(7213,'Turégano',34854,34859,3,2),(7214,'Turís',40412,40415,3,1),(7215,'Turleque',39214,39217,3,1),(7216,'Turón',15846,15849,3,1),(7217,'Turre',2256,2259,3,1),(7218,'Turrillas',2260,2263,3,1),(7219,'Úbeda',19920,19931,3,5),(7220,'Ubide',42026,42029,3,1),(7221,'Ubrique',10436,10439,3,1),(7222,'Ucar',29140,29143,3,1),(7223,'Uceda',17120,17123,3,1),(7224,'Ucero',36338,36341,3,1),(7225,'Uclés',13742,13745,3,1),(7226,'Udías',11152,11155,3,1),(7227,'Ugao-Miraballes',42030,42033,3,1),(7228,'Ugena',39218,39221,3,1),(7229,'Ugíjar',15850,15857,3,3),(7230,'Uharte Arakil',29144,29147,3,1),(7231,'Ujados',17124,17127,3,1),(7232,'Ujué',29148,29151,3,1),(7233,'Ulea',27980,27983,3,1),(7234,'Uleila del Campo',2264,2269,3,2),(7235,'Ullà',14906,14909,3,1),(7236,'Ullastrell',7168,7171,3,1),(7237,'Ullastret',14910,14913,3,1),(7238,'Ulldecona',37240,37247,3,3),(7239,'Ulldemolins',37248,37251,3,1),(7240,'Ultramort',14914,14917,3,1),(7241,'Ultzama',29152,29157,3,2),(7242,'Umbrete',35466,35469,3,1),(7243,'Umbrías',4388,4391,3,1),(7244,'Uña',13746,13749,3,1),(7245,'Uña de Quintana',43120,43123,3,1),(7246,'Uncastillo',44526,44529,3,1),(7247,'Unciti',29158,29163,3,2),(7248,'Undués de Lerda',44530,44533,3,1),(7249,'Unzué/Untzue',29164,29167,3,1),(7250,'Úrbel del Castillo',8738,8741,3,1),(7251,'Urda',39222,39225,3,1),(7252,'Urdazubi/Urdax',29168,29173,3,2),(7253,'Urdiain',29174,29177,3,1),(7254,'Urdiales del Páramo',22954,22959,3,2),(7255,'Urduliz',42034,42039,3,2),(7256,'Urduña/Orduña',42040,42045,3,2),(7257,'Urkabustaiz',278,285,3,3),(7258,'Urnieta',17662,17665,3,1),(7259,'Urones de Castroponce',41286,41289,3,1),(7260,'Urrácal',2270,2273,3,1),(7261,'Urraul Alto',29178,29183,3,2),(7262,'Urraul Bajo',29184,29191,3,3),(7263,'Urrea de Gaén',38302,38305,3,1),(7264,'Urrea de Jalón',44534,44537,3,1),(7265,'Urretxu',17666,17669,3,1),(7266,'Urriés',44538,44541,3,1),(7267,'Urroz',29192,29195,3,1),(7268,'Urroz-Villa',29196,29199,3,1),(7269,'Urueña',41290,41293,3,1),(7270,'Urueñas',34860,34863,3,1),(7271,'Uruñuela',21676,21679,3,1),(7272,'Urús',14918,14921,3,1),(7273,'Urzainqui/Urzainki',29200,29203,3,1),(7274,'Usagre',5114,5117,3,1),(7275,'Used',44542,44545,3,1),(7276,'Useras/les Useres',11764,11771,3,3),(7277,'Usurbil',17670,17675,3,2),(7278,'Utande',17128,17131,3,1),(7279,'Utebo',44546,44549,3,1),(7280,'Uterga',29204,29207,3,1),(7281,'Utiel',40416,40425,3,4),(7282,'Utrera',35470,35483,3,6),(7283,'Utrillas',38306,38313,3,3),(7284,'Uztárroz/Uztarroze',29208,29211,3,1),(7285,'Vacarisses',7172,7175,3,1),(7286,'Vadillo',36342,36345,3,1),(7287,'Vadillo de la Guareña',43124,43127,3,1),(7288,'Vadillo de la Sierra',4392,4395,3,1),(7289,'Vadocondes',8742,8745,3,1),(7290,'Val de San Lorenzo',22960,22963,3,1),(7291,'Val de San Martín',44550,44553,3,1),(7292,'Val de San Vicente',11156,11167,3,5),(7293,'Val do Dubra',20924,20933,3,4),(7294,'Valacloche',38314,38317,3,1),(7295,'Valbona',38318,38321,3,1),(7296,'Valbuena de Duero',41294,41297,3,1),(7297,'Valbuena de Pisuerga',31050,31053,3,1),(7298,'Valcabado',43128,43131,3,1),(7299,'Valdáliga',11168,11175,3,3),(7300,'Valdaracete',26700,26703,3,1),(7301,'Valdarachas',17132,17135,3,1),(7302,'Valdastillas',10010,10013,3,1),(7303,'Valde-Ucieza',31054,31057,3,1),(7304,'Valdealgorfa',38322,38325,3,1),(7305,'Valdeande',8746,8749,3,1),(7306,'Valdearcos de la Vega',41298,41301,3,1),(7307,'Valdearenas',17136,17139,3,1),(7308,'Valdeavellano',17140,17143,3,1),(7309,'Valdeavellano de Tera',36346,36349,3,1),(7310,'Valdeavero',26704,26707,3,1),(7311,'Valdeaveruelo',17144,17149,3,2),(7312,'Valdecaballeros',5118,5121,3,1),(7313,'Valdecañas de Tajo',10014,10019,3,2),(7314,'Valdecarros',33732,33735,3,1),(7315,'Valdecasa',4396,4399,3,1),(7316,'Valdeconcha',17150,17153,3,1),(7317,'Valdecuenca',38326,38329,3,1),(7318,'Valdefinjas',43132,43135,3,1),(7319,'Valdefresno',22964,22973,3,4),(7320,'Valdefuentes',10020,10025,3,2),(7321,'Valdefuentes de Sangusín',33736,33739,3,1),(7322,'Valdefuentes del Páramo',22974,22977,3,1),(7323,'Valdeganga',828,831,3,1),(7324,'Valdegeña',36350,36353,3,1),(7325,'Valdegovía/Gaubea',286,295,3,4),(7326,'Valdegrudas',17154,17157,3,1),(7327,'Valdehijaderos',33740,33743,3,1),(7328,'Valdehorna',44554,44557,3,1),(7329,'Valdehúncar',10026,10029,3,1),(7330,'Valdelacalzada',5122,5125,3,1),(7331,'Valdelacasa',33744,33747,3,1),(7332,'Valdelacasa de Tajo',10030,10033,3,1),(7333,'Valdelageve',33748,33751,3,1),(7334,'Valdelagua del Cerro',36354,36357,3,1),(7335,'Valdelaguna',26708,26711,3,1),(7336,'Valdelarco',18128,18131,3,1),(7337,'Valdelcubo',17158,17161,3,1),(7338,'Valdelinares',38330,38333,3,1),(7339,'Valdelosa',33752,33755,3,1),(7340,'Valdeltormo',38334,38337,3,1),(7341,'Valdelugueros',22978,22987,3,4),(7342,'Valdemadera',21680,21683,3,1),(7343,'Valdemaluque',36358,36363,3,2),(7344,'Valdemanco',26712,26715,3,1),(7345,'Valdemanco del Esteras',12302,12305,3,1),(7346,'Valdemaqueda',26716,26719,3,1),(7347,'Valdemeca',13750,13753,3,1),(7348,'Valdemierque',33756,33759,3,1),(7349,'Valdemora',22988,22991,3,1),(7350,'Valdemorales',10034,10037,3,1),(7351,'Valdemorillo',26720,26723,3,1),(7352,'Valdemorillo de la Sierra',13754,13757,3,1),(7353,'Valdemoro',26724,26733,3,4),(7354,'Valdemoro-Sierra',13758,13761,3,1),(7355,'Valdenebro',36364,36371,3,3),(7356,'Valdenebro de los Valles',41302,41305,3,1),(7357,'Valdenuño Fernández',17162,17165,3,1),(7358,'Valdeobispo',10038,10041,3,1),(7359,'Valdeolea',11176,11181,3,2),(7360,'Valdeolivas',13762,13765,3,1),(7361,'Valdeolmillos',31058,31061,3,1),(7362,'Valdeolmos-Alalpardo',26734,26737,3,1),(7363,'Valdepeñas',12306,12311,3,2),(7364,'Valdepeñas de Jaén',19932,19939,3,3),(7365,'Valdepeñas de la Sierra',17166,17169,3,1),(7366,'Valdepiélago',22992,22999,3,3),(7367,'Valdepiélagos',26738,26741,3,1),(7368,'Valdepolo',23000,23007,3,3),(7369,'Valdeprado',36372,36377,3,2),(7370,'Valdeprado del Río',11182,11189,3,3),(7371,'Valdeprados',34864,34867,3,1),(7372,'Valderas',23008,23011,3,1),(7373,'Valderrábano',31062,31067,3,2),(7374,'Valderrebollo',17170,17173,3,1),(7375,'Valderredible',11190,11203,3,6),(7376,'Valderrey',23012,23021,3,4),(7377,'Valderrobres',38338,38341,3,1),(7378,'Valderrodilla',36378,36381,3,1),(7379,'Valderrodrigo',33760,33763,3,1),(7380,'Valderrubio',15858,15859,3,0),(7381,'Valderrueda',23022,23039,3,8),(7382,'Valdés',3292,3323,3,15),(7383,'Valdesamario',23040,23043,3,1),(7384,'Valdescorriel',43136,43139,3,1),(7385,'Valdesotos',17174,17177,3,1),(7386,'Valdestillas',41306,41309,3,1),(7387,'Valdetorres',5126,5129,3,1),(7388,'Valdetorres de Jarama',26742,26745,3,1),(7389,'Valdetórtola',13766,13769,3,1),(7390,'Valdevacas de Montejo',34868,34871,3,1),(7391,'Valdevacas y Guijar',34872,34875,3,1),(7392,'Valdeverdeja',39226,39229,3,1),(7393,'Valdevimbre',23044,23049,3,2),(7394,'Valdezate',8750,8753,3,1),(7395,'Valdilecha',26746,26749,3,1),(7396,'Valdorros',8754,8757,3,1),(7397,'Valdoviño',20934,20949,3,7),(7398,'Valdunciel',33764,33769,3,2),(7399,'Valdunquillo',41310,41313,3,1),(7400,'Valencia',40426,40487,3,30),(7401,'Valencia de Alcántara',10042,10057,3,7),(7402,'Valencia de Don Juan',23050,23055,3,2),(7403,'Valencia de las Torres',5130,5133,3,1),(7404,'Valencia del Mombuey',5134,5137,3,1),(7405,'Valencia del Ventoso',5138,5141,3,1),(7406,'Valencina de la Concepción',35484,35487,3,1),(7407,'Valenzuela',12828,12831,3,1),(7408,'Valenzuela de Calatrava',12312,12315,3,1),(7409,'Valero',33770,33773,3,1),(7410,'Valfarta',19324,19327,3,1),(7411,'Valfermoso de Tajuña',17178,17181,3,1),(7412,'Valga',32082,32089,3,3),(7413,'Valgañón',21684,21687,3,1),(7414,'Valhermoso',17182,17185,3,1),(7415,'Valhermoso de la Fuente',13770,13773,3,1),(7416,'Valjunquera',38342,38345,3,1),(7417,'Vall d\'Alba',11772,11777,3,2),(7418,'Vall de Almonacid',11778,11781,3,1),(7419,'Vall de Cardós',24536,24547,3,5),(7420,'Vall de Gallinera',1650,1655,3,2),(7421,'Vall-llobrega',14922,14925,3,1),(7422,'Vallada',40488,40491,3,1),(7423,'Valladolid',41314,41363,3,24),(7424,'Vallanca',40492,40495,3,1),(7425,'Vallarta de Bureba',8758,8761,3,1),(7426,'Vallat',11782,11785,3,1),(7427,'Vallbona d\'Anoia',7176,7179,3,1),(7428,'Vallbona de les Monges',24548,24553,3,2),(7429,'Vallcebre',7180,7183,3,1),(7430,'Vallclara',37252,37255,3,1),(7431,'Valldemossa',5672,5677,3,2),(7432,'Valle de Abdalajís',27360,27363,3,1),(7433,'Valle de Bardají',19328,19331,3,1),(7434,'Valle de Cerrato',31068,31071,3,1),(7435,'Valle de Egüés/Eguesibar',29212,29221,3,4),(7436,'Valle de Hecho',19332,19341,3,4),(7437,'Valle de la Serena',5142,5145,3,1),(7438,'Valle de las Navas',8762,8767,3,2),(7439,'Valle de Lierp',19342,19347,3,2),(7440,'Valle de Losa',8768,8775,3,3),(7441,'Valle de Manzanedo',8776,8781,3,2),(7442,'Valle de Matamoros',5146,5149,3,1),(7443,'Valle de Mena',8782,8801,3,9),(7444,'Valle de Oca',8802,8805,3,1),(7445,'Valle de Ollo/Ollaran',29222,29225,3,1),(7446,'Valle de Santa Ana',5150,5153,3,1),(7447,'Valle de Santibáñez',8806,8813,3,3),(7448,'Valle de Sedano',8814,8823,3,4),(7449,'Valle de Tabladillo',34876,34879,3,1),(7450,'Valle de Tobalina',8824,8835,3,5),(7451,'Valle de Trápaga-Trapagaran',42046,42051,3,2),(7452,'Valle de Valdebezana',8836,8841,3,2),(7453,'Valle de Valdelaguna',8842,8845,3,1),(7454,'Valle de Valdelucio',8846,8849,3,1),(7455,'Valle de Villaverde',11204,11207,3,1),(7456,'Valle de Yerri/Deierri',29226,29237,3,5),(7457,'Valle de Zamanzas',8850,8853,3,1),(7458,'Valle del Retortillo',31072,31075,3,1),(7459,'Valle del Zalabí',15860,15863,3,1),(7460,'Vallecillo',23056,23059,3,1),(7461,'Vallejera',8854,8857,3,1),(7462,'Vallejera de Riofrío',33774,33777,3,1),(7463,'Vallelado',34880,34883,3,1),(7464,'Valleruela de Pedraza',34884,34887,3,1),(7465,'Valleruela de Sepúlveda',34888,34891,3,1),(7466,'Vallés',40496,40499,3,1),(7467,'Valles de Palenzuela',8858,8861,3,1),(7468,'Vallesa de la Guareña',43140,43143,3,1),(7469,'Vallfogona de Balaguer',24554,24559,3,2),(7470,'Vallfogona de Ripollès',14926,14929,3,1),(7471,'Vallfogona de Riucorb',37256,37259,3,1),(7472,'Vallgorguina',7184,7189,3,2),(7473,'Vallibona',11786,11789,3,1),(7474,'Vallirana',7190,7193,3,1),(7475,'Vallmoll',37260,37263,3,1),(7476,'Vallromanes',7194,7197,3,1),(7477,'Valls',37264,37271,3,3),(7478,'Valluércanes',8862,8865,3,1),(7479,'Valmadrid',44558,44561,3,1),(7480,'Valmala',8866,8869,3,1),(7481,'Valmojado',39230,39233,3,1),(7482,'Válor',15864,15867,3,1),(7483,'Valoria la Buena',41364,41367,3,1),(7484,'Valpalmas',44562,44565,3,1),(7485,'Valsalabroso',33778,33783,3,2),(7486,'Valsalobre',13774,13777,3,1),(7487,'Valseca',34892,34895,3,1),(7488,'Valsequillo',12832,12835,3,1),(7489,'Valtablado del Río',17186,17189,3,1),(7490,'Valtajeros',36382,36385,3,1),(7491,'Valtiendas',34896,34901,3,2),(7492,'Valtierra',29238,29241,3,1),(7493,'Valtorres',44566,44569,3,1),(7494,'Valverde de Alcalá',26750,26753,3,1),(7495,'Valverde de Burguillos',5154,5157,3,1),(7496,'Valverde de Campos',41368,41371,3,1),(7497,'Valverde de Júcar',13778,13781,3,1),(7498,'Valverde de la Vera',10058,10061,3,1),(7499,'Valverde de la Virgen',23060,23067,3,3),(7500,'Valverde de Leganés',5158,5161,3,1),(7501,'Valverde de Llerena',5162,5165,3,1),(7502,'Valverde de los Arroyos',17190,17193,3,1),(7503,'Valverde de Mérida',5166,5169,3,1),(7504,'Valverde de Valdelacasa',33784,33787,3,1),(7505,'Valverde del Camino',18132,18135,3,1),(7506,'Valverde del Fresno',10062,10065,3,1),(7507,'Valverde del Majano',34902,34905,3,1),(7508,'Valverde-Enrique',23068,23073,3,2),(7509,'Valverdejo',13782,13785,3,1),(7510,'Valverdón',33788,33793,3,2),(7511,'Vandellòs i l\'Hospitalet de l\'Infant',37272,37277,3,2),(7512,'Vara de Rey',13786,13789,3,1),(7513,'Veciana',7198,7201,3,1),(7514,'Vecinos',33794,33801,3,3),(7515,'Vedra',20950,20957,3,3),(7516,'Vega de Espinareda',23074,23087,3,6),(7517,'Vega de Infanzones',23088,23093,3,2),(7518,'Vega de Liébana',11208,11213,3,2),(7519,'Vega de Pas',11214,11221,3,3),(7520,'Vega de Ruiponce',41372,41375,3,1),(7521,'Vega de Santa María',4400,4403,3,1),(7522,'Vega de Tera',43144,43151,3,3),(7523,'Vega de Tirados',33802,33807,3,2),(7524,'Vega de Valcarce',23094,23103,3,4),(7525,'Vega de Valdetronco',41376,41379,3,1),(7526,'Vega de Villalobos',43152,43155,3,1),(7527,'Vega del Codorno',13790,13793,3,1),(7528,'Vegacervera',23104,23109,3,2),(7529,'Vegadeo',3324,3333,3,4),(7530,'Vegalatrave',43156,43159,3,1),(7531,'Veganzones',34906,34909,3,1),(7532,'Vegaquemada',23110,23119,3,4),(7533,'Vegas de Matute',34910,34913,3,1),(7534,'Vegas del Condado',23120,23131,3,5),(7535,'Vegas del Genil',15868,15873,3,2),(7536,'Vegaviana',10066,10071,3,2),(7537,'Veguillas de la Sierra',38346,38349,3,1),(7538,'Vejer de la Frontera',10440,10449,3,4),(7539,'Velada',39234,39237,3,1),(7540,'Velamazán',36386,36389,3,1),(7541,'Velascálvaro',41380,41383,3,1),(7542,'Velayos',4404,4407,3,1),(7543,'Velefique',2274,2277,3,1),(7544,'Vélez de Benaudalla',15874,15881,3,3),(7545,'Vélez-Blanco',2278,2285,3,3),(7546,'Vélez-Málaga',27364,27385,3,10),(7547,'Vélez-Rubio',2286,2297,3,5),(7548,'Velilla',41384,41387,3,1),(7549,'Velilla de Cinca',19348,19351,3,1),(7550,'Velilla de Ebro',44570,44573,3,1),(7551,'Velilla de Jiloca',44574,44577,3,1),(7552,'Velilla de la Sierra',36390,36393,3,1),(7553,'Velilla de los Ajos',36394,36397,3,1),(7554,'Velilla de San Antonio',26754,26757,3,1),(7555,'Velilla del Río Carrión',31076,31083,3,3),(7556,'Vellisca',13794,13797,3,1),(7557,'Velliza',41388,41391,3,1),(7558,'Vencillón',19352,19355,3,1),(7559,'Venialbo',43160,43163,3,1),(7560,'Venta de Baños',31084,31089,3,2),(7561,'Venta del Moro',40500,40505,3,2),(7562,'Ventalló',14930,14939,3,4),(7563,'Ventas de Huelma',15882,15885,3,1),(7564,'Ventosa',21688,21691,3,1),(7565,'Ventosa de la Cuesta',41392,41395,3,1),(7566,'Ventosa del Río Almar',33808,33811,3,1),(7567,'Ventosilla y Tejadilla',34914,34917,3,1),(7568,'Ventrosa',21692,21695,3,1),(7569,'Venturada',26758,26761,3,1),(7570,'Vera',2298,2301,3,1),(7571,'Vera de Moncayo',44578,44581,3,1),(7572,'Verdú',24560,24563,3,1),(7573,'Verea',30192,30195,3,1),(7574,'Verges',14940,14943,3,1),(7575,'Verín',30196,30213,3,8),(7576,'Vertavillo',31090,31093,3,1),(7577,'Vespella de Gaià',37278,37281,3,1),(7578,'Vezdemarbán',43164,43167,3,1),(7579,'Viacamp y Litera',19356,19361,3,2),(7580,'Viana',29242,29245,3,1),(7581,'Viana de Cega',41396,41399,3,1),(7582,'Viana de Duero',36398,36401,3,1),(7583,'Viana de Jadraque',17194,17197,3,1),(7584,'Viana do Bolo',30214,30235,3,10),(7585,'Viandar de la Vera',10072,10075,3,1),(7586,'Vianos',832,835,3,1),(7587,'Viator',2302,2305,3,1),(7588,'Vic',7202,7207,3,2),(7589,'Vícar',2306,2313,3,3),(7590,'Vicién',19362,19365,3,1),(7591,'Vidángoz/Bidankoze',29246,29249,3,1),(7592,'Vidayanes',43168,43171,3,1),(7593,'Videmala',43172,43177,3,2),(7594,'Vidrà',14944,14947,3,1),(7595,'Vidreres',14948,14951,3,1),(7596,'Vielha e Mijaran',24564,24573,3,4),(7597,'Vierlas',44582,44585,3,1),(7598,'Vigo',32090,32145,3,27),(7599,'Viguera',21696,21699,3,1),(7600,'Vila de Cruces',32146,32171,3,12),(7601,'Vila-real',11790,11793,3,1),(7602,'Vila-rodona',37282,37285,3,1),(7603,'Vila-sacra',14952,14955,3,1),(7604,'Vila-sana',24574,24577,3,1),(7605,'Vila-seca',37286,37293,3,3),(7606,'Vilabella',37294,37297,3,1),(7607,'Vilabertran',14956,14959,3,1),(7608,'Vilablareix',14960,14963,3,1),(7609,'Vilaboa',32172,32179,3,3),(7610,'Vilada',7208,7211,3,1),(7611,'Viladamat',14964,14967,3,1),(7612,'Viladasens',14968,14971,3,1),(7613,'Viladecans',7212,7215,3,1),(7614,'Viladecavalls',7216,7219,3,1),(7615,'Vilademuls',14972,14977,3,2),(7616,'Viladrau',14978,14981,3,1),(7617,'Vilafamés',11794,11797,3,1),(7618,'Vilafant',14982,14985,3,1),(7619,'Vilafranca de Bonany',5678,5681,3,1),(7620,'Vilafranca del Penedès',7220,7223,3,1),(7621,'Vilagarcía de Arousa',32180,32197,3,8),(7622,'Vilagrassa',24578,24581,3,1),(7623,'Vilajuïga',14986,14989,3,1),(7624,'Vilalba',25696,25737,3,20),(7625,'Vilalba dels Arcs',37298,37301,3,1),(7626,'Vilalba Sasserra',7224,7227,3,1),(7627,'Vilaller',24582,24587,3,2),(7628,'Vilallonga de Ter',14990,14993,3,1),(7629,'Vilallonga del Camp',37302,37305,3,1),(7630,'Vilamacolum',14994,14997,3,1),(7631,'Vilamalla',14998,15001,3,1),(7632,'Vilamaniscle',15002,15005,3,1),(7633,'Vilamarín',30236,30247,3,5),(7634,'Vilamartín de Valdeorras',30248,30259,3,5),(7635,'Vilamòs',24588,24591,3,1),(7636,'Vilanant',15006,15011,3,2),(7637,'Vilanova d\'Alcolea',11798,11801,3,1),(7638,'Vilanova d\'Escornalbou',37306,37311,3,2),(7639,'Vilanova de Arousa',32198,32211,3,6),(7640,'Vilanova de Bellpuig',24592,24595,3,1),(7641,'Vilanova de l\'Aguda',24596,24601,3,2),(7642,'Vilanova de la Barca',24602,24605,3,1),(7643,'Vilanova de Meià',24606,24613,3,3),(7644,'Vilanova de Prades',37312,37315,3,1),(7645,'Vilanova de Sau',7228,7231,3,1),(7646,'Vilanova de Segrià',24614,24617,3,1),(7647,'Vilanova del Camí',7232,7235,3,1),(7648,'Vilanova del Vallès',7236,7239,3,1),(7649,'Vilanova i la Geltrú',7240,7243,3,1),(7650,'Vilaplana',37316,37319,3,1),(7651,'Vilar de Barrio',30260,30265,3,2),(7652,'Vilar de Canes',11802,11805,3,1),(7653,'Vilar de Santos',30266,30271,3,2),(7654,'Vilardevós',30272,30281,3,4),(7655,'Vilariño de Conso',30282,30289,3,3),(7656,'Vilarmaior',20958,20967,3,4),(7657,'Vilasantar',20968,20971,3,1),(7658,'Vilassar de Dalt',7244,7247,3,1),(7659,'Vilassar de Mar',7248,7251,3,1),(7660,'Vilaür',15012,15015,3,1),(7661,'Vilaverd',37320,37323,3,1),(7662,'Vilches',19940,19947,3,3),(7663,'Vileña',8870,8873,3,1),(7664,'Villa de Otura',15886,15889,3,1),(7665,'Villa de Ves',836,839,3,1),(7666,'Villa del Campo',10076,10079,3,1),(7667,'Villa del Prado',26762,26765,3,1),(7668,'Villa del Rey',10080,10083,3,1),(7669,'Villa del Río',12836,12841,3,2),(7670,'Villabáñez',41400,41403,3,1),(7671,'Villabaruz de Campos',41404,41407,3,1),(7672,'Villabasta de Valdavia',31094,31097,3,1),(7673,'Villablanca',18136,18139,3,1),(7674,'Villablino',23132,23153,3,10),(7675,'Villabona',17676,17679,3,1),(7676,'Villabrágima',41408,41411,3,1),(7677,'Villabraz',23154,23159,3,2),(7678,'Villabrázaro',43178,43183,3,2),(7679,'Villabuena de Álava/Eskuernaga',296,299,3,1),(7680,'Villabuena del Puente',43184,43187,3,1),(7681,'Villacañas',39238,39243,3,2),(7682,'Villacarralón',41412,41415,3,1),(7683,'Villacarriedo',11222,11229,3,3),(7684,'Villacarrillo',19948,19957,3,4),(7685,'Villacastín',34918,34921,3,1),(7686,'Villacid de Campos',41416,41419,3,1),(7687,'Villacidaler',31098,31103,3,2),(7688,'Villaciervos',36402,36405,3,1),(7689,'Villaco',41420,41423,3,1),(7690,'Villaconancio',31104,31107,3,1),(7691,'Villaconejos',26766,26769,3,1),(7692,'Villaconejos de Trabaque',13798,13801,3,1),(7693,'Villada',31108,31113,3,2),(7694,'Villadangos del Páramo',23160,23163,3,1),(7695,'Villademor de la Vega',23164,23167,3,1),(7696,'Villadepera',43188,43191,3,1),(7697,'Villadiego',8874,8887,3,6),(7698,'Villadoz',44586,44589,3,1),(7699,'Villaeles de Valdavia',31114,31117,3,1),(7700,'Villaescusa',43192,43195,3,1),(7701,'Villaescusa',11230,11231,3,0),(7702,'Villaescusa de Haro',13802,13805,3,1),(7703,'Villaescusa de Roa',8888,8891,3,1),(7704,'Villaescusa la Sombría',8892,8897,3,2),(7705,'Villaespasa',8898,8903,3,2),(7706,'Villafáfila',43196,43201,3,2),(7707,'Villafeliche',44590,44593,3,1),(7708,'Villaferrueña',43202,43205,3,1),(7709,'Villaflor',4408,4411,3,1),(7710,'Villaflores',33812,33815,3,1),(7711,'Villafrades de Campos',41424,41427,3,1),(7712,'Villafranca',29250,29253,3,1),(7713,'Villafranca de Córdoba',12842,12847,3,2),(7714,'Villafranca de Duero',41428,41431,3,1),(7715,'Villafranca de Ebro',44594,44597,3,1),(7716,'Villafranca de la Sierra',4412,4415,3,1),(7717,'Villafranca de los Barros',5170,5173,3,1),(7718,'Villafranca de los Caballeros',39244,39247,3,1),(7719,'Villafranca del Bierzo',23168,23185,3,8),(7720,'Villafranca del Campo',38350,38353,3,1),(7721,'Villafranca del Cid/Vilafranca',11806,11809,3,1),(7722,'Villafranca Montes de Oca',8904,8909,3,2),(7723,'Villafrechós',41432,41435,3,1),(7724,'Villafruela',8910,8913,3,1),(7725,'Villafuerte',41436,41439,3,1),(7726,'Villafufre',11232,11237,3,2),(7727,'Villagalijo',8914,8917,3,1),(7728,'Villagarcía de Campos',41440,41443,3,1),(7729,'Villagarcía de la Torre',5174,5177,3,1),(7730,'Villagarcía del Llano',13806,13811,3,2),(7731,'Villagatón',23186,23197,3,5),(7732,'Villageriz',43206,43209,3,1),(7733,'Villagómez la Nueva',41444,41447,3,1),(7734,'Villagonzalo',5178,5181,3,1),(7735,'Villagonzalo de Tormes',33816,33819,3,1),(7736,'Villagonzalo Pedernales',8918,8921,3,1),(7737,'Villahán',31118,31121,3,1),(7738,'Villaharta',12848,12851,3,1),(7739,'Villahermosa',12316,12321,3,2),(7740,'Villahermosa del Campo',38354,38357,3,1),(7741,'Villahermosa del Río',11810,11813,3,1),(7742,'Villaherreros',31122,31127,3,2),(7743,'Villahoz',8922,8925,3,1),(7744,'Villajoyosa/la Vila Joiosa',1656,1659,3,1),(7745,'Villalaco',31128,31131,3,1),(7746,'Villalán de Campos',41448,41451,3,1),(7747,'Villalar de los Comuneros',41452,41455,3,1),(7748,'Villalazán',43210,43213,3,1),(7749,'Villalba de Duero',8926,8929,3,1),(7750,'Villalba de Guardo',31132,31135,3,1),(7751,'Villalba de la Lampreana',43214,43217,3,1),(7752,'Villalba de la Loma',41456,41459,3,1),(7753,'Villalba de la Sierra',13812,13815,3,1),(7754,'Villalba de los Alcores',41460,41463,3,1),(7755,'Villalba de los Barros',5182,5185,3,1),(7756,'Villalba de los Llanos',33820,33823,3,1),(7757,'Villalba de Perejil',44598,44601,3,1),(7758,'Villalba de Rioja',21700,21703,3,1),(7759,'Villalba del Alcor',18140,18143,3,1),(7760,'Villalba del Rey',13816,13819,3,1),(7761,'Villalbarba',41464,41467,3,1),(7762,'Villalbilla',26770,26773,3,1),(7763,'Villalbilla de Burgos',8930,8935,3,2),(7764,'Villalbilla de Gumiel',8936,8939,3,1),(7765,'Villalcampo',43218,43221,3,1),(7766,'Villalcázar de Sirga',31136,31139,3,1),(7767,'Villalcón',31140,31143,3,1),(7768,'Villaldemiro',8940,8943,3,1),(7769,'Villalengua',44602,44605,3,1),(7770,'Villalgordo del Júcar',840,843,3,1),(7771,'Villalgordo del Marquesado',13820,13823,3,1),(7772,'Villalmanzo',8944,8947,3,1),(7773,'Villalobar de Rioja',21704,21707,3,1),(7774,'Villalobón',31144,31147,3,1),(7775,'Villalobos',43222,43225,3,1),(7776,'Villalón de Campos',41468,41471,3,1),(7777,'Villalonga',40506,40509,3,1),(7778,'Villalonso',43226,43229,3,1),(7779,'Villalpando',43230,43233,3,1),(7780,'Villalpardo',13824,13827,3,1),(7781,'Villalube',43234,43237,3,1),(7782,'Villaluenga de la Sagra',39248,39251,3,1),(7783,'Villaluenga de la Vega',31148,31155,3,3),(7784,'Villaluenga del Rosario',10450,10453,3,1),(7785,'Villamalea',844,847,3,1),(7786,'Villamalur',11814,11817,3,1),(7787,'Villamañán',23198,23203,3,2),(7788,'Villamandos',23204,23207,3,1),(7789,'Villamanín',23208,23221,3,6),(7790,'Villamanrique',12322,12325,3,1),(7791,'Villamanrique de la Condesa',35488,35491,3,1),(7792,'Villamanrique de Tajo',26774,26777,3,1),(7793,'Villamanta',26778,26781,3,1),(7794,'Villamantilla',26782,26785,3,1),(7795,'Villamarchante',40510,40513,3,1),(7796,'Villamartín',10454,10457,3,1),(7797,'Villamartín de Campos',31156,31159,3,1),(7798,'Villamartín de Don Sancho',23222,23225,3,1),(7799,'Villamayor',33824,33827,3,1),(7800,'Villamayor de Calatrava',12326,12329,3,1),(7801,'Villamayor de Campos',43238,43241,3,1),(7802,'Villamayor de Gállego',44606,44609,3,1),(7803,'Villamayor de los Montes',8948,8951,3,1),(7804,'Villamayor de Monjardín',29254,29257,3,1),(7805,'Villamayor de Santiago',13828,13831,3,1),(7806,'Villamayor de Treviño',8952,8955,3,1),(7807,'Villambistia',8956,8959,3,1),(7808,'Villamediana',31160,31163,3,1),(7809,'Villamediana de Iregua',21708,21713,3,2),(7810,'Villamedianilla',8960,8963,3,1),(7811,'Villamejil',23226,23233,3,3),(7812,'Villamena',15890,15893,3,1),(7813,'Villameriel',31164,31171,3,3),(7814,'Villamesías',10084,10087,3,1),(7815,'Villamiel',10088,10093,3,2),(7816,'Villamiel de la Sierra',8964,8967,3,1),(7817,'Villamiel de Toledo',39252,39255,3,1),(7818,'Villaminaya',39256,39259,3,1),(7819,'Villamol',23234,23239,3,2),(7820,'Villamontán de la Valduerna',23240,23245,3,2),(7821,'Villamor de los Escuderos',43242,43245,3,1),(7822,'Villamoratiel de las Matas',23246,23249,3,1),(7823,'Villamoronta',31172,31175,3,1),(7824,'Villamuelas',39260,39263,3,1),(7825,'Villamuera de la Cueza',31176,31179,3,1),(7826,'Villamuriel de Campos',41472,41475,3,1),(7827,'Villamuriel de Cerrato',31180,31183,3,1),(7828,'Villán de Tordesillas',41476,41479,3,1),(7829,'Villanázar',43246,43253,3,3),(7830,'Villangómez',8968,8971,3,1),(7831,'Villanova',19366,19369,3,1),(7832,'Villanúa',19370,19373,3,1),(7833,'Villanubla',41480,41483,3,1),(7834,'Villanueva de Alcardete',39264,39267,3,1),(7835,'Villanueva de Alcorón',17198,17201,3,1),(7836,'Villanueva de Algaidas',27386,27391,3,2),(7837,'Villanueva de Argaño',8972,8975,3,1),(7838,'Villanueva de Argecilla',17202,17205,3,1),(7839,'Villanueva de Ávila',4416,4419,3,1),(7840,'Villanueva de Azoague',43254,43259,3,2),(7841,'Villanueva de Bogas',39268,39271,3,1),(7842,'Villanueva de Cameros',21714,21717,3,1),(7843,'Villanueva de Campeán',43260,43263,3,1),(7844,'Villanueva de Carazo',8976,8979,3,1),(7845,'Villanueva de Castellón',40514,40517,3,1),(7846,'Villanueva de Córdoba',12852,12855,3,1),(7847,'Villanueva de Duero',41484,41487,3,1),(7848,'Villanueva de Gállego',44610,44613,3,1),(7849,'Villanueva de Gómez',4420,4423,3,1),(7850,'Villanueva de Gormaz',36406,36409,3,1),(7851,'Villanueva de Guadamejud',13832,13835,3,1),(7852,'Villanueva de Gumiel',8980,8983,3,1),(7853,'Villanueva de Huerva',44614,44617,3,1),(7854,'Villanueva de Jiloca',44618,44621,3,1),(7855,'Villanueva de la Cañada',26786,26791,3,2),(7856,'Villanueva de la Concepción',27392,27395,3,1),(7857,'Villanueva de la Condesa',41488,41491,3,1),(7858,'Villanueva de la Fuente',12330,12333,3,1),(7859,'Villanueva de la Jara',13836,13843,3,3),(7860,'Villanueva de la Reina',19958,19963,3,2),(7861,'Villanueva de la Serena',5186,5197,3,5),(7862,'Villanueva de la Sierra',10094,10099,3,2),(7863,'Villanueva de la Torre',17206,17211,3,2),(7864,'Villanueva de la Vera',10100,10105,3,2),(7865,'Villanueva de las Cruces',18144,18147,3,1),(7866,'Villanueva de las Manzanas',23250,23253,3,1),(7867,'Villanueva de las Peras',43264,43267,3,1),(7868,'Villanueva de las Torres',15894,15897,3,1),(7869,'Villanueva de los Caballeros',41492,41495,3,1),(7870,'Villanueva de los Castillejos',18148,18151,3,1),(7871,'Villanueva de los Infantes',12334,12337,3,1),(7872,'Villanueva de los Infantes',41496,41497,3,0),(7873,'Villanueva de Oscos',3334,3337,3,1),(7874,'Villanueva de Perales',26792,26795,3,1),(7875,'Villanueva de San Carlos',12338,12341,3,1),(7876,'Villanueva de San Juan',35492,35495,3,1),(7877,'Villanueva de San Mancio',41498,41501,3,1),(7878,'Villanueva de Sigena',19374,19377,3,1),(7879,'Villanueva de Tapia',27396,27399,3,1),(7880,'Villanueva de Teba',8984,8987,3,1),(7881,'Villanueva de Viver',11818,11821,3,1),(7882,'Villanueva del Aceral',4424,4427,3,1),(7883,'Villanueva del Ariscal',35496,35499,3,1),(7884,'Villanueva del Arzobispo',19964,19969,3,2),(7885,'Villanueva del Campillo',4428,4431,3,1),(7886,'Villanueva del Campo',43268,43271,3,1),(7887,'Villanueva del Conde',33828,33831,3,1),(7888,'Villanueva del Duque',12856,12859,3,1),(7889,'Villanueva del Fresno',5198,5201,3,1),(7890,'Villanueva del Pardillo',26796,26799,3,1),(7891,'Villanueva del Rebollar',31184,31187,3,1),(7892,'Villanueva del Rebollar de la Sierra',38358,38361,3,1),(7893,'Villanueva del Rey',12860,12863,3,1),(7894,'Villanueva del Río Segura',27984,27987,3,1),(7895,'Villanueva del Río y Minas',35500,35507,3,3),(7896,'Villanueva del Rosario',27400,27403,3,1),(7897,'Villanueva del Trabuco',27404,27409,3,2),(7898,'Villanueva Mesía',15898,15901,3,1),(7899,'Villanuño de Valdavia',31188,31191,3,1),(7900,'Villaobispo de Otero',23254,23259,3,2),(7901,'Villaornate y Castro',23260,23263,3,1),(7902,'Villapalacios',848,851,3,1),(7903,'Villaprovedo',31192,31195,3,1),(7904,'Villaquejida',23264,23269,3,2),(7905,'Villaquilambre',23270,23279,3,4),(7906,'Villaquirán de la Puebla',8988,8991,3,1),(7907,'Villaquirán de los Infantes',8992,8995,3,1),(7908,'Villar de Argañán',33832,33835,3,1),(7909,'Villar de Cañas',13844,13847,3,1),(7910,'Villar de Ciervo',33836,33839,3,1),(7911,'Villar de Corneja',4432,4435,3,1),(7912,'Villar de Domingo García',13848,13853,3,2),(7913,'Villar de Fallaves',43272,43275,3,1),(7914,'Villar de Gallimazo',33840,33843,3,1),(7915,'Villar de la Encina',13854,13857,3,1),(7916,'Villar de la Yegua',33844,33849,3,2),(7917,'Villar de los Navarros',44622,44627,3,2),(7918,'Villar de Olalla',13858,13863,3,2),(7919,'Villar de Peralonso',33850,33855,3,2),(7920,'Villar de Plasencia',10106,10109,3,1),(7921,'Villar de Rena',5202,5207,3,2),(7922,'Villar de Samaniego',33856,33859,3,1),(7923,'Villar de Torre',21718,21721,3,1),(7924,'Villar del Ala',36410,36413,3,1),(7925,'Villar del Arzobispo',40518,40521,3,1),(7926,'Villar del Buey',43276,43285,3,4),(7927,'Villar del Campo',36414,36417,3,1),(7928,'Villar del Cobo',38362,38365,3,1),(7929,'Villar del Humo',13864,13867,3,1),(7930,'Villar del Infantado',13868,13871,3,1),(7931,'Villar del Olmo',26800,26805,3,2),(7932,'Villar del Pedroso',10110,10115,3,2),(7933,'Villar del Pozo',12342,12345,3,1),(7934,'Villar del Rey',5208,5211,3,1),(7935,'Villar del Río',36418,36425,3,3),(7936,'Villar del Salz',38366,38369,3,1),(7937,'Villar y Velasco',13872,13875,3,1),(7938,'Villaralbo',43286,43289,3,1),(7939,'Villaralto',12864,12867,3,1),(7940,'Villarcayo de Merindad de Castilla la Vieja',8996,9015,3,9),(7941,'Villardeciervos',43290,43295,3,2),(7942,'Villardefrades',41502,41505,3,1),(7943,'Villardiegua de la Ribera',43296,43299,3,1),(7944,'Villárdiga',43300,43303,3,1),(7945,'Villardompardo',19970,19973,3,1),(7946,'Villardondiego',43304,43307,3,1),(7947,'Villarejo',21722,21725,3,1),(7948,'Villarejo de Fuentes',13876,13879,3,1),(7949,'Villarejo de la Peñuela',13880,13883,3,1),(7950,'Villarejo de Montalbán',39272,39275,3,1),(7951,'Villarejo de Órbigo',23280,23287,3,3),(7952,'Villarejo de Salvanés',26806,26809,3,1),(7953,'Villarejo del Valle',4436,4439,3,1),(7954,'Villarejo-Periesteban',13884,13887,3,1),(7955,'Villares de Jadraque',17212,17215,3,1),(7956,'Villares de la Reina',33860,33867,3,3),(7957,'Villares de Órbigo',23288,23293,3,2),(7958,'Villares de Yeltes',33868,33871,3,1),(7959,'Villares del Saz',13888,13891,3,1),(7960,'Villargordo del Cabriel',40522,40527,3,2),(7961,'Villariezo',9016,9019,3,1),(7962,'Villarino de los Aires',33872,33879,3,3),(7963,'Villarluengo',38370,38373,3,1),(7964,'Villarmayor',33880,33887,3,3),(7965,'Villarmentero de Campos',31196,31199,3,1),(7966,'Villarmentero de Esgueva',41506,41509,3,1),(7967,'Villarmuerto',33888,33891,3,1),(7968,'Villarquemado',38374,38377,3,1),(7969,'Villarrabé',31200,31205,3,2),(7970,'Villarramiel',31206,31209,3,1),(7971,'Villarrasa',18152,18155,3,1),(7972,'Villarreal de Huerva',44628,44631,3,1),(7973,'Villarrín de Campos',43308,43311,3,1),(7974,'Villarrobledo',852,857,3,2),(7975,'Villarrodrigo',19974,19977,3,1),(7976,'Villarroya',21726,21729,3,1),(7977,'Villarroya de la Sierra',44632,44635,3,1),(7978,'Villarroya de los Pinares',38378,38381,3,1),(7979,'Villarroya del Campo',44636,44639,3,1),(7980,'Villarrubia de los Ojos',12346,12349,3,1),(7981,'Villarrubia de Santiago',39276,39281,3,2),(7982,'Villarrubio',13892,13895,3,1),(7983,'Villarta',13896,13899,3,1),(7984,'Villarta de los Montes',5212,5215,3,1),(7985,'Villarta de San Juan',12350,12353,3,1),(7986,'Villarta-Quintana',21730,21733,3,1),(7987,'Villas de la Ventosa',13900,13903,3,1),(7988,'Villasabariego',23294,23303,3,4),(7989,'Villasandino',9020,9023,3,1),(7990,'Villasarracino',31210,31213,3,1),(7991,'Villasayas',36426,36429,3,1),(7992,'Villasbuenas',33892,33895,3,1),(7993,'Villasbuenas de Gata',10116,10119,3,1),(7994,'Villasdardo',33896,33899,3,1),(7995,'Villaseca de Arciel',36430,36433,3,1),(7996,'Villaseca de Henares',17216,17219,3,1),(7997,'Villaseca de la Sagra',39282,39287,3,2),(7998,'Villaseca de Uceda',17220,17223,3,1),(7999,'Villaseco de los Gamitos',33900,33903,3,1),(8000,'Villaseco de los Reyes',33904,33915,3,5),(8001,'Villaseco del Pan',43312,43315,3,1),(8002,'Villaselán',23304,23309,3,2),(8003,'Villasequilla',39288,39291,3,1),(8004,'Villasexmir',41510,41513,3,1),(8005,'Villasila de Valdavia',31214,31217,3,1),(8006,'Villasrubias',33916,33919,3,1),(8007,'Villastar',38382,38385,3,1),(8008,'Villasur de Herreros',9024,9027,3,1),(8009,'Villatobas',39292,39295,3,1),(8010,'Villatoro',4440,4443,3,1),(8011,'Villatorres',19978,19985,3,3),(8012,'Villatoya',858,861,3,1),(8013,'Villatuelda',9028,9031,3,1),(8014,'Villatuerta',29258,29263,3,2),(8015,'Villaturde',31218,31221,3,1),(8016,'Villaturiel',23310,23315,3,2),(8017,'Villaumbrales',31222,31227,3,2),(8018,'Villava/Atarrabia',29264,29267,3,1),(8019,'Villavaliente',862,865,3,1),(8020,'Villavaquerín',41514,41517,3,1),(8021,'Villavelayo',21734,21737,3,1),(8022,'Villavellid',41518,41521,3,1),(8023,'Villavendimio',43316,43319,3,1),(8024,'Villaverde de Guadalimar',866,871,3,2),(8025,'Villaverde de Guareña',33920,33923,3,1),(8026,'Villaverde de Íscar',34922,34925,3,1),(8027,'Villaverde de Medina',41522,41525,3,1),(8028,'Villaverde de Montejo',34926,34931,3,2),(8029,'Villaverde de Rioja',21738,21741,3,1),(8030,'Villaverde del Monte',9032,9037,3,2),(8031,'Villaverde del Río',35508,35511,3,1),(8032,'Villaverde y Pasaconsol',13904,13907,3,1),(8033,'Villaverde-Mogina',9038,9041,3,1),(8034,'Villaveza de Valverde',43320,43323,3,1),(8035,'Villaveza del Agua',43324,43327,3,1),(8036,'Villavicencio de los Caballeros',41526,41529,3,1),(8037,'Villaviciosa',3338,3361,3,11),(8038,'Villaviciosa de Córdoba',12868,12875,3,3),(8039,'Villaviciosa de Odón',26810,26813,3,1),(8040,'Villavieja de Yeltes',33924,33927,3,1),(8041,'Villavieja del Lozoya',26814,26817,3,1),(8042,'Villaviudas',31228,31231,3,1),(8043,'Villayerno Morquillas',9042,9045,3,1),(8044,'Villayón',3362,3367,3,2),(8045,'Villazala',23316,23321,3,2),(8046,'Villazanzo de Valderaduey',23322,23329,3,3),(8047,'Villazopeque',9046,9049,3,1),(8048,'Villegas',9050,9053,3,1),(8049,'Villeguillo',34932,34935,3,1),(8050,'Villel',38386,38389,3,1),(8051,'Villel de Mesa',17224,17227,3,1),(8052,'Villena',1660,1669,3,4),(8053,'Villerías de Campos',31232,31235,3,1),(8054,'Villodre',31236,31239,3,1),(8055,'Villodrigo',31240,31243,3,1),(8056,'Villoldo',31244,31247,3,1),(8057,'Víllora',13908,13911,3,1),(8058,'Villores',11822,11825,3,1),(8059,'Villoria',33928,33931,3,1),(8060,'Villoruebo',9054,9059,3,2),(8061,'Villoruela',33932,33935,3,1),(8062,'Villoslada de Cameros',21742,21745,3,1),(8063,'Villota del Páramo',31248,31253,3,2),(8064,'Villovieco',31254,31257,3,1),(8065,'Vilobí d\'Onyar',15016,15023,3,3),(8066,'Vilobí del Penedès',7252,7255,3,1),(8067,'Vilopriu',15024,15029,3,2),(8068,'Viloria',41530,41533,3,1),(8069,'Viloria de Rioja',9060,9063,3,1),(8070,'Vilvestre',33936,33939,3,1),(8071,'Vilviestre del Pinar',9064,9067,3,1),(8072,'Vimbodí i Poblet',37324,37331,3,3),(8073,'Vimianzo',20972,20985,3,6),(8074,'Vinaceite',38390,38393,3,1),(8075,'Vinaixa',24618,24621,3,1),(8076,'Vinalesa',40528,40531,3,1),(8077,'Vinaròs',11826,11829,3,1),(8078,'Viñas',43328,43335,3,3),(8079,'Vindel',13912,13915,3,1),(8080,'Vinebre',37332,37335,3,1),(8081,'Viñegra de Moraña',4444,4447,3,1),(8082,'Viniegra de Abajo',21746,21749,3,1),(8083,'Viniegra de Arriba',21750,21753,3,1),(8084,'Viñuela',27410,27417,3,3),(8085,'Viñuelas',17228,17231,3,1),(8086,'Vinuesa',36434,36439,3,2),(8087,'Vinyols i els Arcs',37336,37339,3,1),(8088,'Visiedo',38394,38397,3,1),(8089,'Viso del Marqués',12354,12363,3,4),(8090,'Vistabella',44640,44645,3,2),(8091,'Vistabella del Maestrat',11830,11833,3,1),(8092,'Vita',4448,4451,3,1),(8093,'Vitigudino',33940,33945,3,2),(8094,'Vitoria-Gasteiz',300,343,3,21),(8095,'Viveiro',25738,25753,3,7),(8096,'Vivel del Río Martín',38398,38403,3,2),(8097,'Viver',11834,11839,3,2),(8098,'Viver i Serrateix',7256,7259,3,1),(8099,'Viveros',872,875,3,1),(8100,'Vizcaínos',9068,9071,3,1),(8101,'Vizmanos',36440,36443,3,1),(8102,'Víznar',15902,15905,3,1),(8103,'Voto',11238,11247,3,4),(8104,'Vozmediano',36444,36447,3,1),(8105,'Wamba',41534,41537,3,1),(8106,'Xaló',1670,1673,3,1),(8107,'Xermade',25754,25767,3,6),(8108,'Xert',11840,11845,3,2),(8109,'Xerta',37340,37343,3,1),(8110,'Xinzo de Limia',30290,30305,3,7),(8111,'Xirivella',40532,40537,3,2),(8112,'Xove',25768,25779,3,5),(8113,'Xunqueira de Ambía',30306,30313,3,3),(8114,'Xunqueira de Espadanedo',30314,30321,3,3),(8115,'Yanguas',36448,36453,3,2),(8116,'Yanguas de Eresma',34936,34939,3,1),(8117,'Yátova',40538,40541,3,1),(8118,'Yebes',17232,17239,3,3),(8119,'Yebra',17240,17243,3,1),(8120,'Yebra de Basa',19378,19383,3,2),(8121,'Yecla',27988,27993,3,2),(8122,'Yecla de Yeltes',33946,33949,3,1),(8123,'Yécora/Iekora',344,347,3,1),(8124,'Yélamos de Abajo',17244,17247,3,1),(8125,'Yélamos de Arriba',17248,17251,3,1),(8126,'Yeles',39296,39299,3,1),(8127,'Yelo',36454,36459,3,2),(8128,'Yémeda',13916,13919,3,1),(8129,'Yepes',39300,39303,3,1),(8130,'Yernes y Tameza',3368,3371,3,1),(8131,'Yesa',29268,29271,3,1),(8132,'Yésero',19384,19387,3,1),(8133,'Yeste',876,893,3,8),(8134,'Yuncler',39304,39307,3,1),(8135,'Yunclillos',39308,39311,3,1),(8136,'Yuncos',39312,39315,3,1),(8137,'Yunquera',27418,27421,3,1),(8138,'Yunquera de Henares',17252,17255,3,1),(8139,'Zabalza/Zabaltza',29272,29275,3,1),(8140,'Zael',9072,9075,3,1),(8141,'Zafarraya',15906,15909,3,1),(8142,'Zafra',5216,5219,3,1),(8143,'Zafra de Záncara',13920,13923,3,1),(8144,'Zafrilla',13924,13927,3,1),(8145,'Zagra',15910,15913,3,1),(8146,'Zahara',10458,10461,3,1),(8147,'Zahínos',5220,5223,3,1),(8148,'Zaidín',19388,19391,3,1),(8149,'Zalamea de la Serena',5224,5227,3,1),(8150,'Zalamea la Real',18156,18165,3,4),(8151,'Zaldibar',42052,42055,3,1),(8152,'Zaldibia',17680,17683,3,1),(8153,'Zalduondo',348,351,3,1),(8154,'Zalla',42056,42063,3,3),(8155,'Zamarra',33950,33953,3,1),(8156,'Zamayón',33954,33957,3,1),(8157,'Zambrana',352,355,3,1),(8158,'Zamora',43336,43403,3,33),(8159,'Zamudio',42064,42067,3,1),(8160,'Zaorejas',17256,17263,3,3),(8161,'Zapardiel de la Cañada',4452,4455,3,1),(8162,'Zapardiel de la Ribera',4456,4459,3,1),(8163,'Zaragoza',44646,44717,3,35),(8164,'Zarapicos',33958,33961,3,1),(8165,'Zaratamo',42068,42071,3,1),(8166,'Zaratán',41538,41541,3,1),(8167,'Zarautz',17684,17687,3,1),(8168,'Zarra',40542,40545,3,1),(8169,'Zarratón',21754,21757,3,1),(8170,'Zarza de Granadilla',10120,10125,3,2),(8171,'Zarza de Montánchez',10126,10131,3,2),(8172,'Zarza de Tajo',13928,13931,3,1),(8173,'Zarza la Mayor',10132,10135,3,1),(8174,'Zarza-Capilla',5228,5231,3,1),(8175,'Zarzalejo',26818,26821,3,1),(8176,'Zarzosa',21758,21761,3,1),(8177,'Zarzosa de Río Pisuerga',9076,9079,3,1),(8178,'Zarzuela',13932,13935,3,1),(8179,'Zarzuela de Jadraque',17264,17267,3,1),(8180,'Zarzuela del Monte',34940,34943,3,1),(8181,'Zarzuela del Pinar',34944,34947,3,1),(8182,'Zas',20986,21005,3,9),(8183,'Zazuar',9080,9083,3,1),(8184,'Zeanuri',42072,42075,3,1),(8185,'Zeberio',42076,42079,3,1),(8186,'Zegama',17688,17691,3,1),(8187,'Zerain',17692,17695,3,1),(8188,'Zestoa',17696,17701,3,2),(8189,'Zierbena',42080,42083,3,1),(8190,'Zigoitia',356,361,3,2),(8191,'Ziordia',29276,29279,3,1),(8192,'Ziortza-Bolibar',42084,42087,3,1),(8193,'Zizur Mayor/Zizur Nagusia',29280,29283,3,1),(8194,'Zizurkil',17702,17705,3,1),(8195,'Zorita',10136,10139,3,1),(8196,'Zorita de la Frontera',33962,33965,3,1),(8197,'Zorita de los Canes',17268,17271,3,1),(8198,'Zorita del Maestrazgo',11846,11849,3,1),(8199,'Zorraquín',21762,21765,3,1),(8200,'Zotes del Páramo',23330,23335,3,2),(8201,'Zubieta',29284,29287,3,1),(8202,'Zucaina',11850,11853,3,1),(8203,'Zuera',44718,44725,3,3),(8204,'Zufre',18166,18169,3,1),(8205,'Zugarramurdi',29288,29291,3,1),(8206,'Zuheros',12876,12879,3,1),(8207,'Zuia',362,369,3,3),(8208,'Zújar',15914,15917,3,1),(8209,'Zumaia',17706,17709,3,1),(8210,'Zumarraga',17710,17713,3,1),(8211,'Zuñeda',9084,9087,3,1),(8212,'Zúñiga',29292,29295,3,1),(8213,'Zurgena',2314,2321,3,3),(8214,'00240',11,12,4,0),(8215,'00548',3527,3528,4,0),(8216,'01001',301,302,4,0),(8217,'01002',303,304,4,0),(8218,'01003',305,306,4,0),(8219,'01004',307,308,4,0),(8220,'01005',309,310,4,0),(8221,'01006',311,312,4,0),(8222,'01007',313,314,4,0),(8223,'01008',315,316,4,0),(8224,'01009',317,318,4,0),(8225,'01010',319,320,4,0),(8226,'01012',183,184,4,0),(8227,'01012',321,322,4,0),(8228,'01013',323,324,4,0),(8229,'01015',325,326,4,0),(8230,'01110',115,116,4,0),(8231,'01117',117,118,4,0),(8232,'01117',151,152,4,0),(8233,'01118',105,106,4,0),(8234,'01118',191,192,4,0),(8235,'01118',7669,7670,4,0),(8236,'01120',45,46,4,0),(8237,'01128',119,120,4,0),(8238,'01128',107,108,4,0),(8239,'01128',47,48,4,0),(8240,'01129',49,50,4,0),(8241,'01130',363,364,4,0),(8242,'01138',357,358,4,0),(8243,'01139',365,366,4,0),(8244,'01160',31,32,4,0),(8245,'01165',33,34,4,0),(8246,'01169',35,36,4,0),(8247,'01170',225,226,4,0),(8248,'01171',227,228,4,0),(8249,'01191',327,328,4,0),(8250,'01191',155,156,4,0),(8251,'01192',123,124,4,0),(8252,'01192',329,330,4,0),(8253,'01193',13,14,4,0),(8254,'01193',125,126,4,0),(8255,'01193',331,332,4,0),(8256,'01193',165,166,4,0),(8257,'01194',109,110,4,0),(8258,'01194',333,334,4,0),(8259,'01195',335,336,4,0),(8260,'01195',157,158,4,0),(8261,'01196',337,338,4,0),(8262,'01196',359,360,4,0),(8263,'01200',5,6,4,0),(8264,'01206',167,168,4,0),(8265,'01206',91,92,4,0),(8266,'01207',273,274,4,0),(8267,'01207',169,170,4,0),(8268,'01207',7,8,4,0),(8269,'01208',65,66,4,0),(8270,'01208',275,276,4,0),(8271,'01208',93,94,4,0),(8272,'01208',349,350,4,0),(8273,'01211',193,194,4,0),(8274,'01211',7671,7672,4,0),(8275,'01211',39,40,4,0),(8276,'01211',255,256,4,0),(8277,'01211',97,98,4,0),(8278,'01212',99,100,4,0),(8279,'01212',185,186,4,0),(8280,'01212',257,258,4,0),(8281,'01212',353,354,4,0),(8282,'01213',263,264,4,0),(8283,'01213',137,138,4,0),(8284,'01213',211,212,4,0),(8285,'01216',111,112,4,0),(8286,'01216',259,260,4,0),(8287,'01220',265,266,4,0),(8288,'01220',101,102,4,0),(8289,'01220',139,140,4,0),(8290,'01220',41,42,4,0),(8291,'01230',159,160,4,0),(8292,'01250',67,68,4,0),(8293,'01260',69,70,4,0),(8294,'01300',197,198,4,0),(8295,'01306',217,218,4,0),(8296,'01307',269,270,4,0),(8297,'01307',87,88,4,0),(8298,'01307',297,298,4,0),(8299,'01308',199,200,4,0),(8300,'01308',207,208,4,0),(8301,'01308',173,174,4,0),(8302,'01309',241,242,4,0),(8303,'01309',233,234,4,0),(8304,'01309',201,202,4,0),(8305,'01309',133,134,4,0),(8306,'01320',249,250,4,0),(8307,'01321',203,204,4,0),(8308,'01322',251,252,4,0),(8309,'01322',345,346,4,0),(8310,'01322',237,238,4,0),(8311,'01330',187,188,4,0),(8312,'01340',129,130,4,0),(8313,'01400',221,222,4,0),(8314,'01408',73,74,4,0),(8315,'01409',245,246,4,0),(8316,'01420',141,142,4,0),(8317,'01423',213,214,4,0),(8318,'01423',25,26,4,0),(8319,'01423',143,144,4,0),(8320,'01423',287,288,4,0),(8321,'01426',289,290,4,0),(8322,'01426',27,28,4,0),(8323,'01426',145,146,4,0),(8324,'01427',7439,7440,4,0),(8325,'01427',291,292,4,0),(8326,'01427',7949,7950,4,0),(8327,'01428',161,162,4,0),(8328,'01428',293,294,4,0),(8329,'01428',147,148,4,0),(8330,'01430',177,178,4,0),(8331,'01439',179,180,4,0),(8332,'01440',279,280,4,0),(8333,'01449',281,282,4,0),(8334,'01450',17,18,4,0),(8335,'01450',367,368,4,0),(8336,'01450',283,284,4,0),(8337,'01468',19,20,4,0),(8338,'01470',21,22,4,0),(8339,'01470',75,76,4,0),(8340,'01474',59,60,4,0),(8341,'01476',77,78,4,0),(8342,'01477',79,80,4,0),(8343,'01478',81,82,4,0),(8344,'01478',61,62,4,0),(8345,'01479',83,84,4,0),(8346,'01510',229,230,4,0),(8347,'01510',339,340,4,0),(8348,'01510',53,54,4,0),(8349,'01520',341,342,4,0),(8350,'01520',55,56,4,0),(8351,'02001',381,382,4,0),(8352,'02002',383,384,4,0),(8353,'02003',385,386,4,0),(8354,'02004',387,388,4,0),(8355,'02005',389,390,4,0),(8356,'02006',391,392,4,0),(8357,'02008',393,394,4,0),(8358,'02049',395,396,4,0),(8359,'02071',397,398,4,0),(8360,'02099',399,400,4,0),(8361,'02099',763,764,4,0),(8362,'02100',815,816,4,0),(8363,'02100',17581,17582,4,0),(8364,'02110',625,626,4,0),(8365,'02110',817,818,4,0),(8366,'02120',739,740,4,0),(8367,'02124',457,458,4,0),(8368,'02124',423,424,4,0),(8369,'02124',653,654,4,0),(8370,'02125',459,460,4,0),(8371,'02126',461,462,4,0),(8372,'02127',741,742,4,0),(8373,'02128',425,426,4,0),(8374,'02128',743,744,4,0),(8375,'02129',773,774,4,0),(8376,'02130',487,488,4,0),(8377,'02136',729,730,4,0),(8378,'02137',731,732,4,0),(8379,'02138',747,748,4,0),(8380,'02138',489,490,4,0),(8381,'02138',733,734,4,0),(8382,'02139',491,492,4,0),(8383,'02139',463,464,4,0),(8384,'02140',401,402,4,0),(8385,'02141',775,776,4,0),(8386,'02142',777,778,4,0),(8387,'02142',655,656,4,0),(8388,'02150',829,830,4,0),(8389,'02151',505,506,4,0),(8390,'02152',377,378,4,0),(8391,'02153',501,502,4,0),(8392,'02154',863,864,4,0),(8393,'02154',769,770,4,0),(8394,'02155',403,404,4,0),(8395,'02156',529,530,4,0),(8396,'02160',647,648,4,0),(8397,'02161',649,650,4,0),(8398,'02162',629,630,4,0),(8399,'02170',17819,17820,4,0),(8400,'02200',517,518,4,0),(8401,'02210',429,430,4,0),(8402,'02211',431,432,4,0),(8403,'02212',513,514,4,0),(8404,'02213',837,838,4,0),(8405,'02213',473,474,4,0),(8406,'02214',433,434,4,0),(8407,'02214',475,476,4,0),(8408,'02215',859,860,4,0),(8409,'02215',419,420,4,0),(8410,'02220',693,694,4,0),(8411,'02230',661,662,4,0),(8412,'02240',665,666,4,0),(8413,'02246',701,702,4,0),(8414,'02247',525,526,4,0),(8415,'02248',619,620,4,0),(8416,'02249',621,622,4,0),(8417,'02249',633,634,4,0),(8418,'02249',583,584,4,0),(8419,'02250',373,374,4,0),(8420,'02251',585,586,4,0),(8421,'02252',435,436,4,0),(8422,'02253',591,592,4,0),(8423,'02260',587,588,4,0),(8424,'02270',845,846,4,0),(8425,'02300',439,440,4,0),(8426,'02310',873,874,4,0),(8427,'02311',759,760,4,0),(8428,'02312',441,442,4,0),(8429,'02313',749,750,4,0),(8430,'02314',751,752,4,0),(8431,'02314',669,670,4,0),(8432,'02314',443,444,4,0),(8433,'02315',833,834,4,0),(8434,'02316',801,802,4,0),(8435,'02320',469,470,4,0),(8436,'02326',805,806,4,0),(8437,'02327',781,782,4,0),(8438,'02328',405,406,4,0),(8439,'02329',509,510,4,0),(8440,'02330',445,446,4,0),(8441,'02331',793,794,4,0),(8442,'02332',795,796,4,0),(8443,'02340',797,798,4,0),(8444,'02350',849,850,4,0),(8445,'02360',483,484,4,0),(8446,'02400',595,596,4,0),(8447,'02409',597,598,4,0),(8448,'02410',657,658,4,0),(8449,'02420',599,600,4,0),(8450,'02430',561,562,4,0),(8451,'02434',643,644,4,0),(8452,'02435',809,810,4,0),(8453,'02436',571,572,4,0),(8454,'02437',811,812,4,0),(8455,'02438',27749,27750,4,0),(8456,'02439',563,564,4,0),(8457,'02440',677,678,4,0),(8458,'02448',493,494,4,0),(8459,'02448',679,680,4,0),(8460,'02449',681,682,4,0),(8461,'02449',565,566,4,0),(8462,'02450',785,786,4,0),(8463,'02459',787,788,4,0),(8464,'02459',735,736,4,0),(8465,'02460',867,868,4,0),(8466,'02461',547,548,4,0),(8467,'02462',789,790,4,0),(8468,'02462',869,870,4,0),(8469,'02470',567,568,4,0),(8470,'02480',877,878,4,0),(8471,'02482',879,880,4,0),(8472,'02484',881,882,4,0),(8473,'02485',883,884,4,0),(8474,'02486',885,886,4,0),(8475,'02487',887,888,4,0),(8476,'02488',889,890,4,0),(8477,'02489',891,892,4,0),(8478,'02490',601,602,4,0),(8479,'02498',603,604,4,0),(8480,'02499',605,606,4,0),(8481,'02500',821,822,4,0),(8482,'02510',765,766,4,0),(8483,'02510',531,532,4,0),(8484,'02511',407,408,4,0),(8485,'02512',409,410,4,0),(8486,'02513',823,824,4,0),(8487,'02514',825,826,4,0),(8488,'02520',533,534,4,0),(8489,'02529',535,536,4,0),(8490,'02530',705,706,4,0),(8491,'02534',707,708,4,0),(8492,'02535',709,710,4,0),(8493,'02536',711,712,4,0),(8494,'02537',713,714,4,0),(8495,'02538',715,716,4,0),(8496,'02539',717,718,4,0),(8497,'02600',853,854,4,0),(8498,'02610',555,556,4,0),(8499,'02611',725,726,4,0),(8500,'02612',855,856,4,0),(8501,'02612',697,698,4,0),(8502,'02613',557,558,4,0),(8503,'02614',551,552,4,0),(8504,'02620',673,674,4,0),(8505,'02630',637,638,4,0),(8506,'02636',13109,13110,4,0),(8507,'02636',841,842,4,0),(8508,'02637',575,576,4,0),(8509,'02638',685,686,4,0),(8510,'02639',639,640,4,0),(8511,'02639',479,480,4,0),(8512,'02640',449,450,4,0),(8513,'02650',689,690,4,0),(8514,'02651',579,580,4,0),(8515,'02652',721,722,4,0),(8516,'02653',415,416,4,0),(8517,'02660',521,522,4,0),(8518,'02690',453,454,4,0),(8519,'02690',609,610,4,0),(8520,'02691',497,498,4,0),(8521,'02692',755,756,4,0),(8522,'02692',537,538,4,0),(8523,'02693',543,544,4,0),(8524,'02694',611,612,4,0),(8525,'02695',539,540,4,0),(8526,'02696',615,616,4,0),(8527,'02999',465,466,4,0),(8528,'03001',953,954,4,0),(8529,'03002',955,956,4,0),(8530,'03003',957,958,4,0),(8531,'03004',959,960,4,0),(8532,'03005',961,962,4,0),(8533,'03006',963,964,4,0),(8534,'03007',965,966,4,0),(8535,'03008',967,968,4,0),(8536,'03009',969,970,4,0),(8537,'03010',971,972,4,0),(8538,'03010',27779,27780,4,0),(8539,'03011',973,974,4,0),(8540,'03012',975,976,4,0),(8541,'03013',977,978,4,0),(8542,'03014',979,980,4,0),(8543,'03015',981,982,4,0),(8544,'03016',983,984,4,0),(8545,'03100',1365,1366,4,0),(8546,'03108',1629,1630,4,0),(8547,'03109',1617,1618,4,0),(8548,'03110',1441,1442,4,0),(8549,'03111',1139,1140,4,0),(8550,'03112',985,986,4,0),(8551,'03113',987,988,4,0),(8552,'03114',989,990,4,0),(8553,'03115',991,992,4,0),(8554,'03130',1591,1592,4,0),(8555,'03138',993,994,4,0),(8556,'03139',1255,1256,4,0),(8557,'03140',1339,1340,4,0),(8558,'03150',1219,1220,4,0),(8559,'03158',1191,1192,4,0),(8560,'03158',1173,1174,4,0),(8561,'03159',1199,1200,4,0),(8562,'03160',1007,1008,4,0),(8563,'03169',945,946,4,0),(8564,'03170',1551,1552,4,0),(8565,'03177',1317,1318,4,0),(8566,'03177',1203,1204,4,0),(8567,'03177',1567,1568,4,0),(8568,'03178',1091,1092,4,0),(8569,'03179',1319,1320,4,0),(8570,'03179',1009,1010,4,0),(8571,'03180',1633,1634,4,0),(8572,'03181',1635,1636,4,0),(8573,'03182',1637,1638,4,0),(8574,'03183',1639,1640,4,0),(8575,'03184',1641,1642,4,0),(8576,'03185',1643,1644,4,0),(8577,'03186',1645,1646,4,0),(8578,'03187',1411,1412,4,0),(8579,'03188',1647,1648,4,0),(8580,'03189',1467,1468,4,0),(8581,'03190',1521,1522,4,0),(8582,'03191',1523,1524,4,0),(8583,'03191',1469,1470,4,0),(8584,'03192',1471,1472,4,0),(8585,'03193',1575,1576,4,0),(8586,'03194',1257,1258,4,0),(8587,'03195',1259,1260,4,0),(8588,'03201',1261,1262,4,0),(8589,'03202',1263,1264,4,0),(8590,'03203',1265,1266,4,0),(8591,'03204',1267,1268,4,0),(8592,'03205',1269,1270,4,0),(8593,'03206',1271,1272,4,0),(8594,'03207',1273,1274,4,0),(8595,'03208',1275,1276,4,0),(8596,'03290',1277,1278,4,0),(8597,'03291',1279,1280,4,0),(8598,'03292',1281,1282,4,0),(8599,'03293',1283,1284,4,0),(8600,'03294',1285,1286,4,0),(8601,'03295',1287,1288,4,0),(8602,'03296',1289,1290,4,0),(8603,'03300',1473,1474,4,0),(8604,'03310',1475,1476,4,0),(8605,'03310',1351,1352,4,0),(8606,'03311',1477,1478,4,0),(8607,'03312',1479,1480,4,0),(8608,'03313',1481,1482,4,0),(8609,'03314',1483,1484,4,0),(8610,'03315',1485,1486,4,0),(8611,'03316',1049,1050,4,0),(8612,'03316',1487,1488,4,0),(8613,'03317',1147,1148,4,0),(8614,'03320',1291,1292,4,0),(8615,'03330',1193,1194,4,0),(8616,'03339',1195,1196,4,0),(8617,'03340',909,910,4,0),(8618,'03348',1335,1336,4,0),(8619,'03349',1571,1572,4,0),(8620,'03350',1187,1188,4,0),(8621,'03360',1149,1150,4,0),(8622,'03369',1489,1490,4,0),(8623,'03369',1539,1540,4,0),(8624,'03370',1543,1544,4,0),(8625,'03380',1131,1132,4,0),(8626,'03390',1045,1046,4,0),(8627,'03392',2649,2650,4,0),(8628,'03400',1661,1662,4,0),(8629,'03408',1663,1664,4,0),(8630,'03409',1161,1162,4,0),(8631,'03409',1665,1666,4,0),(8632,'03409',1559,1560,4,0),(8633,'03409',995,996,4,0),(8634,'03410',1127,1128,4,0),(8635,'03420',1165,1166,4,0),(8636,'03430',1453,1454,4,0),(8637,'03440',1347,1348,4,0),(8638,'03450',1031,1032,4,0),(8639,'03460',1039,1040,4,0),(8640,'03469',1157,1158,4,0),(8641,'03469',1041,1042,4,0),(8642,'03501',1069,1070,4,0),(8643,'03502',1071,1072,4,0),(8644,'03503',1073,1074,4,0),(8645,'03509',1313,1314,4,0),(8646,'03510',1143,1144,4,0),(8647,'03516',1103,1104,4,0),(8648,'03517',1083,1084,4,0),(8649,'03517',1183,1184,4,0),(8650,'03517',1057,1058,4,0),(8651,'03517',1227,1228,4,0),(8652,'03518',1135,1136,4,0),(8653,'03518',1607,1608,4,0),(8654,'03520',1531,1532,4,0),(8655,'03530',1383,1384,4,0),(8656,'03540',997,998,4,0),(8657,'03550',1587,1588,4,0),(8658,'03559',999,1000,4,0),(8659,'03560',1223,1224,4,0),(8660,'03569',905,906,4,0),(8661,'03570',1657,1658,4,0),(8662,'03578',1547,1548,4,0),(8663,'03579',1599,1600,4,0),(8664,'03579',1495,1496,4,0),(8665,'03580',1369,1370,4,0),(8666,'03581',1371,1372,4,0),(8667,'03590',1017,1018,4,0),(8668,'03599',1019,1020,4,0),(8669,'03600',1297,1298,4,0),(8670,'03610',1517,1518,4,0),(8671,'03630',1595,1596,4,0),(8672,'03638',1561,1562,4,0),(8673,'03639',1667,1668,4,0),(8674,'03640',1425,1426,4,0),(8675,'03649',1427,1428,4,0),(8676,'03650',1237,1238,4,0),(8677,'03657',1239,1240,4,0),(8678,'03657',27989,27990,4,0),(8679,'03658',1241,1242,4,0),(8680,'03658',1563,1564,4,0),(8681,'03659',1243,1244,4,0),(8682,'03659',27641,27642,4,0),(8683,'03660',1445,1446,4,0),(8684,'03668',949,950,4,0),(8685,'03669',1387,1388,4,0),(8686,'03670',1419,1420,4,0),(8687,'03679',1421,1422,4,0),(8688,'03680',1023,1024,4,0),(8689,'03688',1231,1232,4,0),(8690,'03689',1233,1234,4,0),(8691,'03689',1343,1344,4,0),(8692,'03689',1491,1492,4,0),(8693,'03690',1579,1580,4,0),(8694,'03698',897,898,4,0),(8695,'03699',1001,1002,4,0),(8696,'03700',1207,1208,4,0),(8697,'03709',1209,1210,4,0),(8698,'03710',1153,1154,4,0),(8699,'03720',1119,1120,4,0),(8700,'03723',913,914,4,0),(8701,'03724',1611,1612,4,0),(8702,'03725',1613,1614,4,0),(8703,'03726',1123,1124,4,0),(8704,'03727',1671,1672,4,0),(8705,'03728',915,916,4,0),(8706,'03729',1403,1404,4,0),(8707,'03729',1603,1604,4,0),(8708,'03730',1355,1356,4,0),(8709,'03737',1357,1358,4,0),(8710,'03738',1359,1360,4,0),(8711,'03739',1361,1362,4,0),(8712,'03740',1327,1328,4,0),(8713,'03749',1211,1212,4,0),(8714,'03750',1503,1504,4,0),(8715,'03759',1065,1066,4,0),(8716,'03760',1449,1450,4,0),(8717,'03769',1247,1248,4,0),(8718,'03769',1115,1116,4,0),(8719,'03769',1583,1584,4,0),(8720,'03770',1251,1252,4,0),(8721,'03770',1213,1214,4,0),(8722,'03778',1053,1054,4,0),(8723,'03779',1301,1302,4,0),(8724,'03780',1215,1216,4,0),(8725,'03780',1507,1508,4,0),(8726,'03786',1379,1380,4,0),(8727,'03787',1651,1652,4,0),(8728,'03788',1391,1392,4,0),(8729,'03788',1653,1654,4,0),(8730,'03789',1395,1396,4,0),(8731,'03790',1457,1458,4,0),(8732,'03791',1459,1460,4,0),(8733,'03791',1399,1400,4,0),(8734,'03792',1499,1500,4,0),(8735,'03792',1431,1432,4,0),(8736,'03792',1461,1462,4,0),(8737,'03793',1169,1170,4,0),(8738,'03794',1087,1088,4,0),(8739,'03795',1625,1626,4,0),(8740,'03795',1555,1556,4,0),(8741,'03795',1463,1464,4,0),(8742,'03800',927,928,4,0),(8743,'03801',929,930,4,0),(8744,'03802',931,932,4,0),(8745,'03803',933,934,4,0),(8746,'03804',935,936,4,0),(8747,'03810',1095,1096,4,0),(8748,'03811',1535,1536,4,0),(8749,'03811',1331,1332,4,0),(8750,'03812',1111,1112,4,0),(8751,'03812',1415,1416,4,0),(8752,'03812',1027,1028,4,0),(8753,'03813',1621,1622,4,0),(8754,'03813',1305,1306,4,0),(8755,'03813',1309,1310,4,0),(8756,'03814',923,924,4,0),(8757,'03814',1035,1036,4,0),(8758,'03815',1513,1514,4,0),(8759,'03816',1079,1080,4,0),(8760,'03818',937,938,4,0),(8761,'03820',1177,1178,4,0),(8762,'03827',1099,1100,4,0),(8763,'03827',1013,1014,4,0),(8764,'03827',1107,1108,4,0),(8765,'03828',1527,1528,4,0),(8766,'03829',1375,1376,4,0),(8767,'03829',1179,1180,4,0),(8768,'03830',1435,1436,4,0),(8769,'03837',901,902,4,0),(8770,'03838',941,942,4,0),(8771,'03839',1437,1438,4,0),(8772,'03840',1323,1324,4,0),(8773,'03841',919,920,4,0),(8774,'03850',1061,1062,4,0),(8775,'03860',1407,1408,4,0),(8776,'04001',1749,1750,4,0),(8777,'04002',1751,1752,4,0),(8778,'04003',1753,1754,4,0),(8779,'04004',1755,1756,4,0),(8780,'04005',1757,1758,4,0),(8781,'04006',1759,1760,4,0),(8782,'04007',1761,1762,4,0),(8783,'04008',1763,1764,4,0),(8784,'04009',1765,1766,4,0),(8785,'04100',2067,2068,4,0),(8786,'04110',2069,2070,4,0),(8787,'04113',2071,2072,4,0),(8788,'04114',2033,2034,4,0),(8789,'04114',2073,2074,4,0),(8790,'04115',2075,2076,4,0),(8791,'04116',2077,2078,4,0),(8792,'04117',2079,2080,4,0),(8793,'04118',2081,2082,4,0),(8794,'04119',2083,2084,4,0),(8795,'04120',1767,1768,4,0),(8796,'04130',1769,1770,4,0),(8797,'04131',1771,1772,4,0),(8798,'04140',1867,1868,4,0),(8799,'04147',2085,2086,4,0),(8800,'04149',2201,2202,4,0),(8801,'04149',1869,1870,4,0),(8802,'04149',2087,2088,4,0),(8803,'04150',1773,1774,4,0),(8804,'04151',2089,2090,4,0),(8805,'04160',1775,1776,4,0),(8806,'04188',2091,2092,4,0),(8807,'04200',2223,2224,4,0),(8808,'04210',2035,2036,4,0),(8809,'04211',2037,2038,4,0),(8810,'04211',2261,2262,4,0),(8811,'04211',2225,2226,4,0),(8812,'04212',2099,2100,4,0),(8813,'04212',2275,2276,4,0),(8814,'04212',1873,1874,4,0),(8815,'04213',2179,2180,4,0),(8816,'04230',1967,1968,4,0),(8817,'04240',2303,2304,4,0),(8818,'04248',2203,2204,4,0),(8819,'04250',2133,2134,4,0),(8820,'04259',2135,2136,4,0),(8821,'04260',2157,2158,4,0),(8822,'04270',2205,2206,4,0),(8823,'04271',2207,2208,4,0),(8824,'04271',2029,2030,4,0),(8825,'04274',2265,2266,4,0),(8826,'04274',1835,1836,4,0),(8827,'04275',2247,2248,4,0),(8828,'04275',2235,2236,4,0),(8829,'04276',1837,1838,4,0),(8830,'04276',1733,1734,4,0),(8831,'04276',1831,1832,4,0),(8832,'04277',2209,2210,4,0),(8833,'04278',2211,2212,4,0),(8834,'04279',2267,2268,4,0),(8835,'04279',2213,2214,4,0),(8836,'04279',2237,2238,4,0),(8837,'04280',2021,2022,4,0),(8838,'04288',2023,2024,4,0),(8839,'04288',1817,1818,4,0),(8840,'04289',2025,2026,4,0),(8841,'04289',1819,1820,4,0),(8842,'04289',2215,2216,4,0),(8843,'04400',1741,1742,4,0),(8844,'04409',1963,1964,4,0),(8845,'04409',1745,1746,4,0),(8846,'04410',1827,1828,4,0),(8847,'04420',2175,2176,4,0),(8848,'04430',1993,1994,4,0),(8849,'04431',1989,1990,4,0),(8850,'04440',2153,2154,4,0),(8851,'04450',1855,1856,4,0),(8852,'04458',1823,1824,4,0),(8853,'04458',1779,1780,4,0),(8854,'04458',2119,2120,4,0),(8855,'04459',2095,2096,4,0),(8856,'04460',1939,1940,4,0),(8857,'04470',2013,2014,4,0),(8858,'04479',2127,2128,4,0),(8859,'04479',1941,1942,4,0),(8860,'04479',1807,1808,4,0),(8861,'04480',1721,1722,4,0),(8862,'04500',1931,1932,4,0),(8863,'04510',1677,1678,4,0),(8864,'04520',1681,1682,4,0),(8865,'04530',2007,2008,4,0),(8866,'04531',1701,1702,4,0),(8867,'04532',2009,2010,4,0),(8868,'04533',1683,1684,4,0),(8869,'04540',2063,2064,4,0),(8870,'04549',1953,1954,4,0),(8871,'04550',1955,1956,4,0),(8872,'04558',1703,1704,4,0),(8873,'04558',1957,1958,4,0),(8874,'04559',1959,1960,4,0),(8875,'04560',1945,1946,4,0),(8876,'04567',1737,1738,4,0),(8877,'04568',2171,2172,4,0),(8878,'04568',1783,1784,4,0),(8879,'04569',2241,2242,4,0),(8880,'04569',1841,1842,4,0),(8881,'04600',1707,1708,4,0),(8882,'04600',1971,1972,4,0),(8883,'04610',1889,1890,4,0),(8884,'04616',1891,1892,4,0),(8885,'04617',1893,1894,4,0),(8886,'04618',1895,1896,4,0),(8887,'04619',1897,1898,4,0),(8888,'04620',2299,2300,4,0),(8889,'04628',1787,1788,4,0),(8890,'04629',1789,1790,4,0),(8891,'04630',1949,1950,4,0),(8892,'04638',2057,2058,4,0),(8893,'04639',2257,2258,4,0),(8894,'04639',2059,2060,4,0),(8895,'04640',2139,2140,4,0),(8896,'04640',2107,2108,4,0),(8897,'04647',1899,1900,4,0),(8898,'04647',2141,2142,4,0),(8899,'04648',1901,1902,4,0),(8900,'04648',2143,2144,4,0),(8901,'04649',2145,2146,4,0),(8902,'04650',2315,2316,4,0),(8903,'04659',2243,2244,4,0),(8904,'04660',1793,1794,4,0),(8905,'04661',2317,2318,4,0),(8906,'04661',2229,2230,4,0),(8907,'04662',2319,2320,4,0),(8908,'04662',1973,1974,4,0),(8909,'04690',1975,1976,4,0),(8910,'04691',1977,1978,4,0),(8911,'04692',1979,1980,4,0),(8912,'04692',1709,1710,4,0),(8913,'04692',2231,2232,4,0),(8914,'04693',1981,1982,4,0),(8915,'04694',1983,1984,4,0),(8916,'04700',1909,1910,4,0),(8917,'04710',1911,1912,4,0),(8918,'04711',1913,1914,4,0),(8919,'04712',1915,1916,4,0),(8920,'04713',1845,1846,4,0),(8921,'04715',1917,1918,4,0),(8922,'04716',1919,1920,4,0),(8923,'04720',2161,2162,4,0),(8924,'04727',2307,2308,4,0),(8925,'04728',1927,1928,4,0),(8926,'04729',1923,1924,4,0),(8927,'04738',2309,2310,4,0),(8928,'04740',2163,2164,4,0),(8929,'04741',2165,2166,4,0),(8930,'04743',2167,2168,4,0),(8931,'04745',1997,1998,4,0),(8932,'04746',1999,2000,4,0),(8933,'04750',1905,1906,4,0),(8934,'04760',1847,1848,4,0),(8935,'04768',1723,1724,4,0),(8936,'04768',1849,1850,4,0),(8937,'04769',1851,1852,4,0),(8938,'04770',1687,1688,4,0),(8939,'04778',1689,1690,4,0),(8940,'04779',2129,2130,4,0),(8941,'04779',1691,1692,4,0),(8942,'04779',1809,1810,4,0),(8943,'04800',1711,1712,4,0),(8944,'04810',2109,2110,4,0),(8945,'04810',2123,2124,4,0),(8946,'04811',2111,2112,4,0),(8947,'04812',1713,1714,4,0),(8948,'04813',2113,2114,4,0),(8949,'04813',1715,1716,4,0),(8950,'04814',1717,1718,4,0),(8951,'04815',1859,1860,4,0),(8952,'04820',2287,2288,4,0),(8953,'04825',1881,1882,4,0),(8954,'04826',2289,2290,4,0),(8955,'04827',2291,2292,4,0),(8956,'04828',2293,2294,4,0),(8957,'04829',2295,2296,4,0),(8958,'04829',2279,2280,4,0),(8959,'04830',2281,2282,4,0),(8960,'04838',2051,2052,4,0),(8961,'04839',2283,2284,4,0),(8962,'04839',2053,2054,4,0),(8963,'04850',1861,1862,4,0),(8964,'04857',1695,1696,4,0),(8965,'04858',1863,1864,4,0),(8966,'04858',1697,1698,4,0),(8967,'04859',1885,1886,4,0),(8968,'04859',1877,1878,4,0),(8969,'04859',2017,2018,4,0),(8970,'04860',2103,2104,4,0),(8971,'04867',2047,2048,4,0),(8972,'04868',2003,2004,4,0),(8973,'04869',1935,1936,4,0),(8974,'04870',2149,2150,4,0),(8975,'04877',2041,2042,4,0),(8976,'04877',2197,2198,4,0),(8977,'04878',2219,2220,4,0),(8978,'04878',2193,2194,4,0),(8979,'04879',2271,2272,4,0),(8980,'04880',2249,2250,4,0),(8981,'04887',2043,2044,4,0),(8982,'04887',2251,2252,4,0),(8983,'04888',1813,1814,4,0),(8984,'04888',1797,1798,4,0),(8985,'04889',1801,1802,4,0),(8986,'04889',2253,2254,4,0),(8987,'04890',2183,2184,4,0),(8988,'04897',1727,1728,4,0),(8989,'04897',2185,2186,4,0),(8990,'04898',2187,2188,4,0),(8991,'04898',1729,1730,4,0),(8992,'04899',2189,2190,4,0),(8993,'04899',2115,2116,4,0),(8994,'04964',1985,1986,4,0),(8995,'05001',3419,3420,4,0),(8996,'05002',3421,3422,4,0),(8997,'05003',3423,3424,4,0),(8998,'05004',3425,3426,4,0),(8999,'05005',3427,3428,4,0),(9000,'05100',4053,4054,4,0),(9001,'05110',3627,3628,4,0),(9002,'05111',4231,4232,4,0),(9003,'05113',3501,3502,4,0),(9004,'05114',4417,4418,4,0),(9005,'05115',4331,4332,4,0),(9006,'05115',4069,4070,4,0),(9007,'05116',4333,4334,4,0),(9008,'05120',4031,4032,4,0),(9009,'05120',4235,4236,4,0),(9010,'05120',4065,4066,4,0),(9011,'05122',4073,4074,4,0),(9012,'05122',4057,4058,4,0),(9013,'05123',4039,4040,4,0),(9014,'05123',3775,3776,4,0),(9015,'05130',4355,4356,4,0),(9016,'05131',3821,3822,4,0),(9017,'05131',3999,4000,4,0),(9018,'05131',3909,3910,4,0),(9019,'05132',3569,3570,4,0),(9020,'05132',4251,4252,4,0),(9021,'05132',3783,3784,4,0),(9022,'05133',4247,4248,4,0),(9023,'05134',4027,4028,4,0),(9024,'05134',3709,3710,4,0),(9025,'05134',4015,4016,4,0),(9026,'05140',3891,3892,4,0),(9027,'05140',3547,3548,4,0),(9028,'05140',3495,3496,4,0),(9029,'05140',3887,3888,4,0),(9030,'05141',3701,3702,4,0),(9031,'05141',3987,3988,4,0),(9032,'05141',3573,3574,4,0),(9033,'05141',4279,4280,4,0),(9034,'05143',4397,4398,4,0),(9035,'05145',3953,3954,4,0),(9036,'05145',4239,4240,4,0),(9037,'05145',3883,3884,4,0),(9038,'05146',3465,3466,4,0),(9039,'05146',3931,3932,4,0),(9040,'05146',4449,4450,4,0),(9041,'05146',3879,3880,4,0),(9042,'05146',4215,4216,4,0),(9043,'05146',3763,3764,4,0),(9044,'05146',3663,3664,4,0),(9045,'05147',3797,3798,4,0),(9046,'05147',3705,3706,4,0),(9047,'05148',3515,3516,4,0),(9048,'05149',3577,3578,4,0),(9049,'05149',4351,4352,4,0),(9050,'05150',4113,4114,4,0),(9051,'05150',4259,4260,4,0),(9052,'05150',4169,4170,4,0),(9053,'05151',3895,3896,4,0),(9054,'05151',3607,3608,4,0),(9055,'05152',3897,3898,4,0),(9056,'05153',3401,3402,4,0),(9057,'05153',3449,3450,4,0),(9058,'05153',3871,3872,4,0),(9059,'05153',3653,3654,4,0),(9060,'05153',3589,3590,4,0),(9061,'05154',3983,3984,4,0),(9062,'05154',4453,4454,4,0),(9063,'05154',3655,3656,4,0),(9064,'05160',3429,3430,4,0),(9065,'05161',3921,3922,4,0),(9066,'05162',3849,3850,4,0),(9067,'05163',3941,3942,4,0),(9068,'05163',3735,3736,4,0),(9069,'05163',4129,4130,4,0),(9070,'05164',3659,3660,4,0),(9071,'05164',4421,4422,4,0),(9072,'05164',3751,3752,4,0),(9073,'05164',4263,4264,4,0),(9074,'05164',4171,4172,4,0),(9075,'05165',4121,4122,4,0),(9076,'05165',3633,3634,4,0),(9077,'05165',3519,3520,4,0),(9078,'05165',4367,4368,4,0),(9079,'05170',3667,3668,4,0),(9080,'05190',4175,4176,4,0),(9081,'05191',4085,4086,4,0),(9082,'05191',3927,3928,4,0),(9083,'05192',3831,3832,4,0),(9084,'05192',3817,3818,4,0),(9085,'05192',3971,3972,4,0),(9086,'05193',4307,4308,4,0),(9087,'05193',4089,4090,4,0),(9088,'05194',3901,3902,4,0),(9089,'05194',3431,3432,4,0),(9090,'05194',3461,3462,4,0),(9091,'05195',3433,3434,4,0),(9092,'05196',3755,3756,4,0),(9093,'05196',4381,4382,4,0),(9094,'05197',3435,3436,4,0),(9095,'05197',3637,3638,4,0),(9096,'05197',3719,3720,4,0),(9097,'05198',4359,4360,4,0),(9098,'05200',3405,3406,4,0),(9099,'05210',3771,3772,4,0),(9100,'05210',4225,4226,4,0),(9101,'05211',3581,3582,4,0),(9102,'05211',3511,3512,4,0),(9103,'05211',3535,3536,4,0),(9104,'05211',3457,3458,4,0),(9105,'05212',3697,3698,4,0),(9106,'05212',3387,3388,4,0),(9107,'05212',4425,4426,4,0),(9108,'05212',3523,3524,4,0),(9109,'05212',3693,3694,4,0),(9110,'05213',3841,3842,4,0),(9111,'05215',4341,4342,4,0),(9112,'05215',4105,4106,4,0),(9113,'05215',3615,3616,4,0),(9114,'05216',4003,4004,4,0),(9115,'05217',3593,3594,4,0),(9116,'05217',3507,3508,4,0),(9117,'05217',4271,4272,4,0),(9118,'05217',3611,3612,4,0),(9119,'05220',3863,3864,4,0),(9120,'05229',3453,3454,4,0),(9121,'05229',4207,4208,4,0),(9122,'05229',3561,3562,4,0),(9123,'05229',3439,3440,4,0),(9124,'05230',3853,3854,4,0),(9125,'05239',3855,3856,4,0),(9126,'05239',4125,4126,4,0),(9127,'05240',4043,4044,4,0),(9128,'05250',3645,3646,4,0),(9129,'05260',3565,3566,4,0),(9130,'05267',4199,4200,4,0),(9131,'05268',3757,3758,4,0),(9132,'05268',4283,4284,4,0),(9133,'05270',3669,3670,4,0),(9134,'05278',3671,3672,4,0),(9135,'05278',3629,3630,4,0),(9136,'05279',3673,3674,4,0),(9137,'05280',3923,3924,4,0),(9138,'05289',4371,4372,4,0),(9139,'05289',4203,4204,4,0),(9140,'05290',3475,3476,4,0),(9141,'05290',4275,4276,4,0),(9142,'05291',3867,3868,4,0),(9143,'05292',4323,4324,4,0),(9144,'05292',4101,4102,4,0),(9145,'05292',4401,4402,4,0),(9146,'05292',4405,4406,4,0),(9147,'05292',4153,4154,4,0),(9148,'05294',3759,3760,4,0),(9149,'05296',3747,3748,4,0),(9150,'05296',3677,3678,4,0),(9151,'05296',3375,3376,4,0),(9152,'05296',4093,4094,4,0),(9153,'05298',4373,4374,4,0),(9154,'05298',4165,4166,4,0),(9155,'05298',3875,3876,4,0),(9156,'05299',3471,3472,4,0),(9157,'05299',3945,3946,4,0),(9158,'05300',3597,3598,4,0),(9159,'05309',4445,4446,4,0),(9160,'05309',3599,3600,4,0),(9161,'05309',3961,3962,4,0),(9162,'05309',3585,3586,4,0),(9163,'05309',4179,4180,4,0),(9164,'05310',3685,3686,4,0),(9165,'05320',3539,3540,4,0),(9166,'05340',3409,3410,4,0),(9167,'05340',3497,3498,4,0),(9168,'05350',4267,4268,4,0),(9169,'05357',4327,4328,4,0),(9170,'05357',3491,3492,4,0),(9171,'05357',3963,3964,4,0),(9172,'05357',3411,3412,4,0),(9173,'05357',3739,3740,4,0),(9174,'05357',4409,4410,4,0),(9175,'05357',4337,4338,4,0),(9176,'05358',3967,3968,4,0),(9177,'05358',4109,4110,4,0),(9178,'05358',3379,3380,4,0),(9179,'05358',3991,3992,4,0),(9180,'05358',4227,4228,4,0),(9181,'05364',3791,3792,4,0),(9182,'05370',3681,3682,4,0),(9183,'05370',3995,3996,4,0),(9184,'05380',4187,4188,4,0),(9185,'05380',3467,3468,4,0),(9186,'05380',3731,3732,4,0),(9187,'05380',3975,3976,4,0),(9188,'05400',3395,3396,4,0),(9189,'05410',3935,3936,4,0),(9190,'05412',4211,4212,4,0),(9191,'05413',4287,4288,4,0),(9192,'05413',4437,4438,4,0),(9193,'05414',3603,3604,4,0),(9194,'05415',3641,3642,4,0),(9195,'05416',3619,3620,4,0),(9196,'05417',3743,3744,4,0),(9197,'05418',3397,3398,4,0),(9198,'05420',4363,4364,4,0),(9199,'05427',3767,3768,4,0),(9200,'05427',3689,3690,4,0),(9201,'05428',3555,3556,4,0),(9202,'05429',3557,3558,4,0),(9203,'05429',4311,4312,4,0),(9204,'05429',4023,4024,4,0),(9205,'05430',3805,3806,4,0),(9206,'05440',4139,4140,4,0),(9207,'05450',3551,3552,4,0),(9208,'05460',3713,3714,4,0),(9209,'05461',3917,3918,4,0),(9210,'05470',4117,4118,4,0),(9211,'05480',3529,3530,4,0),(9212,'05489',3531,3532,4,0),(9213,'05490',3845,3846,4,0),(9214,'05491',3937,3938,4,0),(9215,'05492',4149,4150,4,0),(9216,'05500',4133,4134,4,0),(9217,'05510',4301,4302,4,0),(9218,'05511',4303,4304,4,0),(9219,'05513',3503,3504,4,0),(9220,'05514',3913,3914,4,0),(9221,'05514',4255,4256,4,0),(9222,'05514',3485,3486,4,0),(9223,'05514',4385,4386,4,0),(9224,'05514',4019,4020,4,0),(9225,'05515',4135,4136,4,0),(9226,'05516',3779,3780,4,0),(9227,'05516',4195,4196,4,0),(9228,'05516',4433,4434,4,0),(9229,'05519',2651,2652,4,0),(9230,'05520',4183,4184,4,0),(9231,'05520',4097,4098,4,0),(9232,'05520',3835,3836,4,0),(9233,'05530',3957,3958,4,0),(9234,'05530',4297,4298,4,0),(9235,'05540',4141,4142,4,0),(9236,'05540',3949,3950,4,0),(9237,'05540',3837,3838,4,0),(9238,'05560',3979,3980,4,0),(9239,'05560',4393,4394,4,0),(9240,'05560',4145,4146,4,0),(9241,'05560',3391,3392,4,0),(9242,'05560',4157,4158,4,0),(9243,'05560',4441,4442,4,0),(9244,'05570',3487,3488,4,0),(9245,'05571',4413,4414,4,0),(9246,'05571',4011,4012,4,0),(9247,'05571',3543,3544,4,0),(9248,'05580',3383,3384,4,0),(9249,'05580',4291,4292,4,0),(9250,'05580',3415,3416,4,0),(9251,'05581',4293,4294,4,0),(9252,'05591',4429,4430,4,0),(9253,'05592',4315,4316,4,0),(9254,'05593',3809,3810,4,0),(9255,'05600',3623,3624,4,0),(9256,'05610',3443,3444,4,0),(9257,'05619',3727,3728,4,0),(9258,'05619',4191,4192,4,0),(9259,'05619',4081,4082,4,0),(9260,'05619',3905,3906,4,0),(9261,'05620',3813,3814,4,0),(9262,'05621',4161,4162,4,0),(9263,'05621',4345,4346,4,0),(9264,'05630',4319,4320,4,0),(9265,'05630',3479,3480,4,0),(9266,'05631',4457,4458,4,0),(9267,'05631',4047,4048,4,0),(9268,'05632',4219,4220,4,0),(9269,'05632',4049,4050,4,0),(9270,'05633',4221,4222,4,0),(9271,'05634',3787,3788,4,0),(9272,'05634',3793,3794,4,0),(9273,'05635',4061,4062,4,0),(9274,'05640',3715,3716,4,0),(9275,'05690',3481,3482,4,0),(9276,'05690',3859,3860,4,0),(9277,'05691',4347,4348,4,0),(9278,'05692',3649,3650,4,0),(9279,'05693',4389,4390,4,0),(9280,'05693',3723,3724,4,0),(9281,'05694',3445,3446,4,0),(9282,'05694',3801,3802,4,0),(9283,'05695',3825,3826,4,0),(9284,'05696',3827,3828,4,0),(9285,'05696',4243,4244,4,0),(9286,'05697',4035,4036,4,0),(9287,'05697',4377,4378,4,0),(9288,'05697',4077,4078,4,0),(9289,'05697',4007,4008,4,0),(9290,'06001',4523,4524,4,0),(9291,'06002',4525,4526,4,0),(9292,'06003',4527,4528,4,0),(9293,'06004',4529,4530,4,0),(9294,'06005',4531,4532,4,0),(9295,'06006',4533,4534,4,0),(9296,'06007',4535,4536,4,0),(9297,'06008',4537,4538,4,0),(9298,'06009',4539,4540,4,0),(9299,'06010',4541,4542,4,0),(9300,'06011',4543,4544,4,0),(9301,'06100',4947,4948,4,0),(9302,'06105',4655,4656,4,0),(9303,'06106',4949,4950,4,0),(9304,'06107',4951,4952,4,0),(9305,'06108',4953,4954,4,0),(9306,'06109',4955,4956,4,0),(9307,'06110',5199,5200,4,0),(9308,'06120',4939,4940,4,0),(9309,'06129',5221,5222,4,0),(9310,'06130',5159,5160,4,0),(9311,'06131',4489,4490,4,0),(9312,'06132',4775,4776,4,0),(9313,'06133',5087,5088,4,0),(9314,'06134',5135,5136,4,0),(9315,'06140',5083,5084,4,0),(9316,'06150',5059,5060,4,0),(9317,'06160',4563,4564,4,0),(9318,'06170',4545,4546,4,0),(9319,'06170',4797,4798,4,0),(9320,'06171',4501,4502,4,0),(9321,'06172',5095,5096,4,0),(9322,'06173',4935,4936,4,0),(9323,'06174',5037,5038,4,0),(9324,'06174',4813,4814,4,0),(9325,'06175',5041,5042,4,0),(9326,'06176',4831,4832,4,0),(9327,'06176',4823,4824,4,0),(9328,'06177',5147,5148,4,0),(9329,'06178',5151,5152,4,0),(9330,'06180',4547,4548,4,0),(9331,'06181',4549,4550,4,0),(9332,'06182',4551,4552,4,0),(9333,'06183',4553,4554,4,0),(9334,'06184',5009,5010,4,0),(9335,'06185',5123,5124,4,0),(9336,'06186',4747,4748,4,0),(9337,'06187',4849,4850,4,0),(9338,'06190',4835,4836,4,0),(9339,'06191',4991,4992,4,0),(9340,'06192',5209,5210,4,0),(9341,'06193',4555,4556,4,0),(9342,'06194',4557,4558,4,0),(9343,'06195',4559,4560,4,0),(9344,'06196',4663,4664,4,0),(9345,'06196',5071,5072,4,0),(9346,'06197',4691,4692,4,0),(9347,'06198',5073,5074,4,0),(9348,'06200',4505,4506,4,0),(9349,'06207',4469,4470,4,0),(9350,'06208',5183,5184,4,0),(9351,'06209',5075,5076,4,0),(9352,'06210',5103,5104,4,0),(9353,'06220',5171,5172,4,0),(9354,'06225',5029,5030,4,0),(9355,'06226',4783,4784,4,0),(9356,'06227',4841,4842,4,0),(9357,'06228',4787,4788,4,0),(9358,'06229',5005,5006,4,0),(9359,'06230',4855,4856,4,0),(9360,'06240',4719,4720,4,0),(9361,'06249',4633,4634,4,0),(9362,'06249',4615,4616,4,0),(9363,'06250',4585,4586,4,0),(9364,'06260',4899,4900,4,0),(9365,'06270',5063,5064,4,0),(9366,'06280',4731,4732,4,0),(9367,'06290',5115,5116,4,0),(9368,'06291',4903,4904,4,0),(9369,'06292',4611,4612,4,0),(9370,'06293',4603,4604,4,0),(9371,'06300',5217,5218,4,0),(9372,'06310',4995,4996,4,0),(9373,'06320',4883,4884,4,0),(9374,'06329',4513,4514,4,0),(9375,'06330',5139,5140,4,0),(9376,'06340',4711,4712,4,0),(9377,'06350',4779,4780,4,0),(9378,'06360',4727,4728,4,0),(9379,'06370',4593,4594,4,0),(9380,'06378',5155,5156,4,0),(9381,'06380',4791,4792,4,0),(9382,'06389',4793,4794,4,0),(9383,'06390',4707,4708,4,0),(9384,'06391',4819,4820,4,0),(9385,'06392',4997,4998,4,0),(9386,'06393',4493,4494,4,0),(9387,'06394',4589,4590,4,0),(9388,'06400',4675,4676,4,0),(9389,'06410',4471,4472,4,0),(9390,'06410',5055,5056,4,0),(9391,'06410',4751,4752,4,0),(9392,'06410',4677,4678,4,0),(9393,'06411',4879,4880,4,0),(9394,'06412',4679,4680,4,0),(9395,'06413',4887,4888,4,0),(9396,'06420',4651,4652,4,0),(9397,'06427',4911,4912,4,0),(9398,'06428',4571,4572,4,0),(9399,'06429',4573,4574,4,0),(9400,'06430',5225,5226,4,0),(9401,'06439',4699,4700,4,0),(9402,'06440',4871,4872,4,0),(9403,'06441',4767,4768,4,0),(9404,'06442',5025,5026,4,0),(9405,'06443',4625,4626,4,0),(9406,'06444',5131,5132,4,0),(9407,'06445',4771,4772,4,0),(9408,'06450',5013,5014,4,0),(9409,'06458',5143,5144,4,0),(9410,'06459',4619,4620,4,0),(9411,'06460',4621,4622,4,0),(9412,'06468',4859,4860,4,0),(9413,'06469',4805,4806,4,0),(9414,'06470',4753,4754,4,0),(9415,'06473',5179,5180,4,0),(9416,'06474',5127,5128,4,0),(9417,'06475',4943,4944,4,0),(9418,'06476',4967,4968,4,0),(9419,'06477',4987,4988,4,0),(9420,'06478',4875,4876,4,0),(9421,'06479',4667,4668,4,0),(9422,'06480',4915,4916,4,0),(9423,'06486',4827,4828,4,0),(9424,'06487',4659,4660,4,0),(9425,'06488',4635,4636,4,0),(9426,'06489',4917,4918,4,0),(9427,'06490',4983,4984,4,0),(9428,'06498',4851,4852,4,0),(9429,'06499',4919,4920,4,0),(9430,'06500',5049,5050,4,0),(9431,'06510',4483,4484,4,0),(9432,'06518',4801,4802,4,0),(9433,'06519',4485,4486,4,0),(9434,'06600',4597,4598,4,0),(9435,'06610',4971,4972,4,0),(9436,'06611',5229,5230,4,0),(9437,'06612',4629,4630,4,0),(9438,'06613',4575,4576,4,0),(9439,'06614',4599,4600,4,0),(9440,'06615',4577,4578,4,0),(9441,'06620',4703,4704,4,0),(9442,'06630',4979,4980,4,0),(9443,'06640',5079,5080,4,0),(9444,'06650',5067,5068,4,0),(9445,'06656',4739,4740,4,0),(9446,'06657',5033,5034,4,0),(9447,'06658',5091,5092,4,0),(9448,'06659',4567,4568,4,0),(9449,'06660',4715,4716,4,0),(9450,'06670',4761,4762,4,0),(9451,'06678',5213,5214,4,0),(9452,'06679',4763,4764,4,0),(9453,'06680',4647,4648,4,0),(9454,'06689',5119,5120,4,0),(9455,'06690',4735,4736,4,0),(9456,'06692',4757,4758,4,0),(9457,'06700',5187,5188,4,0),(9458,'06710',5189,5190,4,0),(9459,'06711',4681,4682,4,0),(9460,'06712',5191,5192,4,0),(9461,'06713',4463,4464,4,0),(9462,'06714',4815,4816,4,0),(9463,'06715',5021,5022,4,0),(9464,'06716',5203,5204,4,0),(9465,'06717',5205,5206,4,0),(9466,'06717',4683,4684,4,0),(9467,'06718',5193,5194,4,0),(9468,'06720',5195,5196,4,0),(9469,'06730',4927,4928,4,0),(9470,'06730',4465,4466,4,0),(9471,'06731',4929,4930,4,0),(9472,'06740',4963,4964,4,0),(9473,'06750',4959,4960,4,0),(9474,'06760',4931,4932,4,0),(9475,'06770',4639,4640,4,0),(9476,'06800',4891,4892,4,0),(9477,'06810',4607,4608,4,0),(9478,'06820',4671,4672,4,0),(9479,'06830',40867,40868,4,0),(9480,'06840',4479,4480,4,0),(9481,'06850',4509,4510,4,0),(9482,'06860',4695,4696,4,0),(9483,'06870',4809,4810,4,0),(9484,'06880',5099,5100,4,0),(9485,'06890',5167,5168,4,0),(9486,'06891',4895,4896,4,0),(9487,'06892',5111,5112,4,0),(9488,'06893',5045,5046,4,0),(9489,'06894',4497,4498,4,0),(9490,'06894',4687,4688,4,0),(9491,'06900',4845,4846,4,0),(9492,'06906',5001,5002,4,0),(9493,'06907',4905,4906,4,0),(9494,'06908',4907,4908,4,0),(9495,'06909',5107,5108,4,0),(9496,'06910',4743,4744,4,0),(9497,'06919',4975,4976,4,0),(9498,'06920',4517,4518,4,0),(9499,'06927',5163,5164,4,0),(9500,'06928',4867,4868,4,0),(9501,'06929',4519,4520,4,0),(9502,'06930',4581,4582,4,0),(9503,'06939',4863,4864,4,0),(9504,'06940',4475,4476,4,0),(9505,'06950',5175,5176,4,0),(9506,'06960',4643,4644,4,0),(9507,'06970',5017,5018,4,0),(9508,'06980',4723,4724,4,0),(9509,'07001',5497,5498,4,0),(9510,'07002',5499,5500,4,0),(9511,'07003',5501,5502,4,0),(9512,'07004',5503,5504,4,0),(9513,'07005',5505,5506,4,0),(9514,'07006',5507,5508,4,0),(9515,'07007',5509,5510,4,0),(9516,'07008',5511,5512,4,0),(9517,'07009',5513,5514,4,0),(9518,'07010',5351,5352,4,0),(9519,'07010',5515,5516,4,0),(9520,'07011',5517,5518,4,0),(9521,'07012',5519,5520,4,0),(9522,'07013',5521,5522,4,0),(9523,'07014',5523,5524,4,0),(9524,'07015',5525,5526,4,0),(9525,'07071',5527,5528,4,0),(9526,'07100',5653,5654,4,0),(9527,'07101',5655,5656,4,0),(9528,'07108',5657,5658,4,0),(9529,'07109',5431,5432,4,0),(9530,'07110',5353,5354,4,0),(9531,'07120',5529,5530,4,0),(9532,'07140',5633,5634,4,0),(9533,'07141',5483,5484,4,0),(9534,'07142',5587,5588,4,0),(9535,'07143',5635,5636,4,0),(9536,'07144',5637,5638,4,0),(9537,'07144',5399,5400,4,0),(9538,'07150',5315,5316,4,0),(9539,'07157',5317,5318,4,0),(9540,'07159',5319,5320,4,0),(9541,'07160',5361,5362,4,0),(9542,'07160',5321,5322,4,0),(9543,'07170',5673,5674,4,0),(9544,'07179',5659,5660,4,0),(9545,'07179',5403,5404,4,0),(9546,'07180',5363,5364,4,0),(9547,'07181',5365,5366,4,0),(9548,'07183',5367,5368,4,0),(9549,'07184',5369,5370,4,0),(9550,'07190',5411,5412,4,0),(9551,'07190',5337,5338,4,0),(9552,'07190',5675,5676,4,0),(9553,'07191',5339,5340,4,0),(9554,'07192',5415,5416,4,0),(9555,'07193',5355,5356,4,0),(9556,'07194',5561,5562,4,0),(9557,'07195',5563,5564,4,0),(9558,'07196',5371,5372,4,0),(9559,'07198',5531,5532,4,0),(9560,'07199',5533,5534,4,0),(9561,'07200',5419,5420,4,0),(9562,'07208',5421,5422,4,0),(9563,'07209',5423,5424,4,0),(9564,'07210',5307,5308,4,0),(9565,'07220',5309,5310,4,0),(9566,'07230',5487,5488,4,0),(9567,'07240',5571,5572,4,0),(9568,'07250',5679,5680,4,0),(9569,'07259',5325,5326,4,0),(9570,'07260',5557,5558,4,0),(9571,'07300',5435,5436,4,0),(9572,'07310',5375,5376,4,0),(9573,'07311',5347,5348,4,0),(9574,'07312',5475,5476,4,0),(9575,'07313',5623,5624,4,0),(9576,'07314',5625,5626,4,0),(9577,'07315',5407,5408,4,0),(9578,'07316',5627,5628,4,0),(9579,'07320',5599,5600,4,0),(9580,'07330',5395,5396,4,0),(9581,'07340',5299,5300,4,0),(9582,'07349',5357,5358,4,0),(9583,'07350',5343,5344,4,0),(9584,'07360',5443,5444,4,0),(9585,'07369',5629,5630,4,0),(9586,'07400',5303,5304,4,0),(9587,'07420',5567,5568,4,0),(9588,'07430',5447,5448,4,0),(9589,'07440',5491,5492,4,0),(9590,'07450',5591,5592,4,0),(9591,'07458',5593,5594,4,0),(9592,'07458',5493,5494,4,0),(9593,'07459',5595,5596,4,0),(9594,'07460',5549,5550,4,0),(9595,'07469',5551,5552,4,0),(9596,'07470',5553,5554,4,0),(9597,'07500',5461,5462,4,0),(9598,'07509',5463,5464,4,0),(9599,'07510',5649,5650,4,0),(9600,'07511',5639,5640,4,0),(9601,'07518',5439,5440,4,0),(9602,'07519',5479,5480,4,0),(9603,'07520',5545,5546,4,0),(9604,'07529',5327,5328,4,0),(9605,'07530',5577,5578,4,0),(9606,'07540',5579,5580,4,0),(9607,'07550',5663,5664,4,0),(9608,'07559',5665,5666,4,0),(9609,'07560',5667,5668,4,0),(9610,'07560',5581,5582,4,0),(9611,'07560',5603,5604,4,0),(9612,'07570',5331,5332,4,0),(9613,'07579',5333,5334,4,0),(9614,'07580',5387,5388,4,0),(9615,'07589',5389,5390,4,0),(9616,'07590',5391,5392,4,0),(9617,'07600',5451,5452,4,0),(9618,'07600',5535,5536,4,0),(9619,'07608',5537,5538,4,0),(9620,'07609',5453,5454,4,0),(9621,'07610',5539,5540,4,0),(9622,'07620',5455,5456,4,0),(9623,'07629',5311,5312,4,0),(9624,'07630',5379,5380,4,0),(9625,'07638',5643,5644,4,0),(9626,'07638',5381,5382,4,0),(9627,'07639',5383,5384,4,0),(9628,'07639',5457,5458,4,0),(9629,'07640',5645,5646,4,0),(9630,'07650',5605,5606,4,0),(9631,'07659',5607,5608,4,0),(9632,'07660',5609,5610,4,0),(9633,'07669',5425,5426,4,0),(9634,'07669',5611,5612,4,0),(9635,'07670',5427,5428,4,0),(9636,'07680',5465,5466,4,0),(9637,'07687',5467,5468,4,0),(9638,'07687',5583,5584,4,0),(9639,'07688',5469,5470,4,0),(9640,'07689',5471,5472,4,0),(9641,'07690',5613,5614,4,0),(9642,'07691',5615,5616,4,0),(9643,'07700',5715,5716,4,0),(9644,'07701',5717,5718,4,0),(9645,'07702',5719,5720,4,0),(9646,'07703',5721,5722,4,0),(9647,'07710',5729,5730,4,0),(9648,'07711',5731,5732,4,0),(9649,'07712',5723,5724,4,0),(9650,'07713',5733,5734,4,0),(9651,'07714',5725,5726,4,0),(9652,'07720',5573,5574,4,0),(9653,'07720',5697,5698,4,0),(9654,'07730',5685,5686,4,0),(9655,'07740',5701,5702,4,0),(9656,'07748',5703,5704,4,0),(9657,'07749',5707,5708,4,0),(9658,'07750',5669,5670,4,0),(9659,'07750',5689,5690,4,0),(9660,'07750',5711,5712,4,0),(9661,'07760',5691,5692,4,0),(9662,'07760',5617,5618,4,0),(9663,'07769',5693,5694,4,0),(9664,'07800',5237,5238,4,0),(9665,'07800',5251,5252,4,0),(9666,'07800',5283,5284,4,0),(9667,'07810',5261,5262,4,0),(9668,'07811',5263,5264,4,0),(9669,'07812',5265,5266,4,0),(9670,'07814',5285,5286,4,0),(9671,'07815',5267,5268,4,0),(9672,'07816',5253,5254,4,0),(9673,'07817',5271,5272,4,0),(9674,'07818',5273,5274,4,0),(9675,'07819',5287,5288,4,0),(9676,'07820',5255,5256,4,0),(9677,'07828',5257,5258,4,0),(9678,'07829',5275,5276,4,0),(9679,'07830',5277,5278,4,0),(9680,'07839',5279,5280,4,0),(9681,'07840',5289,5290,4,0),(9682,'07849',5291,5292,4,0),(9683,'07850',5293,5294,4,0),(9684,'07850',5619,5620,4,0),(9685,'07860',5241,5242,4,0),(9686,'07870',5243,5244,4,0),(9687,'07871',5245,5246,4,0),(9688,'07872',5247,5248,4,0),(9689,'08001',5839,5840,4,0),(9690,'08002',5841,5842,4,0),(9691,'08003',5843,5844,4,0),(9692,'08004',5845,5846,4,0),(9693,'08005',5847,5848,4,0),(9694,'08006',5849,5850,4,0),(9695,'08007',5851,5852,4,0),(9696,'08008',5853,5854,4,0),(9697,'08009',5855,5856,4,0),(9698,'08010',5857,5858,4,0),(9699,'08011',5859,5860,4,0),(9700,'08012',5861,5862,4,0),(9701,'08013',5863,5864,4,0),(9702,'08014',5865,5866,4,0),(9703,'08015',5867,5868,4,0),(9704,'08016',5869,5870,4,0),(9705,'08017',5871,5872,4,0),(9706,'08018',5873,5874,4,0),(9707,'08019',5875,5876,4,0),(9708,'08020',5877,5878,4,0),(9709,'08021',5879,5880,4,0),(9710,'08022',5881,5882,4,0),(9711,'08023',5883,5884,4,0),(9712,'08024',5885,5886,4,0),(9713,'08025',5887,5888,4,0),(9714,'08026',5889,5890,4,0),(9715,'08027',5891,5892,4,0),(9716,'08028',5893,5894,4,0),(9717,'08029',5895,5896,4,0),(9718,'08030',5897,5898,4,0),(9719,'08031',5899,5900,4,0),(9720,'08032',5901,5902,4,0),(9721,'08033',5903,5904,4,0),(9722,'08034',5905,5906,4,0),(9723,'08035',5907,5908,4,0),(9724,'08036',5909,5910,4,0),(9725,'08037',5911,5912,4,0),(9726,'08038',5913,5914,4,0),(9727,'08039',5915,5916,4,0),(9728,'08040',5917,5918,4,0),(9729,'08041',5919,5920,4,0),(9730,'08042',5921,5922,4,0),(9731,'08100',6483,6484,4,0),(9732,'08104',6485,6486,4,0),(9733,'08105',6827,6828,4,0),(9734,'08106',7035,7036,4,0),(9735,'08107',6447,6448,4,0),(9736,'08110',6497,6498,4,0),(9737,'08120',6349,6350,4,0),(9738,'08130',7053,7054,4,0),(9739,'08140',5973,5974,4,0),(9740,'08146',6245,6246,4,0),(9741,'08148',6313,6314,4,0),(9742,'08150',6619,6620,4,0),(9743,'08160',6521,6522,4,0),(9744,'08161',6683,6684,4,0),(9745,'08170',6525,6526,4,0),(9746,'08172',6779,6780,4,0),(9747,'08173',6781,6782,4,0),(9748,'08174',6783,6784,4,0),(9749,'08175',6785,6786,4,0),(9750,'08178',6135,6136,4,0),(9751,'08180',6475,6476,4,0),(9752,'08181',7065,7066,4,0),(9753,'08182',6815,6816,4,0),(9754,'08183',6101,6102,4,0),(9755,'08183',6067,6068,4,0),(9756,'08183',6265,6266,4,0),(9757,'08184',6315,6316,4,0),(9758,'08184',6609,6610,4,0),(9759,'08185',6405,6406,4,0),(9760,'08186',6401,6402,4,0),(9761,'08187',7009,7010,4,0),(9762,'08188',7195,7196,4,0),(9763,'08189',6951,6952,4,0),(9764,'08190',6787,6788,4,0),(9765,'08191',6685,6686,4,0),(9766,'08192',6943,6944,4,0),(9767,'08193',6121,6122,4,0),(9768,'08194',6945,6946,4,0),(9769,'08195',6789,6790,4,0),(9770,'08196',6791,6792,4,0),(9771,'08197',6793,6794,4,0),(9772,'08198',6795,6796,4,0),(9773,'08201',6697,6698,4,0),(9774,'08202',6699,6700,4,0),(9775,'08203',6701,6702,4,0),(9776,'08204',6703,6704,4,0),(9777,'08205',6705,6706,4,0),(9778,'08206',6707,6708,4,0),(9779,'08207',6709,6710,4,0),(9780,'08208',6711,6712,4,0),(9781,'08210',5835,5836,4,0),(9782,'08211',6055,6056,4,0),(9783,'08212',6871,6872,4,0),(9784,'08213',6635,6636,4,0),(9785,'08214',5819,5820,4,0),(9786,'08220',6753,6754,4,0),(9787,'08221',7121,7122,4,0),(9788,'08222',7123,7124,4,0),(9789,'08223',7125,7126,4,0),(9790,'08224',7127,7128,4,0),(9791,'08225',7129,7130,4,0),(9792,'08226',7131,7132,4,0),(9793,'08227',7133,7134,4,0),(9794,'08228',7135,7136,4,0),(9795,'08228',6947,6948,4,0),(9796,'08230',6457,6458,4,0),(9797,'08231',7169,7170,4,0),(9798,'08232',7217,7218,4,0),(9799,'08233',7173,7174,4,0),(9800,'08240',6429,6430,4,0),(9801,'08241',6431,6432,4,0),(9802,'08242',6433,6434,4,0),(9803,'08243',6435,6436,4,0),(9804,'08250',6847,6848,4,0),(9805,'08251',7061,7062,4,0),(9806,'08251',6093,6094,4,0),(9807,'08253',6963,6964,4,0),(9808,'08254',6181,6182,4,0),(9809,'08255',6085,6086,4,0),(9810,'08256',5743,5744,4,0),(9811,'08256',6667,6668,4,0),(9812,'08259',6227,6228,4,0),(9813,'08260',7093,7094,4,0),(9814,'08261',6031,6032,4,0),(9815,'08262',5985,5986,4,0),(9816,'08263',6897,6898,4,0),(9817,'08269',6547,6548,4,0),(9818,'08269',6899,6900,4,0),(9819,'08270',6543,6544,4,0),(9820,'08271',5777,5778,4,0),(9821,'08272',6831,6832,4,0),(9822,'08273',7025,7026,4,0),(9823,'08274',6823,6824,4,0),(9824,'08275',5965,5966,4,0),(9825,'08275',6489,6490,4,0),(9826,'08278',7101,7102,4,0),(9827,'08278',6539,6540,4,0),(9828,'08279',5787,5788,4,0),(9829,'08280',5961,5962,4,0),(9830,'08281',6925,6926,4,0),(9831,'08281',5989,5990,4,0),(9832,'08281',6193,6194,4,0),(9833,'08281',23937,23938,4,0),(9834,'08281',6081,6082,4,0),(9835,'08282',6893,6894,4,0),(9836,'08282',6663,6664,4,0),(9837,'08289',6139,6140,4,0),(9838,'08289',7199,7200,4,0),(9839,'08289',24331,24332,4,0),(9840,'08290',6123,6124,4,0),(9841,'08291',6675,6676,4,0),(9842,'08292',6197,6198,4,0),(9843,'08293',6131,6132,4,0),(9844,'08294',6161,6162,4,0),(9845,'08295',6967,6968,4,0),(9846,'08296',6059,6060,4,0),(9847,'08297',6089,6090,4,0),(9848,'08298',6439,6440,4,0),(9849,'08299',6671,6672,4,0),(9850,'08301',6461,6462,4,0),(9851,'08302',6463,6464,4,0),(9852,'08303',6465,6466,4,0),(9853,'08304',6467,6468,4,0),(9854,'08310',5773,5774,4,0),(9855,'08317',6597,6598,4,0),(9856,'08318',6155,6156,4,0),(9857,'08319',6157,6158,4,0),(9858,'08320',6169,6170,4,0),(9859,'08328',5751,5752,4,0),(9860,'08329',7117,7118,4,0),(9861,'08330',6651,6652,4,0),(9862,'08338',6647,6648,4,0),(9863,'08339',7245,7246,4,0),(9864,'08340',7249,7250,4,0),(9865,'08348',5955,5956,4,0),(9866,'08349',5951,5952,4,0),(9867,'08350',5759,5760,4,0),(9868,'08350',5763,5764,4,0),(9869,'08358',5765,5766,4,0),(9870,'08359',6839,6840,4,0),(9871,'08360',5999,6000,4,0),(9872,'08370',5977,5978,4,0),(9873,'08380',6417,6418,4,0),(9874,'08384',5957,5958,4,0),(9875,'08389',6605,6606,4,0),(9876,'08390',6509,6510,4,0),(9877,'08391',7141,7142,4,0),(9878,'08392',6741,6742,4,0),(9879,'08393',5969,5970,4,0),(9880,'08394',6971,6972,4,0),(9881,'08395',6929,6930,4,0),(9882,'08396',6763,6764,4,0),(9883,'08397',6631,6632,4,0),(9884,'08398',7057,7058,4,0),(9885,'08401',6269,6270,4,0),(9886,'08402',6271,6272,4,0),(9887,'08403',6273,6274,4,0),(9888,'08410',7237,7238,4,0),(9889,'08415',5937,5938,4,0),(9890,'08416',5939,5940,4,0),(9891,'08420',6003,6004,4,0),(9892,'08430',6373,6374,4,0),(9893,'08440',6027,6028,4,0),(9894,'08440',6007,6008,4,0),(9895,'08445',6009,6010,4,0),(9896,'08450',6409,6410,4,0),(9897,'08455',7225,7226,4,0),(9898,'08458',6873,6874,4,0),(9899,'08458',6917,6918,4,0),(9900,'08459',6745,6746,4,0),(9901,'08459',6919,6920,4,0),(9902,'08460',6921,6922,4,0),(9903,'08460',7049,7050,4,0),(9904,'08460',6803,6804,4,0),(9905,'08461',6805,6806,4,0),(9906,'08469',6529,6530,4,0),(9907,'08470',6217,6218,4,0),(9908,'08470',6767,6768,4,0),(9909,'08470',5993,5994,4,0),(9910,'08470',7185,7186,4,0),(9911,'08471',7187,7188,4,0),(9912,'08472',5995,5996,4,0),(9913,'08474',6277,6278,4,0),(9914,'08476',6769,6770,4,0),(9915,'08479',6219,6220,4,0),(9916,'08480',6299,6300,4,0),(9917,'08490',7149,7150,4,0),(9918,'08495',6213,6214,4,0),(9919,'08500',7203,7204,4,0),(9920,'08503',6285,6286,4,0),(9921,'08504',6859,6860,4,0),(9922,'08505',6533,6534,4,0),(9923,'08505',7005,7006,4,0),(9924,'08506',5981,5982,4,0),(9925,'08507',7001,7002,4,0),(9926,'08508',6395,6396,4,0),(9927,'08508',6937,6938,4,0),(9928,'08509',6397,6398,4,0),(9929,'08509',6983,6984,4,0),(9930,'08510',6391,6392,4,0),(9931,'08510',6679,6680,4,0),(9932,'08511',6307,6308,4,0),(9933,'08511',7113,7114,4,0),(9934,'08512',6835,6836,4,0),(9935,'08513',6643,6644,4,0),(9936,'08514',6413,6414,4,0),(9937,'08515',6877,6878,4,0),(9938,'08516',6575,6576,4,0),(9939,'08517',7039,7040,4,0),(9940,'08518',6589,6590,4,0),(9941,'08519',7229,7230,4,0),(9942,'08519',7109,7110,4,0),(9943,'08519',6293,6294,4,0),(9944,'08519',7205,7206,4,0),(9945,'08519',6223,6224,4,0),(9946,'08519',6959,6960,4,0),(9947,'08519',6421,6422,4,0),(9948,'08519',6749,6750,4,0),(9949,'08520',6385,6386,4,0),(9950,'08521',6387,6388,4,0),(9951,'08529',6535,6536,4,0),(9952,'08530',6011,6012,4,0),(9953,'08530',6337,6338,4,0),(9954,'08540',6113,6114,4,0),(9955,'08550',5827,5828,4,0),(9956,'08551',7145,7146,4,0),(9957,'08552',7105,7106,4,0),(9958,'08553',7069,7070,4,0),(9959,'08554',7071,7072,4,0),(9960,'08559',6165,6166,4,0),(9961,'08560',6425,6426,4,0),(9962,'08569',6693,6694,4,0),(9963,'08569',6309,6310,4,0),(9964,'08570',7153,7154,4,0),(9965,'08571',6975,6976,4,0),(9966,'08572',6913,6914,4,0),(9967,'08573',6585,6586,4,0),(9968,'08580',6939,6940,4,0),(9969,'08584',7029,7030,4,0),(9970,'08587',5755,5756,4,0),(9971,'08588',7085,7086,4,0),(9972,'08589',7031,7032,4,0),(9973,'08589',6733,6734,4,0),(9974,'08589',6759,6760,4,0),(9975,'08589',6505,6506,4,0),(9976,'08589',6623,6624,4,0),(9977,'08589',7081,7082,4,0),(9978,'08590',6205,6206,4,0),(9979,'08591',5747,5748,4,0),(9980,'08592',6881,6882,4,0),(9981,'08593',7097,7098,4,0),(9982,'08600',5933,5934,4,0),(9983,'08604',6043,6044,4,0),(9984,'08605',6501,6502,4,0),(9985,'08610',5781,5782,4,0),(9986,'08611',6579,6580,4,0),(9987,'08612',6513,6514,4,0),(9988,'08613',7209,7210,4,0),(9989,'08614',6303,6304,4,0),(9990,'08619',5943,5944,4,0),(9991,'08619',6369,6370,4,0),(9992,'08619',6843,6844,4,0),(9993,'08619',6051,6052,4,0),(9994,'08619',7041,7042,4,0),(9995,'08619',6715,6716,4,0),(9996,'08619',6023,6024,4,0),(9997,'08620',6979,6980,4,0),(9998,'08629',7165,7166,4,0),(9999,'08630',5739,5740,4,0),(10000,'08635',6809,6810,4,0),(10001,'08640',6567,6568,4,0),(10002,'08650',6725,6726,4,0),(10003,'08660',5831,5832,4,0),(10004,'08670',6549,6550,4,0),(10005,'08672',6237,6238,4,0),(10006,'08673',7257,7258,4,0),(10007,'08680',6257,6258,4,0),(10008,'08690',6987,6988,4,0),(10009,'08691',6493,6494,4,0),(10010,'08692',6655,6656,4,0),(10011,'08693',6039,6040,4,0),(10012,'08694',6855,6856,4,0),(10013,'08694',6281,6282,4,0),(10014,'08695',5823,5824,4,0),(10015,'08695',6261,6262,4,0),(10016,'08696',6047,6048,4,0),(10017,'08696',6365,6366,4,0),(10018,'08697',23877,23878,4,0),(10019,'08697',6719,6720,4,0),(10020,'08698',6353,6354,4,0),(10021,'08698',6117,6118,4,0),(10022,'08699',6721,6722,4,0),(10023,'08699',7181,7182,4,0),(10024,'08699',6581,6582,4,0),(10025,'08699',5783,5784,4,0),(10026,'08699',6209,6210,4,0),(10027,'08700',6289,6290,4,0),(10028,'08710',7017,7018,4,0),(10029,'08711',6553,6554,4,0),(10030,'08712',6885,6886,4,0),(10031,'08717',5769,5770,4,0),(10032,'08717',24425,24426,4,0),(10033,'08717',6517,6518,4,0),(10034,'08718',5947,5948,4,0),(10035,'08719',6689,6690,4,0),(10036,'08719',6295,6296,4,0),(10037,'08719',6097,6098,4,0),(10038,'08720',7221,7222,4,0),(10039,'08729',6075,6076,4,0),(10040,'08730',7021,7022,4,0),(10041,'08731',5791,5792,4,0),(10042,'08731',6889,6890,4,0),(10043,'08732',6077,6078,4,0),(10044,'08732',6105,6106,4,0),(10045,'08733',6177,6178,4,0),(10046,'08734',5793,5794,4,0),(10047,'08734',6557,6558,4,0),(10048,'08735',7253,7254,4,0),(10049,'08736',6231,6232,4,0),(10050,'08737',7161,7162,4,0),(10051,'08738',6639,6640,4,0),(10052,'08739',6233,6234,4,0),(10053,'08739',7089,7090,4,0),(10054,'08740',6737,6738,4,0),(10055,'08750',6479,6480,4,0),(10056,'08753',6613,6614,4,0),(10057,'08754',6173,6174,4,0),(10058,'08755',6063,6064,4,0),(10059,'08756',6357,6358,4,0),(10060,'08757',6143,6144,4,0),(10061,'08758',6127,6128,4,0),(10062,'08759',7191,7192,4,0),(10063,'08760',6443,6444,4,0),(10064,'08769',6109,6110,4,0),(10065,'08770',6955,6956,4,0),(10066,'08770',6771,6772,4,0),(10067,'08773',6471,6472,4,0),(10068,'08775',7157,7158,4,0),(10069,'08776',6909,6910,4,0),(10070,'08777',6933,6934,4,0),(10071,'08779',6345,6346,4,0),(10072,'08780',6615,6616,4,0),(10073,'08781',6189,6190,4,0),(10074,'08782',6811,6812,4,0),(10075,'08782',6451,6452,4,0),(10076,'08783',6453,6454,4,0),(10077,'08784',6627,6628,4,0),(10078,'08785',7177,7178,4,0),(10079,'08786',6019,6020,4,0),(10080,'08787',7045,7046,4,0),(10081,'08787',6593,6594,4,0),(10082,'08787',6361,6362,4,0),(10083,'08787',6035,6036,4,0),(10084,'08788',7233,7234,4,0),(10085,'08789',6377,6378,4,0),(10086,'08790',6253,6254,4,0),(10087,'08791',6867,6868,4,0),(10088,'08792',7013,7014,4,0),(10089,'08792',6341,6342,4,0),(10090,'08793',5795,5796,4,0),(10091,'08794',6381,6382,4,0),(10092,'08795',6563,6564,4,0),(10093,'08796',6601,6602,4,0),(10094,'08797',6659,6660,4,0),(10095,'08798',6799,6800,4,0),(10096,'08798',5797,5798,4,0),(10097,'08799',6559,6560,4,0),(10098,'08800',7241,7242,4,0),(10099,'08801',7137,7138,4,0),(10100,'08810',6903,6904,4,0),(10101,'08811',6015,6016,4,0),(10102,'08812',6905,6906,4,0),(10103,'08818',6571,6572,4,0),(10104,'08820',6185,6186,4,0),(10105,'08830',6755,6756,4,0),(10106,'08840',7213,7214,4,0),(10107,'08849',6775,6776,4,0),(10108,'08850',6249,6250,4,0),(10109,'08859',5925,5926,4,0),(10110,'08860',6071,6072,4,0),(10111,'08870',7075,7076,4,0),(10112,'08871',7077,7078,4,0),(10113,'08880',6151,6152,4,0),(10114,'08901',6319,6320,4,0),(10115,'08902',6321,6322,4,0),(10116,'08903',6323,6324,4,0),(10117,'08904',6325,6326,4,0),(10118,'08905',6327,6328,4,0),(10119,'08906',6329,6330,4,0),(10120,'08907',6331,6332,4,0),(10121,'08908',6333,6334,4,0),(10122,'08911',5801,5802,4,0),(10123,'08912',5803,5804,4,0),(10124,'08913',5805,5806,4,0),(10125,'08914',5807,5808,4,0),(10126,'08915',5809,5810,4,0),(10127,'08916',5811,5812,4,0),(10128,'08917',5813,5814,4,0),(10129,'08918',5815,5816,4,0),(10130,'08921',6991,6992,4,0),(10131,'08922',6993,6994,4,0),(10132,'08923',6995,6996,4,0),(10133,'08924',6997,6998,4,0),(10134,'08930',6729,6730,4,0),(10135,'08940',6147,6148,4,0),(10136,'08950',6201,6202,4,0),(10137,'08960',6863,6864,4,0),(10138,'08970',6851,6852,4,0),(10139,'08980',6819,6820,4,0),(10140,'09001',7483,7484,4,0),(10141,'09002',7485,7486,4,0),(10142,'09003',7487,7488,4,0),(10143,'09004',8641,8642,4,0),(10144,'09004',7489,7490,4,0),(10145,'09005',7491,7492,4,0),(10146,'09006',7493,7494,4,0),(10147,'09007',7495,7496,4,0),(10148,'09100',8091,8092,4,0),(10149,'09107',7921,7922,4,0),(10150,'09107',7609,7610,4,0),(10151,'09107',7355,7356,4,0),(10152,'09107',8261,8262,4,0),(10153,'09108',8093,8094,4,0),(10154,'09108',7599,7600,4,0),(10155,'09108',8249,8250,4,0),(10156,'09108',8477,8478,4,0),(10157,'09108',9077,9078,4,0),(10158,'09109',8245,8246,4,0),(10159,'09109',8621,8622,4,0),(10160,'09109',7613,7614,4,0),(10161,'09109',9021,9022,4,0),(10162,'09110',7615,7616,4,0),(10163,'09119',7617,7618,4,0),(10164,'09119',8029,8030,4,0),(10165,'09119',8989,8990,4,0),(10166,'09119',8307,8308,4,0),(10167,'09120',8875,8876,4,0),(10168,'09121',8095,8096,4,0),(10169,'09123',8623,8624,4,0),(10170,'09124',7881,7882,4,0),(10171,'09124',8877,8878,4,0),(10172,'09125',8739,8740,4,0),(10173,'09125',8879,8880,4,0),(10174,'09125',7865,7866,4,0),(10175,'09125',8189,8190,4,0),(10176,'09125',7411,7412,4,0),(10177,'09126',7883,7884,4,0),(10178,'09126',7413,7414,4,0),(10179,'09127',7415,7416,4,0),(10180,'09127',8847,8848,4,0),(10181,'09128',8631,8632,4,0),(10182,'09128',7805,7806,4,0),(10183,'09128',8881,8882,4,0),(10184,'09128',7891,7892,4,0),(10185,'09128',8953,8954,4,0),(10186,'09128',9051,9052,4,0),(10187,'09129',8883,8884,4,0),(10188,'09130',8433,8434,4,0),(10189,'09130',8663,8664,4,0),(10190,'09131',7993,7994,4,0),(10191,'09131',8807,8808,4,0),(10192,'09131',8299,8300,4,0),(10193,'09131',7299,7300,4,0),(10194,'09133',8655,8656,4,0),(10195,'09133',7987,7988,4,0),(10196,'09133',8681,8682,4,0),(10197,'09133',8303,8304,4,0),(10198,'09133',7913,7914,4,0),(10199,'09133',8067,8068,4,0),(10200,'09133',8885,8886,4,0),(10201,'09135',8647,8648,4,0),(10202,'09136',8649,8650,4,0),(10203,'09140',8115,8116,4,0),(10204,'09140',8385,8386,4,0),(10205,'09140',8417,8418,4,0),(10206,'09141',7263,7264,4,0),(10207,'09141',8117,8118,4,0),(10208,'09142',8119,8120,4,0),(10209,'09142',8815,8816,4,0),(10210,'09143',8729,8730,4,0),(10211,'09143',8609,8610,4,0),(10212,'09144',8611,8612,4,0),(10213,'09145',8613,8614,4,0),(10214,'09145',8817,8818,4,0),(10215,'09145',8731,8732,4,0),(10216,'09146',8013,8014,4,0),(10217,'09146',8851,8852,4,0),(10218,'09146',8819,8820,4,0),(10219,'09150',8809,8810,4,0),(10220,'09150',7867,7868,4,0),(10221,'09150',7989,7990,4,0),(10222,'09159',8811,8812,4,0),(10223,'09191',8763,8764,4,0),(10224,'09191',7887,7888,4,0),(10225,'09191',9043,9044,4,0),(10226,'09192',8241,8242,4,0),(10227,'09192',7497,7498,4,0),(10228,'09192',7563,7564,4,0),(10229,'09193',7603,7604,4,0),(10230,'09193',7557,7558,4,0),(10231,'09193',7499,7500,4,0),(10232,'09193',7547,7548,4,0),(10233,'09194',7549,7550,4,0),(10234,'09194',7553,7554,4,0),(10235,'09194',8021,8022,4,0),(10236,'09194',8463,8464,4,0),(10237,'09194',7893,7894,4,0),(10238,'09195',7349,7350,4,0),(10239,'09195',8919,8920,4,0),(10240,'09195',9017,9018,4,0),(10241,'09195',8931,8932,4,0),(10242,'09197',8933,8934,4,0),(10243,'09197',7301,7302,4,0),(10244,'09197',8893,8894,4,0),(10245,'09197',8121,8122,4,0),(10246,'09197',8643,8644,4,0),(10247,'09198',7605,7606,4,0),(10248,'09198',8531,8532,4,0),(10249,'09198',7895,7896,4,0),(10250,'09199',7371,7372,4,0),(10251,'09199',8499,8500,4,0),(10252,'09199',7559,7560,4,0),(10253,'09199',7407,7408,4,0),(10254,'09199',8325,8326,4,0),(10255,'09199',7501,7502,4,0),(10256,'09199',9025,9026,4,0),(10257,'09199',7363,7364,4,0),(10258,'09199',8425,8426,4,0),(10259,'09200',8151,8152,4,0),(10260,'09210',8825,8826,4,0),(10261,'09211',8289,8290,4,0),(10262,'09211',8827,8828,4,0),(10263,'09211',8221,8222,4,0),(10264,'09211',7769,7770,4,0),(10265,'09212',8829,8830,4,0),(10266,'09212',8099,8100,4,0),(10267,'09212',8153,8154,4,0),(10268,'09213',7649,7650,4,0),(10269,'09213',8721,8722,4,0),(10270,'09213',8831,8832,4,0),(10271,'09214',7453,7454,4,0),(10272,'09215',7673,7674,4,0),(10273,'09216',7675,7676,4,0),(10274,'09217',7677,7678,4,0),(10275,'09218',8155,8156,4,0),(10276,'09218',7679,7680,4,0),(10277,'09219',8567,8568,4,0),(10278,'09219',7455,7456,4,0),(10279,'09219',7311,7312,4,0),(10280,'09219',8985,8986,4,0),(10281,'09219',8157,8158,4,0),(10282,'09219',7711,7712,4,0),(10283,'09219',7315,7316,4,0),(10284,'09219',8587,8588,4,0),(10285,'09219',8863,8864,4,0),(10286,'09220',8273,8274,4,0),(10287,'09226',7403,7404,4,0),(10288,'09226',8269,8270,4,0),(10289,'09226',7423,7424,4,0),(10290,'09226',8993,8994,4,0),(10291,'09226',7633,7634,4,0),(10292,'09226',9039,9040,4,0),(10293,'09226',8275,8276,4,0),(10294,'09226',9047,9048,4,0),(10295,'09227',7579,7580,4,0),(10296,'09227',8941,8942,4,0),(10297,'09227',7831,7832,4,0),(10298,'09227',8659,8660,4,0),(10299,'09227',7909,7910,4,0),(10300,'09228',8049,8050,4,0),(10301,'09228',9033,9034,4,0),(10302,'09228',8361,8362,4,0),(10303,'09228',8217,8218,4,0),(10304,'09228',7645,7646,4,0),(10305,'09228',8071,8072,4,0),(10306,'09230',8539,8540,4,0),(10307,'09230',7479,7480,4,0),(10308,'09230',7735,7736,4,0),(10309,'09230',7853,7854,4,0),(10310,'09230',7745,7746,4,0),(10311,'09233',7289,7290,4,0),(10312,'09239',7625,7626,4,0),(10313,'09239',7351,7352,4,0),(10314,'09239',7621,7622,4,0),(10315,'09239',7737,7738,4,0),(10316,'09239',7281,7282,4,0),(10317,'09240',7463,7464,4,0),(10318,'09244',7505,7506,4,0),(10319,'09244',7773,7774,4,0),(10320,'09244',8381,8382,4,0),(10321,'09245',9085,9086,4,0),(10322,'09245',8759,8760,4,0),(10323,'09245',7465,7466,4,0),(10324,'09245',7809,7810,4,0),(10325,'09245',7449,7450,4,0),(10326,'09246',8223,8224,4,0),(10327,'09246',8033,8034,4,0),(10328,'09246',8009,8010,4,0),(10329,'09246',8345,8346,4,0),(10330,'09246',8321,8322,4,0),(10331,'09246',7541,7542,4,0),(10332,'09246',8377,8378,4,0),(10333,'09246',8489,8490,4,0),(10334,'09247',7801,7802,4,0),(10335,'09247',8527,8528,4,0),(10336,'09248',8455,8456,4,0),(10337,'09248',7387,7388,4,0),(10338,'09248',7427,7428,4,0),(10339,'09248',7467,7468,4,0),(10340,'09248',8351,8352,4,0),(10341,'09248',7567,7568,4,0),(10342,'09249',8201,8202,4,0),(10343,'09249',8225,8226,4,0),(10344,'09249',8035,8036,4,0),(10345,'09249',7977,7978,4,0),(10346,'09249',8871,8872,4,0),(10347,'09249',7277,7278,4,0),(10348,'09249',7469,7470,4,0),(10349,'09250',7429,7430,4,0),(10350,'09251',7703,7704,4,0),(10351,'09252',8165,8166,4,0),(10352,'09257',8905,8906,4,0),(10353,'09258',8717,8718,4,0),(10354,'09258',7583,7584,4,0),(10355,'09258',7731,7732,4,0),(10356,'09258',7431,7432,4,0),(10357,'09258',8803,8804,4,0),(10358,'09258',8907,8908,4,0),(10359,'09258',7285,7286,4,0),(10360,'09258',8957,8958,4,0),(10361,'09259',7899,7900,4,0),(10362,'09259',7419,7420,4,0),(10363,'09259',7753,7754,4,0),(10364,'09259',7587,7588,4,0),(10365,'09259',8441,8442,4,0),(10366,'09259',9061,9062,4,0),(10367,'09259',8445,8446,4,0),(10368,'09260',8355,8356,4,0),(10369,'09267',7749,7750,4,0),(10370,'09267',7433,7434,4,0),(10371,'09268',8427,8428,4,0),(10372,'09268',8357,8358,4,0),(10373,'09268',8915,8916,4,0),(10374,'09268',8551,8552,4,0),(10375,'09268',8563,8564,4,0),(10376,'09268',8867,8868,4,0),(10377,'09269',8429,8430,4,0),(10378,'09270',8447,8448,4,0),(10379,'09270',7637,7638,4,0),(10380,'09271',8413,8414,4,0),(10381,'09272',7435,7436,4,0),(10382,'09272',7761,7762,4,0),(10383,'09280',7713,7714,4,0),(10384,'09280',8281,8282,4,0),(10385,'09280',7571,7572,4,0),(10386,'09285',8783,8784,4,0),(10387,'09290',8389,8390,4,0),(10388,'09290',7765,7766,4,0),(10389,'09292',7367,7368,4,0),(10390,'09292',8177,8178,4,0),(10391,'09292',8895,8896,4,0),(10392,'09292',8579,8580,4,0),(10393,'09292',7641,7642,4,0),(10394,'09292',8397,8398,4,0),(10395,'09292',8591,8592,4,0),(10396,'09292',7471,7472,4,0),(10397,'09293',7475,7476,4,0),(10398,'09293',8159,8160,4,0),(10399,'09294',7965,7966,4,0),(10400,'09294',7681,7682,4,0),(10401,'09300',8485,8486,4,0),(10402,'09310',9029,9030,4,0),(10403,'09310',8707,8708,4,0),(10404,'09310',8711,8712,4,0),(10405,'09311',8213,8214,4,0),(10406,'09311',7961,7962,4,0),(10407,'09312',7319,7320,4,0),(10408,'09312',8713,8714,4,0),(10409,'09314',8889,8890,4,0),(10410,'09314',8293,8294,4,0),(10411,'09315',7777,7778,4,0),(10412,'09315',7789,7790,4,0),(10413,'09315',7953,7954,4,0),(10414,'09316',7861,7862,4,0),(10415,'09316',7445,7446,4,0),(10416,'09317',8053,8054,4,0),(10417,'09317',8543,8544,4,0),(10418,'09317',8295,8296,4,0),(10419,'09318',7785,7786,4,0),(10420,'09318',8751,8752,4,0),(10421,'09318',8197,8198,4,0),(10422,'09320',8039,8040,4,0),(10423,'09320',7665,7666,4,0),(10424,'09320',8755,8756,4,0),(10425,'09330',8043,8044,4,0),(10426,'09338',8859,8860,4,0),(10427,'09339',9035,9036,4,0),(10428,'09339',8969,8970,4,0),(10429,'09339',9073,9074,4,0),(10430,'09339',8949,8950,4,0),(10431,'09340',7997,7998,4,0),(10432,'09341',8555,8556,4,0),(10433,'09341',8685,8686,4,0),(10434,'09341',7999,8000,4,0),(10435,'09342',8701,8702,4,0),(10436,'09342',8575,8576,4,0),(10437,'09342',8317,8318,4,0),(10438,'09343',8923,8924,4,0),(10439,'09344',8493,8494,4,0),(10440,'09344',8911,8912,4,0),(10441,'09345',8495,8496,4,0),(10442,'09345',7903,7904,4,0),(10443,'09345',8703,8704,4,0),(10444,'09345',7375,7376,4,0),(10445,'09346',8075,8076,4,0),(10446,'09346',7693,7694,4,0),(10447,'09347',8405,8406,4,0),(10448,'09347',7695,7696,4,0),(10449,'09347',8459,8460,4,0),(10450,'09347',8365,8366,4,0),(10451,'09347',8001,8002,4,0),(10452,'09348',8003,8004,4,0),(10453,'09348',8409,8410,4,0),(10454,'09348',8205,8206,4,0),(10455,'09348',7629,7630,4,0),(10456,'09348',8627,8628,4,0),(10457,'09349',7653,7654,4,0),(10458,'09349',8005,8006,4,0),(10459,'09349',7657,7658,4,0),(10460,'09349',7741,7742,4,0),(10461,'09349',8329,8330,4,0),(10462,'09349',8401,8402,4,0),(10463,'09350',8595,8596,4,0),(10464,'09350',7509,7510,4,0),(10465,'09350',8237,8238,4,0),(10466,'09350',7379,7380,4,0),(10467,'09351',8023,8024,4,0),(10468,'09351',7839,7840,4,0),(10469,'09352',7699,7700,4,0),(10470,'09353',8583,8584,4,0),(10471,'09354',8341,8342,4,0),(10472,'09370',7323,7324,4,0),(10473,'09370',8373,8374,4,0),(10474,'09370',7813,7814,4,0),(10475,'09390',8571,8572,4,0),(10476,'09390',8945,8946,4,0),(10477,'09390',8689,8690,4,0),(10478,'09390',8045,8046,4,0),(10479,'09391',7595,7596,4,0),(10480,'09400',7325,7326,4,0),(10481,'09410',8311,8312,4,0),(10482,'09410',7689,7690,4,0),(10483,'09410',7331,7332,4,0),(10484,'09430',7875,7876,4,0),(10485,'09436',7825,7826,4,0),(10486,'09440',8635,8636,4,0),(10487,'09441',8637,8638,4,0),(10488,'09442',8671,8672,4,0),(10489,'09443',8927,8928,4,0),(10490,'09443',7817,7818,4,0),(10491,'09450',7383,7384,4,0),(10492,'09450',7327,7328,4,0),(10493,'09450',7843,7844,4,0),(10494,'09450',8981,8982,4,0),(10495,'09451',7345,7346,4,0),(10496,'09451',7335,7336,4,0),(10497,'09451',7517,7518,4,0),(10498,'09451',7341,7342,4,0),(10499,'09453',8937,8938,4,0),(10500,'09453',8747,8748,4,0),(10501,'09453',8735,8736,4,0),(10502,'09454',7877,7878,4,0),(10503,'09454',8369,8370,4,0),(10504,'09460',8147,8148,4,0),(10505,'09461',7793,7794,4,0),(10506,'09462',7269,7270,4,0),(10507,'09462',7835,7836,4,0),(10508,'09462',8193,8194,4,0),(10509,'09462',7973,7974,4,0),(10510,'09462',8285,8286,4,0),(10511,'09463',7827,7828,4,0),(10512,'09471',7981,7982,4,0),(10513,'09471',7781,7782,4,0),(10514,'09471',8559,8560,4,0),(10515,'09471',7797,7798,4,0),(10516,'09490',7459,7460,4,0),(10517,'09490',8313,8314,4,0),(10518,'09490',9081,9082,4,0),(10519,'09490',8535,8536,4,0),(10520,'09491',8743,8744,4,0),(10521,'09491',7983,7984,4,0),(10522,'09491',7757,7758,4,0),(10523,'09493',7521,7522,4,0),(10524,'09493',8693,8694,4,0),(10525,'09500',8079,8080,4,0),(10526,'09510',8769,8770,4,0),(10527,'09510',7933,7934,4,0),(10528,'09511',7939,7940,4,0),(10529,'09511',7441,7442,4,0),(10530,'09511',8771,8772,4,0),(10531,'09512',8081,8082,4,0),(10532,'09512',8773,8774,4,0),(10533,'09513',8083,8084,4,0),(10534,'09513',8997,8998,4,0),(10535,'09514',8109,8110,4,0),(10536,'09514',8085,8086,4,0),(10537,'09514',7935,7936,4,0),(10538,'09515',8101,8102,4,0),(10539,'09515',8087,8088,4,0),(10540,'09530',8227,8228,4,0),(10541,'09540',8723,8724,4,0),(10542,'09545',8785,8786,4,0),(10543,'09549',8725,8726,4,0),(10544,'09549',8833,8834,4,0),(10545,'09549',8103,8104,4,0),(10546,'09549',8999,9000,4,0),(10547,'09550',9001,9002,4,0),(10548,'09551',8821,8822,4,0),(10549,'09551',8015,8016,4,0),(10550,'09553',9003,9004,4,0),(10551,'09554',9005,9006,4,0),(10552,'09554',8229,8230,4,0),(10553,'09555',9007,9008,4,0),(10554,'09556',9009,9010,4,0),(10555,'09557',8127,8128,4,0),(10556,'09557',9011,9012,4,0),(10557,'09557',8135,8136,4,0),(10558,'09558',9013,9014,4,0),(10559,'09558',8777,8778,4,0),(10560,'09559',8143,8144,4,0),(10561,'09559',8017,8018,4,0),(10562,'09559',8231,8232,4,0),(10563,'09560',7721,7722,4,0),(10564,'09566',7723,7724,4,0),(10565,'09567',7725,7726,4,0),(10566,'09567',8129,8130,4,0),(10567,'09568',8131,8132,4,0),(10568,'09569',7727,7728,4,0),(10569,'09569',8111,8112,4,0),(10570,'09569',8787,8788,4,0),(10571,'09570',7359,7360,4,0),(10572,'09570',7305,7306,4,0),(10573,'09571',7291,7292,4,0),(10574,'09571',8837,8838,4,0),(10575,'09571',7307,7308,4,0),(10576,'09572',8839,8840,4,0),(10577,'09572',8779,8780,4,0),(10578,'09572',7293,7294,4,0),(10579,'09573',8137,8138,4,0),(10580,'09574',8139,8140,4,0),(10581,'09580',8789,8790,4,0),(10582,'09585',8791,8792,4,0),(10583,'09586',8793,8794,4,0),(10584,'09587',8795,8796,4,0),(10585,'09588',8797,8798,4,0),(10586,'09589',8277,8278,4,0),(10587,'09589',8799,8800,4,0),(10588,'09591',8765,8766,4,0),(10589,'09591',8123,8124,4,0),(10590,'09592',7265,7266,4,0),(10591,'09592',8503,8504,4,0),(10592,'09592',8347,8348,4,0),(10593,'09592',7543,7544,4,0),(10594,'09593',7533,7534,4,0),(10595,'09593',7273,7274,4,0),(10596,'09593',8253,8254,4,0),(10597,'09593',8507,8508,4,0),(10598,'09593',8233,8234,4,0),(10599,'09593',8511,8512,4,0),(10600,'09594',8105,8106,4,0),(10601,'09600',8515,8516,4,0),(10602,'09610',7717,7718,4,0),(10603,'09610',7661,7662,4,0),(10604,'09610',8605,8606,4,0),(10605,'09611',7821,7822,4,0),(10606,'09611',7537,7538,4,0),(10607,'09611',8977,8978,4,0),(10608,'09612',8333,8334,4,0),(10609,'09612',7957,7958,4,0),(10610,'09612',7513,7514,4,0),(10611,'09612',8063,8064,4,0),(10612,'09613',8517,8518,4,0),(10613,'09613',8337,8338,4,0),(10614,'09613',9069,9070,4,0),(10615,'09613',7969,7970,4,0),(10616,'09613',7395,7396,4,0),(10617,'09613',7685,7686,4,0),(10618,'09613',8173,8174,4,0),(10619,'09614',8843,8844,4,0),(10620,'09614',7871,7872,4,0),(10621,'09614',7399,7400,4,0),(10622,'09615',8519,8520,4,0),(10623,'09615',8185,8186,4,0),(10624,'09615',8481,8482,4,0),(10625,'09615',7391,7392,4,0),(10626,'09616',8667,8668,4,0),(10627,'09617',8599,8600,4,0),(10628,'09618',8601,8602,4,0),(10629,'09619',7847,7848,4,0),(10630,'09620',8473,8474,4,0),(10631,'09620',8617,8618,4,0),(10632,'09620',8523,8524,4,0),(10633,'09620',8169,8170,4,0),(10634,'09631',7337,7338,4,0),(10635,'09640',7857,7858,4,0),(10636,'09640',9055,9056,4,0),(10637,'09640',7575,7576,4,0),(10638,'09640',7943,7944,4,0),(10639,'09640',8675,8676,4,0),(10640,'09640',8057,8058,4,0),(10641,'09640',7925,7926,4,0),(10642,'09640',8547,8548,4,0),(10643,'09640',8899,8900,4,0),(10644,'09640',7929,7930,4,0),(10645,'09641',7707,7708,4,0),(10646,'09642',8059,8060,4,0),(10647,'09642',8025,8026,4,0),(10648,'09645',8697,8698,4,0),(10649,'09646',9057,9058,4,0),(10650,'09647',8465,8466,4,0),(10651,'09649',8265,8266,4,0),(10652,'09649',8965,8966,4,0),(10653,'09649',8677,8678,4,0),(10654,'09650',8901,8902,4,0),(10655,'09650',7525,7526,4,0),(10656,'09651',7945,7946,4,0),(10657,'09652',8973,8974,4,0),(10658,'09653',7915,7916,4,0),(10659,'09654',7917,7918,4,0),(10660,'09660',7849,7850,4,0),(10661,'09660',8421,8422,4,0),(10662,'09670',8393,8394,4,0),(10663,'09678',7905,7906,4,0),(10664,'09679',8209,8210,4,0),(10665,'09680',8257,8258,4,0),(10666,'09690',9065,9066,4,0),(10667,'09691',8181,8182,4,0),(10668,'09691',7591,7592,4,0),(10669,'09692',7529,7530,4,0),(10670,'09693',8451,8452,4,0),(10671,'10000',9241,9242,4,0),(10672,'10001',9243,9244,4,0),(10673,'10002',9245,9246,4,0),(10674,'10003',9247,9248,4,0),(10675,'10004',9249,9250,4,0),(10676,'10005',9251,9252,4,0),(10677,'10100',9661,9662,4,0),(10678,'10109',9663,9664,4,0),(10679,'10110',9607,9608,4,0),(10680,'10110',9617,9618,4,0),(10681,'10120',9603,9604,4,0),(10682,'10129',9207,9208,4,0),(10683,'10130',10137,10138,4,0),(10684,'10131',10035,10036,4,0),(10685,'10132',9173,9174,4,0),(10686,'10133',9433,9434,4,0),(10687,'10134',9291,9292,4,0),(10688,'10135',9133,9134,4,0),(10689,'10136',9295,9296,4,0),(10690,'10137',9161,9162,4,0),(10691,'10140',9477,9478,4,0),(10692,'10160',9137,9138,4,0),(10693,'10162',9339,9340,4,0),(10694,'10163',9141,9142,4,0),(10695,'10164',9253,9254,4,0),(10696,'10169',10127,10128,4,0),(10697,'10170',10121,10122,4,0),(10698,'10170',9683,9684,4,0),(10699,'10180',10021,10022,4,0),(10700,'10181',9915,9916,4,0),(10701,'10182',10095,10096,4,0),(10702,'10182',9991,9992,4,0),(10703,'10183',9995,9996,4,0),(10704,'10184',9987,9988,4,0),(10705,'10185',9199,9200,4,0),(10706,'10185',9215,9216,4,0),(10707,'10186',9961,9962,4,0),(10708,'10187',9119,9120,4,0),(10709,'10189',9853,9854,4,0),(10710,'10189',9861,9862,4,0),(10711,'10189',9845,9846,4,0),(10712,'10189',10129,10130,4,0),(10713,'10190',9629,9630,4,0),(10714,'10190',9321,9322,4,0),(10715,'10191',9885,9886,4,0),(10716,'10192',9533,9534,4,0),(10717,'10193',9919,9920,4,0),(10718,'10194',9679,9680,4,0),(10719,'10195',9255,9256,4,0),(10720,'10197',9121,9122,4,0),(10721,'10198',9875,9876,4,0),(10722,'10198',9879,9880,4,0),(10723,'10199',9257,9258,4,0),(10724,'10200',9999,10000,4,0),(10725,'10210',9621,9622,4,0),(10726,'10220',10001,10002,4,0),(10727,'10230',9505,9506,4,0),(10728,'10240',9399,9400,4,0),(10729,'10250',9447,9448,4,0),(10730,'10251',9145,9146,4,0),(10731,'10252',9969,9970,4,0),(10732,'10260',9865,9866,4,0),(10733,'10261',9827,9828,4,0),(10734,'10261',9807,9808,4,0),(10735,'10262',9095,9096,4,0),(10736,'10263',10085,10086,4,0),(10737,'10269',9829,9830,4,0),(10738,'10270',9581,9582,4,0),(10739,'10271',9789,9790,4,0),(10740,'10280',9551,9552,4,0),(10741,'10290',10003,10004,4,0),(10742,'10291',9577,9578,4,0),(10743,'10291',10005,10006,4,0),(10744,'10292',10007,10008,4,0),(10745,'10300',9703,9704,4,0),(10746,'10310',9927,9928,4,0),(10747,'10317',9393,9394,4,0),(10748,'10318',9929,9930,4,0),(10749,'10319',9931,9932,4,0),(10750,'10320',9211,9212,4,0),(10751,'10328',9437,9438,4,0),(10752,'10329',9657,9658,4,0),(10753,'10329',9287,9288,4,0),(10754,'10329',10015,10016,4,0),(10755,'10330',10111,10112,4,0),(10756,'10331',9317,9318,4,0),(10757,'10331',10113,10114,4,0),(10758,'10332',10031,10032,4,0),(10759,'10332',10017,10018,4,0),(10760,'10333',9467,9468,4,0),(10761,'10334',9753,9754,4,0),(10762,'10335',9749,9750,4,0),(10763,'10340',9373,9374,4,0),(10764,'10341',9707,9708,4,0),(10765,'10350',9169,9170,4,0),(10766,'10359',9837,9838,4,0),(10767,'10359',9529,9530,4,0),(10768,'10360',9353,9354,4,0),(10769,'10370',9413,9414,4,0),(10770,'10370',9511,9512,4,0),(10771,'10371',9833,9834,4,0),(10772,'10372',9223,9224,4,0),(10773,'10373',9225,9226,4,0),(10774,'10374',9715,9716,4,0),(10775,'10380',9555,9556,4,0),(10776,'10390',9897,9898,4,0),(10777,'10391',9841,9842,4,0),(10778,'10392',9203,9204,4,0),(10779,'10392',9421,9422,4,0),(10780,'10393',10027,10028,4,0),(10781,'10394',9667,9668,4,0),(10782,'10394',9195,9196,4,0),(10783,'10400',9561,9562,4,0),(10784,'10410',9183,9184,4,0),(10785,'10411',9741,9742,4,0),(10786,'10412',9451,9452,4,0),(10787,'10413',9983,9984,4,0),(10788,'10414',9395,9396,4,0),(10789,'10415',10043,10044,4,0),(10790,'10420',9935,9936,4,0),(10791,'10430',9409,9410,4,0),(10792,'10440',9149,9150,4,0),(10793,'10450',9565,9566,4,0),(10794,'10459',9501,9502,4,0),(10795,'10460',9609,9610,4,0),(10796,'10470',10101,10102,4,0),(10797,'10480',9613,9614,4,0),(10798,'10484',10067,10068,4,0),(10799,'10490',10059,10060,4,0),(10800,'10490',10103,10104,4,0),(10801,'10491',9923,9924,4,0),(10802,'10492',10073,10074,4,0),(10803,'10493',9823,9824,4,0),(10804,'10500',10045,10046,4,0),(10805,'10509',10047,10048,4,0),(10806,'10510',9881,9882,4,0),(10807,'10511',9307,9308,4,0),(10808,'10512',9517,9518,4,0),(10809,'10513',9381,9382,4,0),(10810,'10514',10049,10050,4,0),(10811,'10515',10051,10052,4,0),(10812,'10516',10053,10054,4,0),(10813,'10519',10055,10056,4,0),(10814,'10520',9943,9944,4,0),(10815,'10520',9365,9366,4,0),(10816,'10528',9911,9912,4,0),(10817,'10529',9625,9626,4,0),(10818,'10530',9905,9906,4,0),(10819,'10540',9671,9672,4,0),(10820,'10550',9165,9166,4,0),(10821,'10560',9521,9522,4,0),(10822,'10570',9849,9850,4,0),(10823,'10580',9653,9654,4,0),(10824,'10590',9635,9636,4,0),(10825,'10591',9945,9946,4,0),(10826,'10591',9637,9638,4,0),(10827,'10591',9507,9508,4,0),(10828,'10592',9349,9350,4,0),(10829,'10593',9323,9324,4,0),(10830,'10600',9781,9782,4,0),(10831,'10610',9233,9234,4,0),(10832,'10611',9953,9954,4,0),(10833,'10612',9573,9574,4,0),(10834,'10613',9699,9700,4,0),(10835,'10614',10011,10012,4,0),(10836,'10615',9777,9778,4,0),(10837,'10616',9493,9494,4,0),(10838,'10616',9357,9358,4,0),(10839,'10616',9237,9238,4,0),(10840,'10617',36167,36168,4,0),(10841,'10617',9425,9426,4,0),(10842,'10620',9275,9276,4,0),(10843,'10623',9277,9278,4,0),(10844,'10623',9719,9720,4,0),(10845,'10624',9279,9280,4,0),(10846,'10624',9597,9598,4,0),(10847,'10625',9599,9600,4,0),(10848,'10626',9721,9722,4,0),(10849,'10627',9723,9724,4,0),(10850,'10628',9725,9726,4,0),(10851,'10628',9335,9336,4,0),(10852,'10629',9281,9282,4,0),(10853,'10629',9727,9728,4,0),(10854,'10630',9283,9284,4,0),(10855,'10630',9327,9328,4,0),(10856,'10630',9769,9770,4,0),(10857,'10638',9771,9772,4,0),(10858,'10639',9773,9774,4,0),(10859,'10640',9329,9330,4,0),(10860,'10649',9593,9594,4,0),(10861,'10649',9331,9332,4,0),(10862,'10650',9111,9112,4,0),(10863,'10660',9737,9738,4,0),(10864,'10660',9869,9870,4,0),(10865,'10660',9731,9732,4,0),(10866,'10661',9871,9872,4,0),(10867,'10662',9645,9646,4,0),(10868,'10663',9385,9386,4,0),(10869,'10663',9557,9558,4,0),(10870,'10664',9675,9676,4,0),(10871,'10665',9495,9496,4,0),(10872,'10666',9107,9108,4,0),(10873,'10666',9893,9894,4,0),(10874,'10667',9733,9734,4,0),(10875,'10670',9311,9312,4,0),(10876,'10671',9783,9784,4,0),(10877,'10671',9157,9158,4,0),(10878,'10671',9313,9314,4,0),(10879,'10672',10039,10040,4,0),(10880,'10680',9639,9640,4,0),(10881,'10690',9441,9442,4,0),(10882,'10690',9785,9786,4,0),(10883,'10690',9115,9116,4,0),(10884,'10691',9443,9444,4,0),(10885,'10692',9485,9486,4,0),(10886,'10693',9813,9814,4,0),(10887,'10694',9947,9948,4,0),(10888,'10694',9973,9974,4,0),(10889,'10695',9907,9908,4,0),(10890,'10696',9459,9460,4,0),(10891,'10696',9191,9192,4,0),(10892,'10697',9949,9950,4,0),(10893,'10697',9937,9938,4,0),(10894,'10697',9641,9642,4,0),(10895,'10700',9525,9526,4,0),(10896,'10701',35099,35100,4,0),(10897,'10710',10123,10124,4,0),(10898,'10711',9589,9590,4,0),(10899,'10712',9497,9498,4,0),(10900,'10720',10107,10108,4,0),(10901,'10728',9569,9570,4,0),(10902,'10729',9229,9230,4,0),(10903,'10730',9361,9362,4,0),(10904,'10739',9901,9902,4,0),(10905,'10740',9153,9154,4,0),(10906,'10748',9091,9092,4,0),(10907,'10749',9455,9456,4,0),(10908,'10750',9187,9188,4,0),(10909,'10759',9585,9586,4,0),(10910,'10800',9403,9404,4,0),(10911,'10810',10023,10024,4,0),(10912,'10810',9687,9688,4,0),(10913,'10811',9695,9696,4,0),(10914,'10811',9487,9488,4,0),(10915,'10811',9405,9406,4,0),(10916,'10812',10097,10098,4,0),(10917,'10813',9801,9802,4,0),(10918,'10814',10077,10078,4,0),(10919,'10815',9481,9482,4,0),(10920,'10816',9343,9344,4,0),(10921,'10816',9489,9490,4,0),(10922,'10817',9271,9272,4,0),(10923,'10818',9369,9370,4,0),(10924,'10818',9345,9346,4,0),(10925,'10820',9299,9300,4,0),(10926,'10824',9537,9538,4,0),(10927,'10828',9797,9798,4,0),(10928,'10829',9539,9540,4,0),(10929,'10829',9301,9302,4,0),(10930,'10829',9745,9746,4,0),(10931,'10829',9815,9816,4,0),(10932,'10830',9977,9978,4,0),(10933,'10839',9979,9980,4,0),(10934,'10840',9691,9692,4,0),(10935,'10848',10069,10070,4,0),(10936,'10849',9547,9548,4,0),(10937,'10849',9471,9472,4,0),(10938,'10850',9543,9544,4,0),(10939,'10857',9099,9100,4,0),(10940,'10858',10117,10118,4,0),(10941,'10859',9889,9890,4,0),(10942,'10860',9473,9474,4,0),(10943,'10864',9957,9958,4,0),(10944,'10865',9267,9268,4,0),(10945,'10866',9417,9418,4,0),(10946,'10867',9819,9820,4,0),(10947,'10868',9513,9514,4,0),(10948,'10869',9965,9966,4,0),(10949,'10870',9377,9378,4,0),(10950,'10879',9103,9104,4,0),(10951,'10880',10133,10134,4,0),(10952,'10881',9263,9264,4,0),(10953,'10882',9761,9762,4,0),(10954,'10883',9793,9794,4,0),(10955,'10890',10063,10064,4,0),(10956,'10891',9429,9430,4,0),(10957,'10892',9857,9858,4,0),(10958,'10893',10089,10090,4,0),(10959,'10894',10091,10092,4,0),(10960,'10895',9389,9390,4,0),(10961,'10896',9757,9758,4,0),(10962,'10897',9303,9304,4,0),(10963,'10900',9177,9178,4,0),(10964,'10910',9631,9632,4,0),(10965,'10920',9259,9260,4,0),(10966,'10930',9711,9712,4,0),(10967,'10940',9463,9464,4,0),(10968,'10950',9219,9220,4,0),(10969,'10960',10081,10082,4,0),(10970,'10970',9649,9650,4,0),(10971,'10980',9125,9126,4,0),(10972,'10989',9127,9128,4,0),(10973,'10990',9129,9130,4,0),(10974,'10991',9765,9766,4,0),(10975,'11001',10213,10214,4,0),(10976,'11002',10215,10216,4,0),(10977,'11003',10217,10218,4,0),(10978,'11004',10219,10220,4,0),(10979,'11005',10221,10222,4,0),(10980,'11006',10223,10224,4,0),(10981,'11007',10225,10226,4,0),(10982,'11008',10227,10228,4,0),(10983,'11009',10229,10230,4,0),(10984,'11010',10231,10232,4,0),(10985,'11011',10233,10234,4,0),(10986,'11012',10235,10236,4,0),(10987,'11100',10375,10376,4,0),(10988,'11130',10243,10244,4,0),(10989,'11139',10245,10246,4,0),(10990,'11140',10253,10254,4,0),(10991,'11149',10255,10256,4,0),(10992,'11150',10441,10442,4,0),(10993,'11150',10189,10190,4,0),(10994,'11158',10443,10444,4,0),(10995,'11159',10191,10192,4,0),(10996,'11159',10445,10446,4,0),(10997,'11160',10193,10194,4,0),(10998,'11170',10339,10340,4,0),(10999,'11178',10349,10350,4,0),(11000,'11179',10447,10448,4,0),(11001,'11179',10341,10342,4,0),(11002,'11180',10143,10144,4,0),(11003,'11190',10199,10200,4,0),(11004,'11201',10155,10156,4,0),(11005,'11202',10157,10158,4,0),(11006,'11203',10159,10160,4,0),(11007,'11204',10161,10162,4,0),(11008,'11205',10163,10164,4,0),(11009,'11206',10165,10166,4,0),(11010,'11207',10167,10168,4,0),(11011,'11300',10329,10330,4,0),(11012,'11300',10365,10366,4,0),(11013,'11310',10385,10386,4,0),(11014,'11311',10387,10388,4,0),(11015,'11311',10403,10404,4,0),(11016,'11312',10389,10390,4,0),(11017,'11313',10391,10392,4,0),(11018,'11314',10393,10394,4,0),(11019,'11320',10319,10320,4,0),(11020,'11330',10321,10322,4,0),(11021,'11339',10323,10324,4,0),(11022,'11340',10325,10326,4,0),(11023,'11350',10239,10240,4,0),(11024,'11360',10395,10396,4,0),(11025,'11368',10397,10398,4,0),(11026,'11369',10399,10400,4,0),(11027,'11369',10405,10406,4,0),(11028,'11370',10333,10334,4,0),(11029,'11379',10335,10336,4,0),(11030,'11380',10417,10418,4,0),(11031,'11390',10419,10420,4,0),(11032,'11390',10169,10170,4,0),(11033,'11391',10421,10422,4,0),(11034,'11391',10171,10172,4,0),(11035,'11392',10423,10424,4,0),(11036,'11393',10425,10426,4,0),(11037,'11393',10195,10196,4,0),(11038,'11400',10281,10282,4,0),(11039,'11401',10283,10284,4,0),(11040,'11402',10285,10286,4,0),(11041,'11403',10287,10288,4,0),(11042,'11404',10289,10290,4,0),(11043,'11405',10291,10292,4,0),(11044,'11406',10293,10294,4,0),(11045,'11407',10295,10296,4,0),(11046,'11408',10297,10298,4,0),(11047,'11500',10267,10268,4,0),(11048,'11510',10357,10358,4,0),(11049,'11518',10359,10360,4,0),(11050,'11519',10361,10362,4,0),(11051,'11520',10371,10372,4,0),(11052,'11540',10407,10408,4,0),(11053,'11549',10409,10410,4,0),(11054,'11550',10249,10250,4,0),(11055,'11560',10433,10434,4,0),(11056,'11570',10299,10300,4,0),(11057,'11579',10301,10302,4,0),(11058,'11580',10379,10380,4,0),(11059,'11589',10381,10382,4,0),(11060,'11590',10303,10304,4,0),(11061,'11591',10305,10306,4,0),(11062,'11592',10307,10308,4,0),(11063,'11593',10309,10310,4,0),(11064,'11594',10311,10312,4,0),(11065,'11595',10313,10314,4,0),(11066,'11596',10315,10316,4,0),(11067,'11600',10437,10438,4,0),(11068,'11610',10275,10276,4,0),(11069,'11611',10451,10452,4,0),(11070,'11612',10203,10204,4,0),(11071,'11620',10181,10182,4,0),(11072,'11630',10183,10184,4,0),(11073,'11638',10185,10186,4,0),(11074,'11639',10151,10152,4,0),(11075,'11640',10207,10208,4,0),(11076,'11648',10271,10272,4,0),(11077,'11649',10209,10210,4,0),(11078,'11650',10455,10456,4,0),(11079,'11659',10367,10368,4,0),(11080,'11660',10353,10354,4,0),(11081,'11670',10259,10260,4,0),(11082,'11679',10277,10278,4,0),(11083,'11680',10175,10176,4,0),(11084,'11687',10263,10264,4,0),(11085,'11688',10459,10460,4,0),(11086,'11689',10177,10178,4,0),(11087,'11690',10345,10346,4,0),(11088,'11691',10429,10430,4,0),(11089,'11692',10413,10414,4,0),(11090,'11693',10147,10148,4,0),(11091,'12001',11395,11396,4,0),(11092,'12002',11397,11398,4,0),(11093,'12003',11399,11400,4,0),(11094,'12004',11401,11402,4,0),(11095,'12005',11403,11404,4,0),(11096,'12006',11405,11406,4,0),(11097,'12100',11407,11408,4,0),(11098,'12110',11521,11522,4,0),(11099,'12118',11765,11766,4,0),(11100,'12119',11459,11460,4,0),(11101,'12119',11523,11524,4,0),(11102,'12120',11581,11582,4,0),(11103,'12121',11525,11526,4,0),(11104,'12122',11483,11484,4,0),(11105,'12122',11767,11768,4,0),(11106,'12123',11413,11414,4,0),(11107,'12123',11585,11586,4,0),(11108,'12124',11811,11812,4,0),(11109,'12125',11851,11852,4,0),(11110,'12126',11453,11454,4,0),(11111,'12127',11455,11456,4,0),(11112,'12130',11679,11680,4,0),(11113,'12131',11769,11770,4,0),(11114,'12132',11309,11310,4,0),(11115,'12133',11311,11312,4,0),(11116,'12134',11335,11336,4,0),(11117,'12134',11435,11436,4,0),(11118,'12135',11503,11504,4,0),(11119,'12135',11831,11832,4,0),(11120,'12140',11255,11256,4,0),(11121,'12150',11807,11808,4,0),(11122,'12159',11387,11388,4,0),(11123,'12160',11339,11340,4,0),(11124,'12161',11557,11558,4,0),(11125,'12162',11803,11804,4,0),(11126,'12163',11463,11464,4,0),(11127,'12164',11703,11704,4,0),(11128,'12165',11297,11298,4,0),(11129,'12166',11705,11706,4,0),(11130,'12170',11687,11688,4,0),(11131,'12179',11733,11734,4,0),(11132,'12180',11369,11370,4,0),(11133,'12181',11353,11354,4,0),(11134,'12182',11707,11708,4,0),(11135,'12183',11799,11800,4,0),(11136,'12184',11561,11562,4,0),(11137,'12184',11553,11554,4,0),(11138,'12185',11577,11578,4,0),(11139,'12186',11549,11550,4,0),(11140,'12190',11365,11366,4,0),(11141,'12191',11545,11546,4,0),(11142,'12192',11795,11796,4,0),(11143,'12193',11773,11774,4,0),(11144,'12193',11709,11710,4,0),(11145,'12194',11775,11776,4,0),(11146,'12200',11623,11624,4,0),(11147,'12210',11657,11658,4,0),(11148,'12220',11625,11626,4,0),(11149,'12221',11725,11726,4,0),(11150,'12222',11265,11266,4,0),(11151,'12222',11251,11252,4,0),(11152,'12223',11721,11722,4,0),(11153,'12224',11815,11816,4,0),(11154,'12224',11315,11316,4,0),(11155,'12225',11495,11496,4,0),(11156,'12225',11749,11750,4,0),(11157,'12230',11783,11784,4,0),(11158,'12230',11741,11742,4,0),(11159,'12230',11475,11476,4,0),(11160,'12230',11479,11480,4,0),(11161,'12230',11301,11302,4,0),(11162,'12231',11447,11448,4,0),(11163,'12232',11293,11294,4,0),(11164,'12232',11449,11450,4,0),(11165,'12232',11757,11758,4,0),(11166,'12300',11605,11606,4,0),(11167,'12310',11487,11488,4,0),(11168,'12311',11847,11848,4,0),(11169,'12311',11823,11824,4,0),(11170,'12311',11633,11634,4,0),(11171,'12312',11619,11620,4,0),(11172,'12312',11537,11538,4,0),(11173,'12312',11737,11738,4,0),(11174,'12315',11787,11788,4,0),(11175,'12317',11509,11510,4,0),(11176,'12318',11649,11650,4,0),(11177,'12318',11443,11444,4,0),(11178,'12319',11383,11384,4,0),(11179,'12320',11683,11684,4,0),(11180,'12330',11673,11674,4,0),(11181,'12330',11761,11762,4,0),(11182,'12340',11529,11530,4,0),(11183,'12350',11379,11380,4,0),(11184,'12360',11841,11842,4,0),(11185,'12370',11843,11844,4,0),(11186,'12400',11695,11696,4,0),(11187,'12410',11289,11290,4,0),(11188,'12412',11697,11698,4,0),(11189,'12412',11505,11506,4,0),(11190,'12413',11281,11282,4,0),(11191,'12413',11391,11392,4,0),(11192,'12414',11699,11700,4,0),(11193,'12414',11273,11274,4,0),(11194,'12414',11779,11780,4,0),(11195,'12415',11499,11500,4,0),(11196,'12415',11589,11590,4,0),(11197,'12420',11323,11324,4,0),(11198,'12428',11653,11654,4,0),(11199,'12428',11819,11820,4,0),(11200,'12428',11491,11492,4,0),(11201,'12429',11645,11646,4,0),(11202,'12429',11467,11468,4,0),(11203,'12430',11327,11328,4,0),(11204,'12431',11745,11746,4,0),(11205,'12440',11421,11422,4,0),(11206,'12447',11597,11598,4,0),(11207,'12448',11601,11602,4,0),(11208,'12449',11331,11332,4,0),(11209,'12449',11513,11514,4,0),(11210,'12449',11637,11638,4,0),(11211,'12450',11517,11518,4,0),(11212,'12460',11835,11836,4,0),(11213,'12469',11729,11730,4,0),(11214,'12469',11669,11670,4,0),(11215,'12469',11837,11838,4,0),(11216,'12470',11609,11610,4,0),(11217,'12480',11713,11714,4,0),(11218,'12489',11717,11718,4,0),(11219,'12490',11319,11320,4,0),(11220,'12499',11439,11440,4,0),(11221,'12500',11827,11828,4,0),(11222,'12510',11675,11676,4,0),(11223,'12511',11661,11662,4,0),(11224,'12512',11663,11664,4,0),(11225,'12513',11417,11418,4,0),(11226,'12520',11613,11614,4,0),(11227,'12526',11569,11570,4,0),(11228,'12527',11305,11306,4,0),(11229,'12528',11471,11472,4,0),(11230,'12529',11615,11616,4,0),(11231,'12530',11343,11344,4,0),(11232,'12530',11361,11362,4,0),(11233,'12539',11573,11574,4,0),(11234,'12540',11791,11792,4,0),(11235,'12549',11357,11358,4,0),(11236,'12550',11277,11278,4,0),(11237,'12560',11409,11410,4,0),(11238,'12560',11349,11350,4,0),(11239,'12570',11259,11260,4,0),(11240,'12578',11425,11426,4,0),(11241,'12579',11261,11262,4,0),(11242,'12580',11345,11346,4,0),(11243,'12589',11375,11376,4,0),(11244,'12590',11285,11286,4,0),(11245,'12591',11533,11534,4,0),(11246,'12592',11429,11430,4,0),(11247,'12593',11593,11594,4,0),(11248,'12594',11629,11630,4,0),(11249,'12595',11371,11372,4,0),(11250,'12596',11753,11754,4,0),(11251,'12597',11691,11692,4,0),(11252,'12598',11641,11642,4,0),(11253,'12599',11665,11666,4,0),(11254,'12599',11541,11542,4,0),(11255,'12600',11565,11566,4,0),(11256,'12609',11269,11270,4,0),(11257,'12952',11431,11432,4,0),(11258,'13001',12045,12046,4,0),(11259,'13002',12047,12048,4,0),(11260,'13003',12049,12050,4,0),(11261,'13004',12051,12052,4,0),(11262,'13005',12053,12054,4,0),(11263,'13097',12055,12056,4,0),(11264,'13100',12203,12204,4,0),(11265,'13107',11891,11892,4,0),(11266,'13108',12145,12146,4,0),(11267,'13109',12227,12228,4,0),(11268,'13110',12121,12122,4,0),(11269,'13114',12077,12078,4,0),(11270,'13115',11885,11886,4,0),(11271,'13116',11887,11888,4,0),(11272,'13117',11961,11962,4,0),(11273,'13118',12213,12214,4,0),(11274,'13118',11963,11964,4,0),(11275,'13120',12215,12216,4,0),(11276,'13129',12217,12218,4,0),(11277,'13130',12089,12090,4,0),(11278,'13140',12081,12082,4,0),(11279,'13150',12029,12030,4,0),(11280,'13160',12291,12292,4,0),(11281,'13170',12173,12174,4,0),(11282,'13179',12223,12224,4,0),(11283,'13180',11857,11858,4,0),(11284,'13189',11929,11930,4,0),(11285,'13190',12065,12066,4,0),(11286,'13190',12175,12176,4,0),(11287,'13191',12025,12026,4,0),(11288,'13191',12141,12142,4,0),(11289,'13192',11931,11932,4,0),(11290,'13192',12001,12002,4,0),(11291,'13193',12085,12086,4,0),(11292,'13193',11983,11984,4,0),(11293,'13193',12187,12188,4,0),(11294,'13194',12149,12150,4,0),(11295,'13194',12191,12192,4,0),(11296,'13194',12219,12220,4,0),(11297,'13194',12245,12246,4,0),(11298,'13195',12057,12058,4,0),(11299,'13195',12209,12210,4,0),(11300,'13196',12199,12200,4,0),(11301,'13196',12205,12206,4,0),(11302,'13196',12059,12060,4,0),(11303,'13197',12061,12062,4,0),(11304,'13200',12159,12160,4,0),(11305,'13210',12351,12352,4,0),(11306,'13220',12133,12134,4,0),(11307,'13230',12163,12164,4,0),(11308,'13240',12125,12126,4,0),(11309,'13247',12257,12258,4,0),(11310,'13248',11903,11904,4,0),(11311,'13249',12249,12250,4,0),(11312,'13250',12073,12074,4,0),(11313,'13260',11991,11992,4,0),(11314,'13260',11919,11920,4,0),(11315,'13270',11921,11922,4,0),(11316,'13279',12313,12314,4,0),(11317,'13300',12307,12308,4,0),(11318,'13300',11875,11876,4,0),(11319,'13310',12309,12310,4,0),(11320,'13320',12335,12336,4,0),(11321,'13326',12179,12180,4,0),(11322,'13327',12265,12266,4,0),(11323,'13328',11925,11926,4,0),(11324,'13329',12033,12034,4,0),(11325,'13330',12331,12332,4,0),(11326,'13331',12317,12318,4,0),(11327,'13332',12319,12320,4,0),(11328,'13333',12093,12094,4,0),(11329,'13340',11871,11872,4,0),(11330,'13341',12281,12282,4,0),(11331,'13342',12231,12232,4,0),(11332,'13343',12323,12324,4,0),(11333,'13344',12295,12296,4,0),(11334,'13345',12069,12070,4,0),(11335,'13350',12183,12184,4,0),(11336,'13360',12103,12104,4,0),(11337,'13370',12009,12010,4,0),(11338,'13379',12339,12340,4,0),(11339,'13380',11899,11900,4,0),(11340,'13390',11905,11906,4,0),(11341,'13391',11895,11896,4,0),(11342,'13400',11909,11910,4,0),(11343,'13410',11863,11864,4,0),(11344,'13411',12303,12304,4,0),(11345,'13412',12041,12042,4,0),(11346,'13413',11867,11868,4,0),(11347,'13414',11913,11914,4,0),(11348,'13414',12253,12254,4,0),(11349,'13415',11933,11934,4,0),(11350,'13420',12151,12152,4,0),(11351,'13427',12137,12138,4,0),(11352,'13428',12153,12154,4,0),(11353,'13428',12097,12098,4,0),(11354,'13429',12155,12156,4,0),(11355,'13430',12021,12022,4,0),(11356,'13431',12343,12344,4,0),(11357,'13432',11987,11988,4,0),(11358,'13440',11979,11980,4,0),(11359,'13449',11995,11996,4,0),(11360,'13450',11997,11998,4,0),(11361,'13459',11935,11936,4,0),(11362,'13460',11937,11938,4,0),(11363,'13470',11939,11940,4,0),(11364,'13473',11941,11942,4,0),(11365,'13473',11859,11860,4,0),(11366,'13480',11915,11916,4,0),(11367,'13490',12107,12108,4,0),(11368,'13499',12109,12110,4,0),(11369,'13500',12239,12240,4,0),(11370,'13580',11943,11944,4,0),(11371,'13590',12117,12118,4,0),(11372,'13591',12005,12006,4,0),(11373,'13592',12167,12168,4,0),(11374,'13593',12277,12278,4,0),(11375,'13594',12169,12170,4,0),(11376,'13595',12327,12328,4,0),(11377,'13596',11945,11946,4,0),(11378,'13597',12241,12242,4,0),(11379,'13598',11947,11948,4,0),(11380,'13600',11877,11878,4,0),(11381,'13610',12017,12018,4,0),(11382,'13619',11967,11968,4,0),(11383,'13620',12195,12196,4,0),(11384,'13629',12285,12286,4,0),(11385,'13630',12273,12274,4,0),(11386,'13640',12113,12114,4,0),(11387,'13640',11949,11950,4,0),(11388,'13650',12235,12236,4,0),(11389,'13660',12129,12130,4,0),(11390,'13670',12347,12348,4,0),(11391,'13679',11971,11972,4,0),(11392,'13680',12099,12100,4,0),(11393,'13690',11879,11880,4,0),(11394,'13700',12287,12288,4,0),(11395,'13710',11975,11976,4,0),(11396,'13720',11881,11882,4,0),(11397,'13730',12269,12270,4,0),(11398,'13738',12355,12356,4,0),(11399,'13739',12011,12012,4,0),(11400,'13739',12357,12358,4,0),(11401,'13740',12299,12300,4,0),(11402,'13750',12037,12038,4,0),(11403,'13760',11955,11956,4,0),(11404,'13768',11957,11958,4,0),(11405,'13768',12359,12360,4,0),(11406,'13770',12361,12362,4,0),(11407,'13779',12261,12262,4,0),(11408,'13779',12013,12014,4,0),(11409,'14001',12485,12486,4,0),(11410,'14002',12487,12488,4,0),(11411,'14003',12489,12490,4,0),(11412,'14004',12491,12492,4,0),(11413,'14005',12493,12494,4,0),(11414,'14006',12495,12496,4,0),(11415,'14007',12497,12498,4,0),(11416,'14008',12499,12500,4,0),(11417,'14009',12501,12502,4,0),(11418,'14010',12503,12504,4,0),(11419,'14011',12505,12506,4,0),(11420,'14012',12507,12508,4,0),(11421,'14013',12509,12510,4,0),(11422,'14014',12511,12512,4,0),(11423,'14015',12513,12514,4,0),(11424,'14016',12515,12516,4,0),(11425,'14029',12517,12518,4,0),(11426,'14045',12461,12462,4,0),(11427,'14071',12843,12844,4,0),(11428,'14100',12657,12658,4,0),(11429,'14110',12607,12608,4,0),(11430,'14111',12659,12660,4,0),(11431,'14112',12609,12610,4,0),(11432,'14113',12611,12612,4,0),(11433,'14115',12553,12554,4,0),(11434,'14115',12613,12614,4,0),(11435,'14120',12615,12616,4,0),(11436,'14129',12635,12636,4,0),(11437,'14129',12617,12618,4,0),(11438,'14130',12627,12628,4,0),(11439,'14140',12675,12676,4,0),(11440,'14150',12807,12808,4,0),(11441,'14190',12519,12520,4,0),(11442,'14191',12661,12662,4,0),(11443,'14192',12521,12522,4,0),(11444,'14193',12663,12664,4,0),(11445,'14193',12523,12524,4,0),(11446,'14199',12683,12684,4,0),(11447,'14200',12767,12768,4,0),(11448,'14206',12833,12834,4,0),(11449,'14207',12667,12668,4,0),(11450,'14208',12679,12680,4,0),(11451,'14209',12591,12592,4,0),(11452,'14209',12637,12638,4,0),(11453,'14209',12413,12414,4,0),(11454,'14210',12619,12620,4,0),(11455,'14210',12575,12576,4,0),(11456,'14210',12849,12850,4,0),(11457,'14220',12577,12578,4,0),(11458,'14230',12861,12862,4,0),(11459,'14240',12415,12416,4,0),(11460,'14248',12417,12418,4,0),(11461,'14248',12593,12594,4,0),(11462,'14249',12419,12420,4,0),(11463,'14249',12595,12596,4,0),(11464,'14250',12857,12858,4,0),(11465,'14260',12587,12588,4,0),(11466,'14270',12631,12632,4,0),(11467,'14280',12525,12526,4,0),(11468,'14280',12409,12410,4,0),(11469,'14290',12597,12598,4,0),(11470,'14297',12599,12600,4,0),(11471,'14298',12601,12602,4,0),(11472,'14299',12603,12604,4,0),(11473,'14300',12869,12870,4,0),(11474,'14310',12737,12738,4,0),(11475,'14320',12871,12872,4,0),(11476,'14320',12739,12740,4,0),(11477,'14320',12579,12580,4,0),(11478,'14340',12527,12528,4,0),(11479,'14350',12529,12530,4,0),(11480,'14350',12741,12742,4,0),(11481,'14400',12777,12778,4,0),(11482,'14410',12825,12826,4,0),(11483,'14412',12763,12764,4,0),(11484,'14413',12559,12560,4,0),(11485,'14420',12845,12846,4,0),(11486,'14430',12367,12368,4,0),(11487,'14439',12369,12370,4,0),(11488,'14440',12853,12854,4,0),(11489,'14440',12463,12464,4,0),(11490,'14445',12465,12466,4,0),(11491,'14445',12421,12422,4,0),(11492,'14446',12467,12468,4,0),(11493,'14447',12469,12470,4,0),(11494,'14448',12481,12482,4,0),(11495,'14449',11951,11952,4,0),(11496,'14450',12395,12396,4,0),(11497,'14460',12549,12550,4,0),(11498,'14470',12873,12874,4,0),(11499,'14470',12563,12564,4,0),(11500,'14480',12379,12380,4,0),(11501,'14490',12865,12866,4,0),(11502,'14491',12811,12812,4,0),(11503,'14500',12795,12796,4,0),(11504,'14510',12727,12728,4,0),(11505,'14511',12685,12686,4,0),(11506,'14512',12797,12798,4,0),(11507,'14520',12709,12710,4,0),(11508,'14520',12583,12584,4,0),(11509,'14530',12711,12712,4,0),(11510,'14540',12671,12672,4,0),(11511,'14546',12817,12818,4,0),(11512,'14547',12819,12820,4,0),(11513,'14548',12705,12706,4,0),(11514,'14549',12821,12822,4,0),(11515,'14550',12397,12398,4,0),(11516,'14550',12715,12716,4,0),(11517,'14600',12719,12720,4,0),(11518,'14610',12531,12532,4,0),(11519,'14610',12371,12372,4,0),(11520,'14620',12555,12556,4,0),(11521,'14630',12759,12760,4,0),(11522,'14640',12837,12838,4,0),(11523,'14650',12431,12432,4,0),(11524,'14656',12433,12434,4,0),(11525,'14659',12435,12436,4,0),(11526,'14660',12449,12450,4,0),(11527,'14670',12829,12830,4,0),(11528,'14700',12749,12750,4,0),(11529,'14709',12751,12752,4,0),(11530,'14709',12639,12640,4,0),(11531,'14710',12533,12534,4,0),(11532,'14711',12535,12536,4,0),(11533,'14719',12537,12538,4,0),(11534,'14720',12389,12390,4,0),(11535,'14729',12391,12392,4,0),(11536,'14730',12771,12772,4,0),(11537,'14730',12753,12754,4,0),(11538,'14739',12773,12774,4,0),(11539,'14740',12641,12642,4,0),(11540,'14749',12755,12756,4,0),(11541,'14800',12697,12698,4,0),(11542,'14800',12781,12782,4,0),(11543,'14810',12453,12454,4,0),(11544,'14811',12455,12456,4,0),(11545,'14811',12439,12440,4,0),(11546,'14811',12783,12784,4,0),(11547,'14812',12383,12384,4,0),(11548,'14813',12385,12386,4,0),(11549,'14814',12785,12786,4,0),(11550,'14815',12623,12624,4,0),(11551,'14815',12787,12788,4,0),(11552,'14816',12789,12790,4,0),(11553,'14816',12457,12458,4,0),(11554,'14817',12791,12792,4,0),(11555,'14820',12539,12540,4,0),(11556,'14830',12571,12572,4,0),(11557,'14840',12473,12474,4,0),(11558,'14850',12401,12402,4,0),(11559,'14850',12687,12688,4,0),(11560,'14852',12731,12732,4,0),(11561,'14857',12733,12734,4,0),(11562,'14857',12475,12476,4,0),(11563,'14858',12477,12478,4,0),(11564,'14859',12403,12404,4,0),(11565,'14860',12545,12546,4,0),(11566,'14870',12877,12878,4,0),(11567,'14880',12699,12700,4,0),(11568,'14889',12701,12702,4,0),(11569,'14900',12689,12690,4,0),(11570,'14910',12425,12426,4,0),(11571,'14911',12691,12692,4,0),(11572,'14912',12541,12542,4,0),(11573,'14913',12567,12568,4,0),(11574,'14913',12693,12694,4,0),(11575,'14914',12745,12746,4,0),(11576,'14915',12427,12428,4,0),(11577,'14920',12375,12376,4,0),(11578,'14930',12723,12724,4,0),(11579,'14930',12441,12442,4,0),(11580,'14940',12443,12444,4,0),(11581,'14940',12839,12840,4,0),(11582,'14941',12813,12814,4,0),(11583,'14949',12445,12446,4,0),(11584,'14950',12405,12406,4,0),(11585,'14950',12643,12644,4,0),(11586,'14950',12801,12802,4,0),(11587,'14960',12803,12804,4,0),(11588,'14970',12647,12648,4,0),(11589,'14978',12649,12650,4,0),(11590,'14979',12651,12652,4,0),(11591,'15001',20001,20002,4,0),(11592,'15002',20003,20004,4,0),(11593,'15003',20005,20006,4,0),(11594,'15004',20007,20008,4,0),(11595,'15005',20009,20010,4,0),(11596,'15006',20011,20012,4,0),(11597,'15007',20013,20014,4,0),(11598,'15008',20079,20080,4,0),(11599,'15008',20015,20016,4,0),(11600,'15009',20017,20018,4,0),(11601,'15010',20019,20020,4,0),(11602,'15011',20021,20022,4,0),(11603,'15100',20233,20234,4,0),(11604,'15102',20235,20236,4,0),(11605,'15105',20237,20238,4,0),(11606,'15105',20033,20034,4,0),(11607,'15106',20239,20240,4,0),(11608,'15107',20241,20242,4,0),(11609,'15108',20243,20244,4,0),(11610,'15109',20245,20246,4,0),(11611,'15110',20711,20712,4,0),(11612,'15110',20187,20188,4,0),(11613,'15111',20449,20450,4,0),(11614,'15112',20451,20452,4,0),(11615,'15113',20453,20454,4,0),(11616,'15114',20713,20714,4,0),(11617,'15115',20189,20190,4,0),(11618,'15116',20191,20192,4,0),(11619,'15117',20431,20432,4,0),(11620,'15118',20433,20434,4,0),(11621,'15119',20193,20194,4,0),(11622,'15121',20209,20210,4,0),(11623,'15121',20973,20974,4,0),(11624,'15122',20211,20212,4,0),(11625,'15123',20213,20214,4,0),(11626,'15124',20535,20536,4,0),(11627,'15125',20537,20538,4,0),(11628,'15126',20539,20540,4,0),(11629,'15126',20975,20976,4,0),(11630,'15127',20977,20978,4,0),(11631,'15128',20979,20980,4,0),(11632,'15129',20981,20982,4,0),(11633,'15130',20323,20324,4,0),(11634,'15137',20325,20326,4,0),(11635,'15138',20293,20294,4,0),(11636,'15139',20335,20336,4,0),(11637,'15140',20081,20082,4,0),(11638,'15141',20083,20084,4,0),(11639,'15142',20085,20086,4,0),(11640,'15144',20087,20088,4,0),(11641,'15145',20035,20036,4,0),(11642,'15146',20037,20038,4,0),(11643,'15147',20329,20330,4,0),(11644,'15148',20331,20332,4,0),(11645,'15149',20195,20196,4,0),(11646,'15150',20983,20984,4,0),(11647,'15150',20987,20988,4,0),(11648,'15151',20365,20366,4,0),(11649,'15152',20367,20368,4,0),(11650,'15153',20413,20414,4,0),(11651,'15154',20415,20416,4,0),(11652,'15155',20417,20418,4,0),(11653,'15160',20795,20796,4,0),(11654,'15165',20129,20130,4,0),(11655,'15166',20131,20132,4,0),(11656,'15167',20133,20134,4,0),(11657,'15168',20797,20798,4,0),(11658,'15169',20799,20800,4,0),(11659,'15170',20023,20024,4,0),(11660,'15171',20605,20606,4,0),(11661,'15172',20607,20608,4,0),(11662,'15173',20609,20610,4,0),(11663,'15174',20337,20338,4,0),(11664,'15175',20269,20270,4,0),(11665,'15176',20611,20612,4,0),(11666,'15177',20613,20614,4,0),(11667,'15178',20615,20616,4,0),(11668,'15179',20617,20618,4,0),(11669,'15180',20339,20340,4,0),(11670,'15181',20217,20218,4,0),(11671,'15182',20271,20272,4,0),(11672,'15183',20273,20274,4,0),(11673,'15184',20275,20276,4,0),(11674,'15185',20303,20304,4,0),(11675,'15186',20305,20306,4,0),(11676,'15187',20307,20308,4,0),(11677,'15188',20309,20310,4,0),(11678,'15189',20341,20342,4,0),(11679,'15190',20025,20026,4,0),(11680,'15191',20027,20028,4,0),(11681,'15192',20029,20030,4,0),(11682,'15198',20343,20344,4,0),(11683,'15199',20345,20346,4,0),(11684,'15200',20581,20582,4,0),(11685,'15201',27781,27782,4,0),(11686,'15210',20583,20584,4,0),(11687,'15211',20585,20586,4,0),(11688,'15212',20437,20438,4,0),(11689,'15213',20587,20588,4,0),(11690,'15214',20439,20440,4,0),(11691,'15215',20441,20442,4,0),(11692,'15216',20443,20444,4,0),(11693,'15218',20729,20730,4,0),(11694,'15218',20589,20590,4,0),(11695,'15218',20445,20446,4,0),(11696,'15220',20053,20054,4,0),(11697,'15228',20055,20056,4,0),(11698,'15229',20057,20058,4,0),(11699,'15230',20659,20660,4,0),(11700,'15236',20661,20662,4,0),(11701,'15237',20663,20664,4,0),(11702,'15239',20665,20666,4,0),(11703,'15240',20521,20522,4,0),(11704,'15250',20523,20524,4,0),(11705,'15256',20463,20464,4,0),(11706,'15258',20465,20466,4,0),(11707,'15259',20525,20526,4,0),(11708,'15270',20295,20296,4,0),(11709,'15280',20179,20180,4,0),(11710,'15281',20781,20782,4,0),(11711,'15282',20783,20784,4,0),(11712,'15284',20527,20528,4,0),(11713,'15286',20667,20668,4,0),(11714,'15287',20669,20670,4,0),(11715,'15288',20671,20672,4,0),(11716,'15290',20529,20530,4,0),(11717,'15291',20531,20532,4,0),(11718,'15292',20259,20260,4,0),(11719,'15293',20261,20262,4,0),(11720,'15295',20263,20264,4,0),(11721,'15296',20265,20266,4,0),(11722,'15297',20369,20370,4,0),(11723,'15298',20297,20298,4,0),(11724,'15299',20299,20300,4,0),(11725,'15300',20141,20142,4,0),(11726,'15310',20351,20352,4,0),(11727,'15313',20427,20428,4,0),(11728,'15314',20691,20692,4,0),(11729,'15315',20503,20504,4,0),(11730,'15316',20319,20320,4,0),(11731,'15317',20067,20068,4,0),(11732,'15318',20049,20050,4,0),(11733,'15319',20143,20144,4,0),(11734,'15319',20693,20694,4,0),(11735,'15319',20135,20136,4,0),(11736,'15320',20101,20102,4,0),(11737,'15324',20103,20104,4,0),(11738,'15325',20105,20106,4,0),(11739,'15326',20107,20108,4,0),(11740,'15327',20109,20110,4,0),(11741,'15328',20111,20112,4,0),(11742,'15329',20113,20114,4,0),(11743,'15330',20641,20642,4,0),(11744,'15332',20643,20644,4,0),(11745,'15337',20457,20458,4,0),(11746,'15338',20645,20646,4,0),(11747,'15339',20459,20460,4,0),(11748,'15339',20647,20648,4,0),(11749,'15340',20649,20650,4,0),(11750,'15347',20279,20280,4,0),(11751,'15349',20651,20652,4,0),(11752,'15350',20281,20282,4,0),(11753,'15357',20283,20284,4,0),(11754,'15358',20285,20286,4,0),(11755,'15359',20287,20288,4,0),(11756,'15360',20249,20250,4,0),(11757,'15365',20251,20252,4,0),(11758,'15366',20253,20254,4,0),(11759,'15367',20653,20654,4,0),(11760,'15368',20655,20656,4,0),(11761,'15369',20255,20256,4,0),(11762,'15379',20353,20354,4,0),(11763,'15380',20675,20676,4,0),(11764,'15386',20677,20678,4,0),(11765,'15387',20679,20680,4,0),(11766,'15388',20681,20682,4,0),(11767,'15389',20683,20684,4,0),(11768,'15390',20685,20686,4,0),(11769,'15391',20687,20688,4,0),(11770,'15401',20385,20386,4,0),(11771,'15402',20387,20388,4,0),(11772,'15403',20389,20390,4,0),(11773,'15404',20391,20392,4,0),(11774,'15405',20393,20394,4,0),(11775,'15406',20395,20396,4,0),(11776,'15407',20397,20398,4,0),(11777,'15489',15387,15388,4,0),(11778,'15500',20373,20374,4,0),(11779,'15509',20375,20376,4,0),(11780,'15510',20563,20564,4,0),(11781,'15520',20377,20378,4,0),(11782,'15528',20379,20380,4,0),(11783,'15530',20313,20314,4,0),(11784,'15540',20543,20544,4,0),(11785,'15541',20545,20546,4,0),(11786,'15542',20935,20936,4,0),(11787,'15543',20937,20938,4,0),(11788,'15550',20939,20940,4,0),(11789,'15551',20941,20942,4,0),(11790,'15552',20943,20944,4,0),(11791,'15553',20945,20946,4,0),(11792,'15554',20947,20948,4,0),(11793,'15555',20289,20290,4,0),(11794,'15560',20803,20804,4,0),(11795,'15561',20805,20806,4,0),(11796,'15562',20807,20808,4,0),(11797,'15563',20497,20498,4,0),(11798,'15564',20499,20500,4,0),(11799,'15565',20119,20120,4,0),(11800,'15566',20121,20122,4,0),(11801,'15567',20123,20124,4,0),(11802,'15568',20125,20126,4,0),(11803,'15569',20315,20316,4,0),(11804,'15570',20547,20548,4,0),(11805,'15572',20549,20550,4,0),(11806,'15573',20551,20552,4,0),(11807,'15576',20809,20810,4,0),(11808,'15577',20553,20554,4,0),(11809,'15577',20565,20566,4,0),(11810,'15578',20555,20556,4,0),(11811,'15579',20567,20568,4,0),(11812,'15580',20811,20812,4,0),(11813,'15582',20115,20116,4,0),(11814,'15582',20171,20172,4,0),(11815,'15587',20557,20558,4,0),(11816,'15590',20399,20400,4,0),(11817,'15591',20401,20402,4,0),(11818,'15592',20403,20404,4,0),(11819,'15593',20405,20406,4,0),(11820,'15594',20407,20408,4,0),(11821,'15595',20409,20410,4,0),(11822,'15596',20559,20560,4,0),(11823,'15598',20813,20814,4,0),(11824,'15600',20717,20718,4,0),(11825,'15607',20719,20720,4,0),(11826,'15608',20721,20722,4,0),(11827,'15608',20487,20488,4,0),(11828,'15609',20723,20724,4,0),(11829,'15609',20505,20506,4,0),(11830,'15611',20199,20200,4,0),(11831,'15612',20201,20202,4,0),(11832,'15613',19997,19998,4,0),(11833,'15614',20725,20726,4,0),(11834,'15615',20959,20960,4,0),(11835,'15616',20961,20962,4,0),(11836,'15617',20507,20508,4,0),(11837,'15619',20509,20510,4,0),(11838,'15620',20513,20514,4,0),(11839,'15621',20203,20204,4,0),(11840,'15622',20205,20206,4,0),(11841,'15623',20071,20072,4,0),(11842,'15624',20073,20074,4,0),(11843,'15625',20075,20076,4,0),(11844,'15626',20515,20516,4,0),(11845,'15627',20517,20518,4,0),(11846,'15627',20381,20382,4,0),(11847,'15630',20489,20490,4,0),(11848,'15635',20491,20492,4,0),(11849,'15637',20963,20964,4,0),(11850,'15638',20965,20966,4,0),(11851,'15639',20493,20494,4,0),(11852,'15640',20137,20138,4,0),(11853,'15650',20219,20220,4,0),(11854,'15656',20989,20990,4,0),(11855,'15659',20221,20222,4,0),(11856,'15660',20223,20224,4,0),(11857,'15668',20225,20226,4,0),(11858,'15669',20227,20228,4,0),(11859,'15670',20347,20348,4,0),(11860,'15679',20229,20230,4,0),(11861,'15680',20621,20622,4,0),(11862,'15683',20901,20902,4,0),(11863,'15684',20633,20634,4,0),(11864,'15684',20903,20904,4,0),(11865,'15684',20623,20624,4,0),(11866,'15685',20479,20480,4,0),(11867,'15685',20421,20422,4,0),(11868,'15685',20625,20626,4,0),(11869,'15686',20919,20920,4,0),(11870,'15686',20481,20482,4,0),(11871,'15686',20423,20424,4,0),(11872,'15687',20627,20628,4,0),(11873,'15687',20921,20922,4,0),(11874,'15688',20837,20838,4,0),(11875,'15688',20635,20636,4,0),(11876,'15689',20629,20630,4,0),(11877,'15689',20905,20906,4,0),(11878,'15689',20483,20484,4,0),(11879,'15690',20089,20090,4,0),(11880,'15701',20839,20840,4,0),(11881,'15702',20841,20842,4,0),(11882,'15703',20843,20844,4,0),(11883,'15704',20845,20846,4,0),(11884,'15705',20847,20848,4,0),(11885,'15706',20849,20850,4,0),(11886,'15707',20851,20852,4,0),(11887,'15800',20469,20470,4,0),(11888,'15805',20471,20472,4,0),(11889,'15806',20897,20898,4,0),(11890,'15807',20969,20970,4,0),(11891,'15808',20875,20876,4,0),(11892,'15809',20473,20474,4,0),(11893,'15810',20093,20094,4,0),(11894,'15813',20879,20880,4,0),(11895,'15814',20881,20882,4,0),(11896,'15815',20883,20884,4,0),(11897,'15816',20147,20148,4,0),(11898,'15817',20149,20150,4,0),(11899,'15818',20151,20152,4,0),(11900,'15819',20475,20476,4,0),(11901,'15819',20095,20096,4,0),(11902,'15820',20853,20854,4,0),(11903,'15821',20593,20594,4,0),(11904,'15822',20909,20910,4,0),(11905,'15823',20595,20596,4,0),(11906,'15823',20911,20912,4,0),(11907,'15824',20913,20914,4,0),(11908,'15824',20597,20598,4,0),(11909,'15825',20599,20600,4,0),(11910,'15826',20097,20098,4,0),(11911,'15828',20915,20916,4,0),(11912,'15830',20571,20572,4,0),(11913,'15837',20817,20818,4,0),(11914,'15838',20573,20574,4,0),(11915,'15839',20575,20576,4,0),(11916,'15839',20181,20182,4,0),(11917,'15839',19989,19990,4,0),(11918,'15840',20819,20820,4,0),(11919,'15841',20821,20822,4,0),(11920,'15845',20823,20824,4,0),(11921,'15846',20825,20826,4,0),(11922,'15847',20827,20828,4,0),(11923,'15848',20829,20830,4,0),(11924,'15850',20991,20992,4,0),(11925,'15851',20993,20994,4,0),(11926,'15855',20995,20996,4,0),(11927,'15856',20997,20998,4,0),(11928,'15857',20999,21000,4,0),(11929,'15858',21001,21002,4,0),(11930,'15859',21003,21004,4,0),(11931,'15860',20831,20832,4,0),(11932,'15861',20833,20834,4,0),(11933,'15862',19991,19992,4,0),(11934,'15863',19993,19994,4,0),(11935,'15863',20577,20578,4,0),(11936,'15864',20059,20060,4,0),(11937,'15865',20183,20184,4,0),(11938,'15866',20887,20888,4,0),(11939,'15870',20061,20062,4,0),(11940,'15871',20925,20926,4,0),(11941,'15872',20927,20928,4,0),(11942,'15873',20929,20930,4,0),(11943,'15874',20931,20932,4,0),(11944,'15880',20951,20952,4,0),(11945,'15881',20173,20174,4,0),(11946,'15881',20953,20954,4,0),(11947,'15882',20175,20176,4,0),(11948,'15883',20889,20890,4,0),(11949,'15884',20855,20856,4,0),(11950,'15885',20955,20956,4,0),(11951,'15886',20891,20892,4,0),(11952,'15887',20601,20602,4,0),(11953,'15888',20637,20638,4,0),(11954,'15890',20857,20858,4,0),(11955,'15891',20859,20860,4,0),(11956,'15892',20861,20862,4,0),(11957,'15893',20863,20864,4,0),(11958,'15894',20893,20894,4,0),(11959,'15895',20063,20064,4,0),(11960,'15896',20865,20866,4,0),(11961,'15897',20867,20868,4,0),(11962,'15898',20869,20870,4,0),(11963,'15899',20871,20872,4,0),(11964,'15900',20697,20698,4,0),(11965,'15910',20699,20700,4,0),(11966,'15911',20785,20786,4,0),(11967,'15912',20787,20788,4,0),(11968,'15913',20789,20790,4,0),(11969,'15914',20701,20702,4,0),(11970,'15915',20703,20704,4,0),(11971,'15916',20357,20358,4,0),(11972,'15917',20705,20706,4,0),(11973,'15920',20749,20750,4,0),(11974,'15928',20751,20752,4,0),(11975,'15930',20155,20156,4,0),(11976,'15937',20157,20158,4,0),(11977,'15938',20159,20160,4,0),(11978,'15939',20161,20162,4,0),(11979,'15940',20041,20042,4,0),(11980,'15948',20043,20044,4,0),(11981,'15949',20045,20046,4,0),(11982,'15950',20761,20762,4,0),(11983,'15959',20763,20764,4,0),(11984,'15960',20765,20766,4,0),(11985,'15965',20767,20768,4,0),(11986,'15966',20769,20770,4,0),(11987,'15967',20771,20772,4,0),(11988,'15968',20773,20774,4,0),(11989,'15969',20775,20776,4,0),(11990,'15970',20731,20732,4,0),(11991,'15978',20733,20734,4,0),(11992,'15979',20735,20736,4,0),(11993,'15980',20707,20708,4,0),(11994,'15980',20791,20792,4,0),(11995,'15981',20359,20360,4,0),(11996,'15982',20361,20362,4,0),(11997,'15983',20753,20754,4,0),(11998,'15984',20755,20756,4,0),(11999,'15985',20757,20758,4,0),(12000,'15990',20163,20164,4,0),(12001,'15991',20165,20166,4,0),(12002,'15992',20167,20168,4,0),(12003,'15993',20777,20778,4,0),(12004,'15994',20737,20738,4,0),(12005,'15995',20739,20740,4,0),(12006,'15996',20741,20742,4,0),(12007,'15998',20743,20744,4,0),(12008,'15999',20745,20746,4,0),(12009,'16001',13175,13176,4,0),(12010,'16002',13177,13178,4,0),(12011,'16003',13179,13180,4,0),(12012,'16004',13181,13182,4,0),(12013,'16043',13039,13040,4,0),(12014,'16100',13779,13780,4,0),(12015,'16111',13905,13906,4,0),(12016,'16111',12891,12892,4,0),(12017,'16113',13389,13390,4,0),(12018,'16114',13023,13024,4,0),(12019,'16118',13317,13318,4,0),(12020,'16118',12979,12980,4,0),(12021,'16118',13561,13562,4,0),(12022,'16118',13513,13514,4,0),(12023,'16120',13427,13428,4,0),(12024,'16122',13247,13248,4,0),(12025,'16122',13767,13768,4,0),(12026,'16123',12953,12954,4,0),(12027,'16140',13813,13814,4,0),(12028,'16141',12957,12958,4,0),(12029,'16141',13253,13254,4,0),(12030,'16141',13147,13148,4,0),(12031,'16141',13569,13570,4,0),(12032,'16142',13415,13416,4,0),(12033,'16143',13681,13682,4,0),(12034,'16143',13449,13450,4,0),(12035,'16144',13683,13684,4,0),(12036,'16144',13381,13382,4,0),(12037,'16145',13685,13686,4,0),(12038,'16146',13933,13934,4,0),(12039,'16146',13183,13184,4,0),(12040,'16147',13451,13452,4,0),(12041,'16150',13731,13732,4,0),(12042,'16150',13791,13792,4,0),(12043,'16152',13325,13326,4,0),(12044,'16152',13747,13748,4,0),(12045,'16152',12987,12988,4,0),(12046,'16152',13751,13752,4,0),(12047,'16160',13533,13534,4,0),(12048,'16160',16231,16232,4,0),(12049,'16161',13715,13716,4,0),(12050,'16162',13717,13718,4,0),(12051,'16190',13269,13270,4,0),(12052,'16190',13163,13164,4,0),(12053,'16191',13185,13186,4,0),(12054,'16191',13271,13272,4,0),(12055,'16191',13165,13166,4,0),(12056,'16191',12983,12984,4,0),(12057,'16191',13849,13850,4,0),(12058,'16192',13537,13538,4,0),(12059,'16192',13027,13028,4,0),(12060,'16193',13277,13278,4,0),(12061,'16193',13187,13188,4,0),(12062,'16194',13189,13190,4,0),(12063,'16194',13273,13274,4,0),(12064,'16194',13167,13168,4,0),(12065,'16195',13337,13338,4,0),(12066,'16195',13859,13860,4,0),(12067,'16195',13719,13720,4,0),(12068,'16195',12943,12944,4,0),(12069,'16195',12883,12884,4,0),(12070,'16196',13861,13862,4,0),(12071,'16200',13491,13492,4,0),(12072,'16210',13035,13036,4,0),(12073,'16211',13221,13222,4,0),(12074,'16212',13581,13582,4,0),(12075,'16214',13783,13784,4,0),(12076,'16214',12887,12888,4,0),(12077,'16214',13285,13286,4,0),(12078,'16214',13771,13772,4,0),(12079,'16215',12935,12936,4,0),(12080,'16216',13677,13678,4,0),(12081,'16216',13509,13510,4,0),(12082,'16216',13171,13172,4,0),(12083,'16216',13429,13430,4,0),(12084,'16220',13601,13602,4,0),(12085,'16230',13837,13838,4,0),(12086,'16235',13361,13362,4,0),(12087,'16236',13839,13840,4,0),(12088,'16236',13363,13364,4,0),(12089,'16236',13807,13808,4,0),(12090,'16237',13433,13434,4,0),(12091,'16238',13809,13810,4,0),(12092,'16238',13841,13842,4,0),(12093,'16239',13135,13136,4,0),(12094,'16240',13217,13218,4,0),(12095,'16250',13143,13144,4,0),(12096,'16251',13301,13302,4,0),(12097,'16260',13459,13460,4,0),(12098,'16269',13397,13398,4,0),(12099,'16269',13597,13598,4,0),(12100,'16270',13825,13826,4,0),(12101,'16280',13897,13898,4,0),(12102,'16290',13205,13206,4,0),(12103,'16290',13365,13366,4,0),(12104,'16300',13079,13080,4,0),(12105,'16311',13015,13016,4,0),(12106,'16311',13041,13042,4,0),(12107,'16311',13333,13334,4,0),(12108,'16311',13265,13266,4,0),(12109,'16312',13305,13306,4,0),(12110,'16312',13289,13290,4,0),(12111,'16313',12927,12928,4,0),(12112,'16315',12903,12904,4,0),(12113,'16316',13341,13342,4,0),(12114,'16316',13759,13760,4,0),(12115,'16316',13045,13046,4,0),(12116,'16316',13401,13402,4,0),(12117,'16317',13627,13628,4,0),(12118,'16317',13925,13926,4,0),(12119,'16317',13703,13704,4,0),(12120,'16318',13635,13636,4,0),(12121,'16320',13689,13690,4,0),(12122,'16321',13691,13692,4,0),(12123,'16330',13409,13410,4,0),(12124,'16336',13655,13656,4,0),(12125,'16338',13119,13120,4,0),(12126,'16338',12923,12924,4,0),(12127,'16339',13657,13658,4,0),(12128,'16339',13411,13412,4,0),(12129,'16339',13297,13298,4,0),(12130,'16340',13755,13756,4,0),(12131,'16340',13377,13378,4,0),(12132,'16340',13055,13056,4,0),(12133,'16350',13091,13092,4,0),(12134,'16360',13479,13480,4,0),(12135,'16360',12961,12962,4,0),(12136,'16370',13865,13866,4,0),(12137,'16370',13647,13648,4,0),(12138,'16371',13497,13498,4,0),(12139,'16371',13909,13910,4,0),(12140,'16372',13541,13542,4,0),(12141,'16372',13243,13244,4,0),(12142,'16373',13095,13096,4,0),(12143,'16373',13917,13918,4,0),(12144,'16373',13543,13544,4,0),(12145,'16390',13525,13526,4,0),(12146,'16390',13529,13530,4,0),(12147,'16390',13609,13610,4,0),(12148,'16393',13463,13464,4,0),(12149,'16400',13695,13696,4,0),(12150,'16410',13321,13322,4,0),(12151,'16411',13257,13258,4,0),(12152,'16412',13197,13198,4,0),(12153,'16413',13723,13724,4,0),(12154,'16414',13585,13586,4,0),(12155,'16415',13829,13830,4,0),(12156,'16417',13441,13442,4,0),(12157,'16420',12931,12932,4,0),(12158,'16420',13893,13894,4,0),(12159,'16421',13593,13594,4,0),(12160,'16421',13313,13314,4,0),(12161,'16422',13735,13736,4,0),(12162,'16423',13521,13522,4,0),(12163,'16430',13623,13624,4,0),(12164,'16431',12939,12940,4,0),(12165,'16432',13613,13614,4,0),(12166,'16432',13877,13878,4,0),(12167,'16433',12919,12920,4,0),(12168,'16433',13845,13846,4,0),(12169,'16434',13471,13472,4,0),(12170,'16435',13385,13386,4,0),(12171,'16440',13475,13476,4,0),(12172,'16441',13209,13210,4,0),(12173,'16442',13889,13890,4,0),(12174,'16444',13159,13160,4,0),(12175,'16452',13739,13740,4,0),(12176,'16452',13615,13616,4,0),(12177,'16452',13743,13744,4,0),(12178,'16460',12973,12974,4,0),(12179,'16461',13437,13438,4,0),(12180,'16463',13619,13620,4,0),(12181,'16464',12911,12912,4,0),(12182,'16465',13547,13548,4,0),(12183,'16465',13329,13330,4,0),(12184,'16470',12991,12992,4,0),(12185,'16470',12975,12976,4,0),(12186,'16470',13929,13930,4,0),(12187,'16500',13345,13346,4,0),(12188,'16510',13233,13234,4,0),(12189,'16510',13795,13796,4,0),(12190,'16512',13235,13236,4,0),(12191,'16512',13031,13032,4,0),(12192,'16514',13237,13238,4,0),(12193,'16520',13347,13348,4,0),(12194,'16521',13349,13350,4,0),(12195,'16522',13707,13708,4,0),(12196,'16522',13565,13566,4,0),(12197,'16532',13833,13834,4,0),(12198,'16532',13293,13294,4,0),(12199,'16532',13351,13352,4,0),(12200,'16532',13393,13394,4,0),(12201,'16535',13817,13818,4,0),(12202,'16537',12915,12916,4,0),(12203,'16537',13075,13076,4,0),(12204,'16540',13353,13354,4,0),(12205,'16541',13881,13882,4,0),(12206,'16541',13355,13356,4,0),(12207,'16541',13557,13558,4,0),(12208,'16541',13445,13446,4,0),(12209,'16542',13873,13874,4,0),(12210,'16550',13049,13050,4,0),(12211,'16550',13357,13358,4,0),(12212,'16555',13051,13052,4,0),(12213,'16600',13639,13640,4,0),(12214,'16610',13115,13116,4,0),(12215,'16611',13127,13128,4,0),(12216,'16612',13131,13132,4,0),(12217,'16620',13369,13370,4,0),(12218,'16621',13665,13666,4,0),(12219,'16622',13553,13554,4,0),(12220,'16623',13151,13152,4,0),(12221,'16630',13487,13488,4,0),(12222,'16638',13213,13214,4,0),(12223,'16639',13661,13662,4,0),(12224,'16640',12997,12998,4,0),(12225,'16646',13821,13822,4,0),(12226,'16647',13261,13262,4,0),(12227,'16647',13803,13804,4,0),(12228,'16648',13855,13856,4,0),(12229,'16649',13605,13606,4,0),(12230,'16649',13105,13106,4,0),(12231,'16649',13467,13468,4,0),(12232,'16650',13419,13420,4,0),(12233,'16660',13423,13424,4,0),(12234,'16670',13229,13230,4,0),(12235,'16700',13673,13674,4,0),(12236,'16707',13111,13112,4,0),(12237,'16708',13577,13578,4,0),(12238,'16708',13123,13124,4,0),(12239,'16709',13787,13788,4,0),(12240,'16710',12969,12970,4,0),(12241,'16710',13699,13700,4,0),(12242,'16720',13059,13060,4,0),(12243,'16730',13309,13310,4,0),(12244,'16738',13201,13202,4,0),(12245,'16739',13727,13728,4,0),(12246,'16740',13373,13374,4,0),(12247,'16740',12993,12994,4,0),(12248,'16760',13501,13502,4,0),(12249,'16770',13643,13644,4,0),(12250,'16771',13885,13886,4,0),(12251,'16771',13921,13922,4,0),(12252,'16779',13003,13004,4,0),(12253,'16780',13483,13484,4,0),(12254,'16780',12945,12946,4,0),(12255,'16781',13249,13250,4,0),(12256,'16800',13589,13590,4,0),(12257,'16812',12949,12950,4,0),(12258,'16812',12907,12908,4,0),(12259,'16812',13913,13914,4,0),(12260,'16812',13225,13226,4,0),(12261,'16812',12899,12900,4,0),(12262,'16813',13651,13652,4,0),(12263,'16813',13631,13632,4,0),(12264,'16813',13763,13764,4,0),(12265,'16813',13869,13870,4,0),(12266,'16840',13851,13852,4,0),(12267,'16841',12895,12896,4,0),(12268,'16842',13711,13712,4,0),(12269,'16843',13901,13902,4,0),(12270,'16850',13071,13072,4,0),(12271,'16851',13019,13020,4,0),(12272,'16852',13505,13506,4,0),(12273,'16853',13517,13518,4,0),(12274,'16854',13155,13156,4,0),(12275,'16855',12965,12966,4,0),(12276,'16857',13063,13064,4,0),(12277,'16860',13799,13800,4,0),(12278,'16870',13007,13008,4,0),(12279,'16878',13405,13406,4,0),(12280,'16878',13573,13574,4,0),(12281,'16878',13455,13456,4,0),(12282,'16878',13669,13670,4,0),(12283,'16879',13193,13194,4,0),(12284,'16879',13099,13100,4,0),(12285,'16879',13775,13776,4,0),(12286,'16879',13009,13010,4,0),(12287,'16890',13067,13068,4,0),(12288,'16890',13281,13282,4,0),(12289,'16890',13083,13084,4,0),(12290,'16891',13085,13086,4,0),(12291,'16891',13101,13102,4,0),(12292,'16892',13087,13088,4,0),(12293,'16893',13011,13012,4,0),(12294,'17001',14273,14274,4,0),(12295,'17002',14275,14276,4,0),(12296,'17003',14277,14278,4,0),(12297,'17004',14279,14280,4,0),(12298,'17005',14281,14282,4,0),(12299,'17006',14283,14284,4,0),(12300,'17007',14285,14286,4,0),(12301,'17100',14327,14328,4,0),(12302,'17110',14241,14242,4,0),(12303,'17111',14243,14244,4,0),(12304,'17113',14245,14246,4,0),(12305,'17114',14911,14912,4,0),(12306,'17116',14171,14172,4,0),(12307,'17117',14173,14174,4,0),(12308,'17118',14175,14176,4,0),(12309,'17120',14343,14344,4,0),(12310,'17121',14177,14178,4,0),(12311,'17121',14159,14160,4,0),(12312,'17124',14533,14534,4,0),(12313,'17130',14323,14324,4,0),(12314,'17130',14883,14884,4,0),(12315,'17131',14675,14676,4,0),(12316,'17132',14221,14222,4,0),(12317,'17133',14577,14578,4,0),(12318,'17133',14223,14224,4,0),(12319,'17133',14915,14916,4,0),(12320,'17133',14837,14838,4,0),(12321,'17134',14351,14352,4,0),(12322,'17135',14353,14354,4,0),(12323,'17136',13953,13954,4,0),(12324,'17137',14931,14932,4,0),(12325,'17137',14965,14966,4,0),(12326,'17140',14885,14886,4,0),(12327,'17140',14907,14908,4,0),(12328,'17141',14887,14888,4,0),(12329,'17141',14001,14002,4,0),(12330,'17142',14941,14942,4,0),(12331,'17143',14311,14312,4,0),(12332,'17144',14155,14156,4,0),(12333,'17144',15025,15026,4,0),(12334,'17150',14721,14722,4,0),(12335,'17151',14723,14724,4,0),(12336,'17152',14769,14770,4,0),(12337,'17153',14771,14772,4,0),(12338,'17154',14691,14692,4,0),(12339,'17160',13967,13968,4,0),(12340,'17161',14529,14530,4,0),(12341,'17162',14009,14010,4,0),(12342,'17163',14011,14012,4,0),(12343,'17164',14761,14762,4,0),(12344,'17164',14725,14726,4,0),(12345,'17164',14773,14774,4,0),(12346,'17165',14331,14332,4,0),(12347,'17166',14855,14856,4,0),(12348,'17166',14333,14334,4,0),(12349,'17170',13963,13964,4,0),(12350,'17171',14693,14694,4,0),(12351,'17171',14857,14858,4,0),(12352,'17172',14385,14386,4,0),(12353,'17173',14387,14388,4,0),(12354,'17174',14711,14712,4,0),(12355,'17176',14361,14362,4,0),(12356,'17177',14363,14364,4,0),(12357,'17178',14391,14392,4,0),(12358,'17178',14365,14366,4,0),(12359,'17179',14659,14660,4,0),(12360,'17179',14367,14368,4,0),(12361,'17180',14961,14962,4,0),(12362,'17181',13943,13944,4,0),(12363,'17182',14013,14014,4,0),(12364,'17183',15017,15018,4,0),(12365,'17184',15019,15020,4,0),(12366,'17185',15021,15022,4,0),(12367,'17190',14683,14684,4,0),(12368,'17199',14727,14728,4,0),(12369,'17199',14105,14106,4,0),(12370,'17200',14535,14536,4,0),(12371,'17210',14537,14538,4,0),(12372,'17211',14539,14540,4,0),(12373,'17212',14541,14542,4,0),(12374,'17213',14543,14544,4,0),(12375,'17213',13995,13996,4,0),(12376,'17214',14639,14640,4,0),(12377,'17220',14705,14706,4,0),(12378,'17230',14547,14548,4,0),(12379,'17240',14807,14808,4,0),(12380,'17240',14399,14400,4,0),(12381,'17241',14623,14624,4,0),(12382,'17242',14625,14626,4,0),(12383,'17243',14403,14404,4,0),(12384,'17244',14117,14118,4,0),(12385,'17244',14179,14180,4,0),(12386,'17245',14809,14810,4,0),(12387,'17246',14811,14812,4,0),(12388,'17248',14121,14122,4,0),(12389,'17248',14707,14708,4,0),(12390,'17249',14123,14124,4,0),(12391,'17250',14125,14126,4,0),(12392,'17251',14075,14076,4,0),(12393,'17252',14077,14078,4,0),(12394,'17253',14923,14924,4,0),(12395,'17253',14499,14500,4,0),(12396,'17255',13997,13998,4,0),(12397,'17256',14557,14558,4,0),(12398,'17256',14569,14570,4,0),(12399,'17257',14295,14296,4,0),(12400,'17257',14889,14890,4,0),(12401,'17257',14233,14234,4,0),(12402,'17258',14891,14892,4,0),(12403,'17300',14027,14028,4,0),(12404,'17310',14423,14424,4,0),(12405,'17320',14903,14904,4,0),(12406,'17320',14549,14550,4,0),(12407,'17400',14049,14050,4,0),(12408,'17401',13971,13972,4,0),(12409,'17402',13973,13974,4,0),(12410,'17403',14731,14732,4,0),(12411,'17404',14647,14648,4,0),(12412,'17405',14199,14200,4,0),(12413,'17406',14979,14980,4,0),(12414,'17410',14845,14846,4,0),(12415,'17411',14949,14950,4,0),(12416,'17412',14435,14436,4,0),(12417,'17420',14847,14848,4,0),(12418,'17421',14655,14656,4,0),(12419,'17430',14803,14804,4,0),(12420,'17430',14425,14426,4,0),(12421,'17441',14053,14054,4,0),(12422,'17450',14303,14304,4,0),(12423,'17451',14701,14702,4,0),(12424,'17452',14453,14454,4,0),(12425,'17454',14687,14688,4,0),(12426,'17455',14069,14070,4,0),(12427,'17456',14071,14072,4,0),(12428,'17457',14663,14664,4,0),(12429,'17458',14249,14250,4,0),(12430,'17459',14097,14098,4,0),(12431,'17460',14139,14140,4,0),(12432,'17461',14287,14288,4,0),(12433,'17462',14777,14778,4,0),(12434,'17462',14039,14040,4,0),(12435,'17462',14315,14316,4,0),(12436,'17462',14439,14440,4,0),(12437,'17463',14225,14226,4,0),(12438,'17463',14743,14744,4,0),(12439,'17463',14217,14218,4,0),(12440,'17464',14143,14144,4,0),(12441,'17464',14751,14752,4,0),(12442,'17464',14969,14970,4,0),(12443,'17465',14827,14828,4,0),(12444,'17466',15027,15028,4,0),(12445,'17466',14261,14262,4,0),(12446,'17467',14789,14790,4,0),(12447,'17467',14829,14830,4,0),(12448,'17468',13989,13990,4,0),(12449,'17468',14973,14974,4,0),(12450,'17469',14999,15000,4,0),(12451,'17469',14253,14254,4,0),(12452,'17469',14191,14192,4,0),(12453,'17469',14667,14668,4,0),(12454,'17469',14851,14852,4,0),(12455,'17470',14799,14800,4,0),(12456,'17472',14933,14934,4,0),(12457,'17472',14319,14320,4,0),(12458,'17473',14935,14936,4,0),(12459,'17474',14995,14996,4,0),(12460,'17474',14879,14880,4,0),(12461,'17475',14785,14786,4,0),(12462,'17475',14937,14938,4,0),(12463,'17476',14553,14554,4,0),(12464,'17476',14257,14258,4,0),(12465,'17480',14671,14672,4,0),(12466,'17481',14755,14756,4,0),(12467,'17482',14757,14758,4,0),(12468,'17483',15013,15014,4,0),(12469,'17483',13991,13992,4,0),(12470,'17484',14211,14212,4,0),(12471,'17485',14953,14954,4,0),(12472,'17486',14133,14134,4,0),(12473,'17487',14135,14136,4,0),(12474,'17488',14065,14066,4,0),(12475,'17489',14347,14348,4,0),(12476,'17489',14195,14196,4,0),(12477,'17490',14411,14412,4,0),(12478,'17491',14589,14590,4,0),(12479,'17492',14591,14592,4,0),(12480,'17493',14585,14586,4,0),(12481,'17493',14987,14988,4,0),(12482,'17494',14581,14582,4,0),(12483,'17495',14561,14562,4,0),(12484,'17496',14151,14152,4,0),(12485,'17497',14613,14614,4,0),(12486,'17500',14651,14652,4,0),(12487,'17512',14377,14378,4,0),(12488,'17513',14379,14380,4,0),(12489,'17515',14945,14946,4,0),(12490,'17520',14617,14618,4,0),(12491,'17527',14419,14420,4,0),(12492,'17528',14299,14300,4,0),(12493,'17529',14619,14620,4,0),(12494,'17530',14087,14088,4,0),(12495,'17531',14291,14292,4,0),(12496,'17531',14089,14090,4,0),(12497,'17532',14381,14382,4,0),(12498,'17534',14629,14630,4,0),(12499,'17534',14093,14094,4,0),(12500,'17534',14643,14644,4,0),(12501,'17534',14573,14574,4,0),(12502,'17535',14595,14596,4,0),(12503,'17536',14899,14900,4,0),(12504,'17537',13957,13958,4,0),(12505,'17538',14229,14230,4,0),(12506,'17538',13959,13960,4,0),(12507,'17538',14187,14188,4,0),(12508,'17538',14919,14920,4,0),(12509,'17539',14035,14036,4,0),(12510,'17539',14269,14270,4,0),(12511,'17539',14457,14458,4,0),(12512,'17539',14307,14308,4,0),(12513,'17600',14213,14214,4,0),(12514,'17700',14337,14338,4,0),(12515,'17700',14043,14044,4,0),(12516,'17706',14599,14600,4,0),(12517,'17707',14357,14358,4,0),(12518,'17707',13939,13940,4,0),(12519,'17708',14109,14110,4,0),(12520,'17709',14339,14340,4,0),(12521,'17720',14429,14430,4,0),(12522,'17721',14431,14432,4,0),(12523,'17722',14183,14184,4,0),(12524,'17723',14031,14032,4,0),(12525,'17723',14023,14024,4,0),(12526,'17730',14415,14416,4,0),(12527,'17731',14861,14862,4,0),(12528,'17732',14765,14766,4,0),(12529,'17733',13947,13948,4,0),(12530,'17734',13949,13950,4,0),(12531,'17740',14983,14984,4,0),(12532,'17741',15007,15008,4,0),(12533,'17741',14147,14148,4,0),(12534,'17742',13981,13982,4,0),(12535,'17743',15009,15010,4,0),(12536,'17744',14509,14510,4,0),(12537,'17745',14395,14396,4,0),(12538,'17746',14057,14058,4,0),(12539,'17747',14059,14060,4,0),(12540,'17750',14113,14114,4,0),(12541,'17751',14697,14698,4,0),(12542,'17752',14491,14492,4,0),(12543,'17753',14203,14204,4,0),(12544,'17754',14633,14634,4,0),(12545,'17755',14635,14636,4,0),(12546,'17760',14957,14958,4,0),(12547,'17762',14447,14448,4,0),(12548,'17763',14449,14450,4,0),(12549,'17770',14045,14046,4,0),(12550,'17771',14815,14816,4,0),(12551,'17772',14525,14526,4,0),(12552,'17773',14603,14604,4,0),(12553,'17780',14265,14266,4,0),(12554,'17781',15003,15004,4,0),(12555,'17800',14517,14518,4,0),(12556,'17810',14519,14520,4,0),(12557,'17811',14819,14820,4,0),(12558,'17812',14521,14522,4,0),(12559,'17813',14371,14372,4,0),(12560,'17820',13985,13986,4,0),(12561,'17830',14715,14716,4,0),(12562,'17831',14781,14782,4,0),(12563,'17832',14207,14208,4,0),(12564,'17832',14167,14168,4,0),(12565,'17833',14975,14976,4,0),(12566,'17833',14237,14238,4,0),(12567,'17834',14081,14082,4,0),(12568,'17834',14607,14608,4,0),(12569,'17840',14823,14824,4,0),(12570,'17843',14565,14566,4,0),(12571,'17844',14163,14164,4,0),(12572,'17846',14609,14610,4,0),(12573,'17850',14005,14006,4,0),(12574,'17850',14717,14718,4,0),(12575,'17850',14017,14018,4,0),(12576,'17851',14443,14444,4,0),(12577,'17851',14019,14020,4,0),(12578,'17852',14833,14834,4,0),(12579,'17853',14679,14680,4,0),(12580,'17853',14895,14896,4,0),(12581,'17853',13977,13978,4,0),(12582,'17854',14735,14736,4,0),(12583,'17854',14083,14084,4,0),(12584,'17855',14503,14504,4,0),(12585,'17856',14129,14130,4,0),(12586,'17856',14505,14506,4,0),(12587,'17857',14747,14748,4,0),(12588,'17858',14373,14374,4,0),(12589,'17860',14739,14740,4,0),(12590,'17861',14513,14514,4,0),(12591,'17862',14927,14928,4,0),(12592,'17864',14793,14794,4,0),(12593,'17865',14795,14796,4,0),(12594,'17867',14101,14102,4,0),(12595,'17868',14495,14496,4,0),(12596,'17869',14407,14408,4,0),(12597,'17869',14841,14842,4,0),(12598,'17869',14991,14992,4,0),(12599,'18001',15389,15390,4,0),(12600,'18002',15391,15392,4,0),(12601,'18003',15393,15394,4,0),(12602,'18004',15395,15396,4,0),(12603,'18005',15397,15398,4,0),(12604,'18006',15399,15400,4,0),(12605,'18007',15401,15402,4,0),(12606,'18008',15403,15404,4,0),(12607,'18009',15405,15406,4,0),(12608,'18010',15407,15408,4,0),(12609,'18011',15409,15410,4,0),(12610,'18012',15411,15412,4,0),(12611,'18013',15413,15414,4,0),(12612,'18014',15415,15416,4,0),(12613,'18015',15417,15418,4,0),(12614,'18053',15267,15268,4,0),(12615,'18100',15131,15132,4,0),(12616,'18101',15869,15870,4,0),(12617,'18102',15871,15872,4,0),(12618,'18110',15569,15570,4,0),(12619,'18120',15085,15086,4,0),(12620,'18126',15123,15124,4,0),(12621,'18127',15511,15512,4,0),(12622,'18127',15125,15126,4,0),(12623,'18128',15907,15908,4,0),(12624,'18128',15087,15088,4,0),(12625,'18129',15809,15810,4,0),(12626,'18129',15127,15128,4,0),(12627,'18129',15181,15182,4,0),(12628,'18130',15535,15536,4,0),(12629,'18130',15343,15344,4,0),(12630,'18131',15883,15884,4,0),(12631,'18132',15033,15034,4,0),(12632,'18140',15551,15552,4,0),(12633,'18140',16501,16502,4,0),(12634,'18150',15375,15376,4,0),(12635,'18151',15697,15698,4,0),(12636,'18152',15315,15316,4,0),(12637,'18160',15447,15448,4,0),(12638,'18170',15073,15074,4,0),(12639,'18179',15075,15076,4,0),(12640,'18179',15903,15904,4,0),(12641,'18180',15311,15312,4,0),(12642,'18181',15539,15540,4,0),(12643,'18181',15297,15298,4,0),(12644,'18182',15419,15420,4,0),(12645,'18183',15469,15470,4,0),(12646,'18184',15149,15150,4,0),(12647,'18185',15471,15472,4,0),(12648,'18190',15421,15422,4,0),(12649,'18190',15233,15234,4,0),(12650,'18191',15449,15450,4,0),(12651,'18191',15741,15742,4,0),(12652,'18192',15325,15326,4,0),(12653,'18192',15785,15786,4,0),(12654,'18193',15635,15636,4,0),(12655,'18194',15247,15248,4,0),(12656,'18194',15571,15572,4,0),(12657,'18195',15293,15294,4,0),(12658,'18196',15637,15638,4,0),(12659,'18197',15773,15774,4,0),(12660,'18198',15479,15480,4,0),(12661,'18199',15191,15192,4,0),(12662,'18200',15615,15616,4,0),(12663,'18210',15775,15776,4,0),(12664,'18210',15731,15732,4,0),(12665,'18211',15259,15260,4,0),(12666,'18212',15453,15454,4,0),(12667,'18213',15523,15524,4,0),(12668,'18214',15693,15694,4,0),(12669,'18220',15043,15044,4,0),(12670,'18230',15135,15136,4,0),(12671,'18240',15745,15746,4,0),(12672,'18247',15623,15624,4,0),(12673,'18248',15625,15626,4,0),(12674,'18249',15627,15628,4,0),(12675,'18250',15037,15038,4,0),(12676,'18250',15747,15748,4,0),(12677,'18260',15483,15484,4,0),(12678,'18270',15641,15642,4,0),(12679,'18280',15079,15080,4,0),(12680,'18290',15195,15196,4,0),(12681,'18290',15137,15138,4,0),(12682,'18290',15045,15046,4,0),(12683,'18291',15749,15750,4,0),(12684,'18292',15813,15814,4,0),(12685,'18293',15485,15486,4,0),(12686,'18294',15487,15488,4,0),(12687,'18295',15081,15082,4,0),(12688,'18300',15591,15592,4,0),(12689,'18310',15795,15796,4,0),(12690,'18311',15911,15912,4,0),(12691,'18311',15593,15594,4,0),(12692,'18312',12653,12654,4,0),(12693,'18312',15595,15596,4,0),(12694,'18313',15597,15598,4,0),(12695,'18314',15599,15600,4,0),(12696,'18320',15815,15816,4,0),(12697,'18327',15555,15556,4,0),(12698,'18328',15751,15752,4,0),(12699,'18328',15557,15558,4,0),(12700,'18329',15243,15244,4,0),(12701,'18329',15817,15818,4,0),(12702,'18330',15237,15238,4,0),(12703,'18330',15819,15820,4,0),(12704,'18330',15139,15140,4,0),(12705,'18339',15251,15252,4,0),(12706,'18339',15239,15240,4,0),(12707,'18340',15359,15360,4,0),(12708,'18350',15489,15490,4,0),(12709,'18360',15475,15476,4,0),(12710,'18369',15899,15900,4,0),(12711,'18370',15653,15654,4,0),(12712,'18380',15491,15492,4,0),(12713,'18381',15493,15494,4,0),(12714,'18400',15705,15706,4,0),(12715,'18410',15217,15218,4,0),(12716,'18410',15707,15708,4,0),(12717,'18410',15823,15824,4,0),(12718,'18411',15723,15724,4,0),(12719,'18412',15173,15174,4,0),(12720,'18413',15213,15214,4,0),(12721,'18414',15545,15546,4,0),(12722,'18415',15765,15766,4,0),(12723,'18416',15547,15548,4,0),(12724,'18416',15177,15178,4,0),(12725,'18417',15843,15844,4,0),(12726,'18418',15661,15662,4,0),(12727,'18418',15709,15710,4,0),(12728,'18418',15203,15204,4,0),(12729,'18420',15109,15110,4,0),(12730,'18420',15561,15562,4,0),(12731,'18430',15839,15840,4,0),(12732,'18438',15099,15100,4,0),(12733,'18439',15221,15222,4,0),(12734,'18440',15185,15186,4,0),(12735,'18448',15187,15188,4,0),(12736,'18449',15587,15588,4,0),(12737,'18450',15111,15112,4,0),(12738,'18451',15169,15170,4,0),(12739,'18452',15527,15528,4,0),(12740,'18460',15113,15114,4,0),(12741,'18470',15865,15866,4,0),(12742,'18480',15851,15852,4,0),(12743,'18490',15677,15678,4,0),(12744,'18491',15847,15848,4,0),(12745,'18492',15853,15854,4,0),(12746,'18492',15679,15680,4,0),(12747,'18493',15683,15684,4,0),(12748,'18494',15855,15856,4,0),(12749,'18494',15685,15686,4,0),(12750,'18500',15429,15430,4,0),(12751,'18510',15157,15158,4,0),(12752,'18511',15861,15862,4,0),(12753,'18512',15319,15320,4,0),(12754,'18512',15461,15462,4,0),(12755,'18512',15531,15532,4,0),(12756,'18513',15347,15348,4,0),(12757,'18514',15069,15070,4,0),(12758,'18515',15351,15352,4,0),(12759,'18515',15779,15780,4,0),(12760,'18515',15431,15432,4,0),(12761,'18516',15607,15608,4,0),(12762,'18516',15755,15756,4,0),(12763,'18516',15153,15154,4,0),(12764,'18516',15619,15620,4,0),(12765,'18517',15787,15788,4,0),(12766,'18517',15275,15276,4,0),(12767,'18517',15541,15542,4,0),(12768,'18518',15515,15516,4,0),(12769,'18518',15255,15256,4,0),(12770,'18518',15053,15054,4,0),(12771,'18518',15565,15566,4,0),(12772,'18518',15119,15120,4,0),(12773,'18519',15433,15434,4,0),(12774,'18519',15781,15782,4,0),(12775,'18520',15039,15040,4,0),(12776,'18530',15727,15728,4,0),(12777,'18538',15095,15096,4,0),(12778,'18538',15301,15302,4,0),(12779,'18539',15895,15896,4,0),(12780,'18540',15369,15370,4,0),(12781,'18540',15457,15458,4,0),(12782,'18540',15657,15658,4,0),(12783,'18540',15115,15116,4,0),(12784,'18550',15503,15504,4,0),(12785,'18560',15425,15426,4,0),(12786,'18561',15645,15646,4,0),(12787,'18562',15735,15736,4,0),(12788,'18563',15371,15372,4,0),(12789,'18563',15835,15836,4,0),(12790,'18564',15263,15264,4,0),(12791,'18565',15199,15200,4,0),(12792,'18566',15161,15162,4,0),(12793,'18567',15505,15506,4,0),(12794,'18568',15737,15738,4,0),(12795,'18569',15649,15650,4,0),(12796,'18570',15307,15308,4,0),(12797,'18600',15663,15664,4,0),(12798,'18610',15799,15800,4,0),(12799,'18611',15631,15632,4,0),(12800,'18612',15499,15500,4,0),(12801,'18613',15665,15666,4,0),(12802,'18614',15611,15612,4,0),(12803,'18614',15441,15442,4,0),(12804,'18614',15667,15668,4,0),(12805,'18615',15603,15604,4,0),(12806,'18615',15875,15876,4,0),(12807,'18616',15877,15878,4,0),(12808,'18620',15091,15092,4,0),(12809,'18620',15669,15670,4,0),(12810,'18630',15887,15888,4,0),(12811,'18640',15719,15720,4,0),(12812,'18650',15329,15330,4,0),(12813,'18656',15575,15576,4,0),(12814,'18657',15577,15578,4,0),(12815,'18657',15689,15690,4,0),(12816,'18658',15339,15340,4,0),(12817,'18658',15333,15334,4,0),(12818,'18659',15891,15892,4,0),(12819,'18659',15065,15066,4,0),(12820,'18660',15335,15336,4,0),(12821,'18660',15579,15580,4,0),(12822,'18670',15879,15880,4,0),(12823,'18680',15801,15802,4,0),(12824,'18690',15103,15104,4,0),(12825,'18690',15803,15804,4,0),(12826,'18697',15105,15106,4,0),(12827,'18698',15715,15716,4,0),(12828,'18699',15583,15584,4,0),(12829,'18699',15519,15520,4,0),(12830,'18700',15057,15058,4,0),(12831,'18708',15049,15050,4,0),(12832,'18710',15827,15828,4,0),(12833,'18710',15759,15760,4,0),(12834,'18710',15711,15712,4,0),(12835,'18711',15791,15792,4,0),(12836,'18713',15829,15830,4,0),(12837,'18720',15671,15672,4,0),(12838,'18730',15673,15674,4,0),(12839,'18740',15443,15444,4,0),(12840,'18750',15831,15832,4,0),(12841,'18750',15761,15762,4,0),(12842,'18760',15059,15060,4,0),(12843,'18770',15061,15062,4,0),(12844,'18800',15143,15144,4,0),(12845,'18810',15207,15208,4,0),(12846,'18811',15915,15916,4,0),(12847,'18812',15355,15356,4,0),(12848,'18813',15279,15280,4,0),(12849,'18814',15269,15270,4,0),(12850,'18815',15271,15272,4,0),(12851,'18816',15229,15230,4,0),(12852,'18817',15165,15166,4,0),(12853,'18818',15225,15226,4,0),(12854,'18819',15209,15210,4,0),(12855,'18820',15769,15770,4,0),(12856,'18830',15495,15496,4,0),(12857,'18830',15465,15466,4,0),(12858,'18840',15363,15364,4,0),(12859,'18849',15365,15366,4,0),(12860,'18850',15283,15284,4,0),(12861,'18857',15285,15286,4,0),(12862,'18858',15701,15702,4,0),(12863,'18859',15287,15288,4,0),(12864,'18860',15435,15436,4,0),(12865,'18860',15145,15146,4,0),(12866,'18870',15379,15380,4,0),(12867,'18880',15437,15438,4,0),(12868,'18890',15383,15384,4,0),(12869,'18891',15289,15290,4,0),(12870,'19001',16445,16446,4,0),(12871,'19002',16447,16448,4,0),(12872,'19003',16449,16450,4,0),(12873,'19004',16451,16452,4,0),(12874,'19005',16453,16454,4,0),(12875,'19080',16455,16456,4,0),(12876,'19080',17233,17234,4,0),(12877,'19100',16781,16782,4,0),(12878,'19110',16721,16722,4,0),(12879,'19111',17241,17242,4,0),(12880,'19112',16823,16824,4,0),(12881,'19112',15947,15948,4,0),(12882,'19113',16423,16424,4,0),(12883,'19114',16661,16662,4,0),(12884,'19115',15999,16000,4,0),(12885,'19116',16311,16312,4,0),(12886,'19117',15941,15942,4,0),(12887,'19118',16003,16004,4,0),(12888,'19119',16497,16498,4,0),(12889,'19119',16369,16370,4,0),(12890,'19119',16005,16006,4,0),(12891,'19119',16373,16374,4,0),(12892,'19119',16521,16522,4,0),(12893,'19119',15943,15944,4,0),(12894,'19119',16943,16944,4,0),(12895,'19119',17269,17270,4,0),(12896,'19119',16533,16534,4,0),(12897,'19120',16911,16912,4,0),(12898,'19125',15955,15956,4,0),(12899,'19126',16923,16924,4,0),(12900,'19127',16365,16366,4,0),(12901,'19127',16913,16914,4,0),(12902,'19127',16199,16200,4,0),(12903,'19127',16681,16682,4,0),(12904,'19128',16227,16228,4,0),(12905,'19128',16629,16630,4,0),(12906,'19128',16915,16916,4,0),(12907,'19128',16773,16774,4,0),(12908,'19129',16775,16776,4,0),(12909,'19129',15991,15992,4,0),(12910,'19130',16087,16088,4,0),(12911,'19131',16089,16090,4,0),(12912,'19132',15987,15988,4,0),(12913,'19132',17151,17152,4,0),(12914,'19133',16113,16114,4,0),(12915,'19133',16335,16336,4,0),(12916,'19133',16009,16010,4,0),(12917,'19133',16133,16134,4,0),(12918,'19133',16315,16316,4,0),(12919,'19134',17023,17024,4,0),(12920,'19134',16789,16790,4,0),(12921,'19135',16069,16070,4,0),(12922,'19135',16065,16066,4,0),(12923,'19139',17235,17236,4,0),(12924,'19140',16503,16504,4,0),(12925,'19141',17133,17134,4,0),(12926,'19141',16045,16046,4,0),(12927,'19141',16597,16598,4,0),(12928,'19141',17237,17238,4,0),(12929,'19142',17141,17142,4,0),(12930,'19142',16601,16602,4,0),(12931,'19143',16899,16900,4,0),(12932,'19143',16541,16542,4,0),(12933,'19143',16931,16932,4,0),(12934,'19143',16505,16506,4,0),(12935,'19143',16317,16318,4,0),(12936,'19143',17245,17246,4,0),(12937,'19143',17249,17250,4,0),(12938,'19144',16419,16420,4,0),(12939,'19144',16729,16730,4,0),(12940,'19144',16411,16412,4,0),(12941,'19145',16865,16866,4,0),(12942,'19150',16457,16458,4,0),(12943,'19151',16215,16216,4,0),(12944,'19152',15975,15976,4,0),(12945,'19153',16073,16074,4,0),(12946,'19160',16233,16234,4,0),(12947,'19161',16827,16828,4,0),(12948,'19162',16809,16810,4,0),(12949,'19170',16325,16326,4,0),(12950,'19171',16147,16148,4,0),(12951,'19174',17065,17066,4,0),(12952,'19174',17145,17146,4,0),(12953,'19174',16433,16434,4,0),(12954,'19180',16641,16642,4,0),(12955,'19181',16459,16460,4,0),(12956,'19182',16461,16462,4,0),(12957,'19182',16407,16408,4,0),(12958,'19184',17167,17168,4,0),(12959,'19184',17101,17102,4,0),(12960,'19184',17221,17222,4,0),(12961,'19184',16179,16180,4,0),(12962,'19184',17229,17230,4,0),(12963,'19185',17163,17164,4,0),(12964,'19185',17147,17148,4,0),(12965,'19185',16327,16328,4,0),(12966,'19186',16331,16332,4,0),(12967,'19187',17121,17122,4,0),(12968,'19190',16235,16236,4,0),(12969,'19190',17047,17048,4,0),(12970,'19191',17049,17050,4,0),(12971,'19191',16829,16830,4,0),(12972,'19192',16429,16430,4,0),(12973,'19192',16811,16812,4,0),(12974,'19192',17109,17110,4,0),(12975,'19193',16463,16464,4,0),(12976,'19194',16465,16466,4,0),(12977,'19196',16593,16594,4,0),(12978,'19196',17137,17138,4,0),(12979,'19196',16057,16058,4,0),(12980,'19196',16737,16738,4,0),(12981,'19196',17129,17130,4,0),(12982,'19197',16473,16474,4,0),(12983,'19197',16165,16166,4,0),(12984,'19197',16255,16256,4,0),(12985,'19197',17053,17054,4,0),(12986,'19198',17093,17094,4,0),(12987,'19200',16093,16094,4,0),(12988,'19208',16013,16014,4,0),(12989,'19209',16857,16858,4,0),(12990,'19209',17207,17208,4,0),(12991,'19210',17253,17254,4,0),(12992,'19219',16617,16618,4,0),(12993,'19219',17209,17210,4,0),(12994,'19219',16621,16622,4,0),(12995,'19220',16525,16526,4,0),(12996,'19222',16997,16998,4,0),(12997,'19223',16155,16156,4,0),(12998,'19223',16869,16870,4,0),(12999,'19223',16613,16614,4,0),(13000,'19224',17191,17192,4,0),(13001,'19224',16157,16158,4,0),(13002,'19224',16999,17000,4,0),(13003,'19225',16853,16854,4,0),(13004,'19225',16563,16564,4,0),(13005,'19225',17175,17176,4,0),(13006,'19225',16871,16872,4,0),(13007,'19226',17001,17002,4,0),(13008,'19226',16527,16528,4,0),(13009,'19226',16701,16702,4,0),(13010,'19227',17005,17006,4,0),(13011,'19227',15937,15938,4,0),(13012,'19227',16649,16650,4,0),(13013,'19227',16887,16888,4,0),(13014,'19229',16271,16272,4,0),(13015,'19229',16725,16726,4,0),(13016,'19229',16529,16530,4,0),(13017,'19229',16849,16850,4,0),(13018,'19230',16273,16274,4,0),(13019,'19237',16049,16050,4,0),(13020,'19237',16927,16928,4,0),(13021,'19237',16275,16276,4,0),(13022,'19237',16403,16404,4,0),(13023,'19237',17265,17266,4,0),(13024,'19238',16559,16560,4,0),(13025,'19238',16339,16340,4,0),(13026,'19239',16277,16278,4,0),(13027,'19239',16717,16718,4,0),(13028,'19240',16545,16546,4,0),(13029,'19242',16481,16482,4,0),(13030,'19243',16441,16442,4,0),(13031,'19243',16291,16292,4,0),(13032,'19243',17213,17214,4,0),(13033,'19243',16577,16578,4,0),(13034,'19243',16891,16892,4,0),(13035,'19243',16143,16144,4,0),(13036,'19243',16833,16834,4,0),(13037,'19244',16341,16342,4,0),(13038,'19244',16589,16590,4,0),(13039,'19244',16285,16286,4,0),(13040,'19245',16023,16024,4,0),(13041,'19245',16207,16208,4,0),(13042,'19245',17069,17070,4,0),(13043,'19245',16211,16212,4,0),(13044,'19245',16759,16760,4,0),(13045,'19245',16861,16862,4,0),(13046,'19245',16935,16936,4,0),(13047,'19245',16551,16552,4,0),(13048,'19245',16741,16742,4,0),(13049,'19246',16665,16666,4,0),(13050,'19246',16183,16184,4,0),(13051,'19246',16801,16802,4,0),(13052,'19246',16693,16694,4,0),(13053,'19246',16547,16548,4,0),(13054,'19246',17203,17204,4,0),(13055,'19247',16673,16674,4,0),(13056,'19247',16377,16378,4,0),(13057,'19247',16139,16140,4,0),(13058,'19248',16489,16490,4,0),(13059,'19250',16963,16964,4,0),(13060,'19260',15963,15964,4,0),(13061,'19261',15965,15966,4,0),(13062,'19261',16605,16606,4,0),(13063,'19262',16391,16392,4,0),(13064,'19262',16965,16966,4,0),(13065,'19262',16939,16940,4,0),(13066,'19263',16967,16968,4,0),(13067,'19264',16969,16970,4,0),(13068,'19265',16971,16972,4,0),(13069,'19266',16973,16974,4,0),(13070,'19266',16573,16574,4,0),(13071,'19267',16975,16976,4,0),(13072,'19268',15983,15984,4,0),(13073,'19268',17073,17074,4,0),(13074,'19268',16689,16690,4,0),(13075,'19268',16977,16978,4,0),(13076,'19269',17159,17160,4,0),(13077,'19269',16959,16960,4,0),(13078,'19269',16883,16884,4,0),(13079,'19269',16767,16768,4,0),(13080,'19269',16979,16980,4,0),(13081,'19270',16077,16078,4,0),(13082,'19273',16835,16836,4,0),(13083,'19274',16173,16174,4,0),(13084,'19274',16567,16568,4,0),(13085,'19274',16079,16080,4,0),(13086,'19275',16287,16288,4,0),(13087,'19275',16175,16176,4,0),(13088,'19275',16989,16990,4,0),(13089,'19275',16161,16162,4,0),(13090,'19275',16281,16282,4,0),(13091,'19275',15951,15952,4,0),(13092,'19275',16437,16438,4,0),(13093,'19276',16677,16678,4,0),(13094,'19276',16485,16486,4,0),(13095,'19276',16081,16082,4,0),(13096,'19276',17125,17126,4,0),(13097,'19276',16105,16106,4,0),(13098,'19276',16895,16896,4,0),(13099,'19277',15959,15960,4,0),(13100,'19277',16251,16252,4,0),(13101,'19277',17039,17040,4,0),(13102,'19277',16083,16084,4,0),(13103,'19277',16769,16770,4,0),(13104,'19278',16555,16556,4,0),(13105,'19278',16569,16570,4,0),(13106,'19280',16633,16634,4,0),(13107,'19281',16635,16636,4,0),(13108,'19282',16027,16028,4,0),(13109,'19283',16537,16538,4,0),(13110,'19283',16029,16030,4,0),(13111,'19284',15967,15968,4,0),(13112,'19285',16259,16260,4,0),(13113,'19285',16609,16610,4,0),(13114,'19286',16035,16036,4,0),(13115,'19286',16657,16658,4,0),(13116,'19287',16415,16416,4,0),(13117,'19287',17013,17014,4,0),(13118,'19287',16037,16038,4,0),(13119,'19287',16685,16686,4,0),(13120,'19287',16387,16388,4,0),(13121,'19287',16637,16638,4,0),(13122,'19290',16395,16396,4,0),(13123,'19292',16295,16296,4,0),(13124,'19292',16379,16380,4,0),(13125,'19294',16625,16626,4,0),(13126,'19294',16191,16192,4,0),(13127,'19294',17217,17218,4,0),(13128,'19294',16653,16654,4,0),(13129,'19295',16513,16514,4,0),(13130,'19295',16097,16098,4,0),(13131,'19295',17195,17196,4,0),(13132,'19295',16981,16982,4,0),(13133,'19300',16705,16706,4,0),(13134,'19310',16219,16220,4,0),(13135,'19310',16223,16224,4,0),(13136,'19310',15971,15972,4,0),(13137,'19311',16755,16756,4,0),(13138,'19312',17027,17028,4,0),(13139,'19312',16805,16806,4,0),(13140,'19312',17105,17106,4,0),(13141,'19313',16793,16794,4,0),(13142,'19314',17009,17010,4,0),(13143,'19315',16669,16670,4,0),(13144,'19320',16017,16018,4,0),(13145,'19321',16019,16020,4,0),(13146,'19323',17043,17044,4,0),(13147,'19324',16955,16956,4,0),(13148,'19325',16815,16816,4,0),(13149,'19325',15929,15930,4,0),(13150,'19325',17035,17036,4,0),(13151,'19326',16349,16350,4,0),(13152,'19327',16345,16346,4,0),(13153,'19328',16733,16734,4,0),(13154,'19328',16195,16196,4,0),(13155,'19328',16493,16494,4,0),(13156,'19332',15979,15980,4,0),(13157,'19332',17015,17016,4,0),(13158,'19332',16697,16698,4,0),(13159,'19332',17225,17226,4,0),(13160,'19333',17017,17018,4,0),(13161,'19334',17019,17020,4,0),(13162,'19334',16299,16300,4,0),(13163,'19336',16763,16764,4,0),(13164,'19337',17089,17090,4,0),(13165,'19338',17097,17098,4,0),(13166,'19339',16903,16904,4,0),(13167,'19339',16361,16362,4,0),(13168,'19340',16879,16880,4,0),(13169,'19341',16301,16302,4,0),(13170,'19342',16477,16478,4,0),(13171,'19343',16303,16304,4,0),(13172,'19345',17081,17082,4,0),(13173,'19346',16947,16948,4,0),(13174,'19346',16951,16952,4,0),(13175,'19350',16707,16708,4,0),(13176,'19351',16709,16710,4,0),(13177,'19352',16839,16840,4,0),(13178,'19353',16841,16842,4,0),(13179,'19354',16843,16844,4,0),(13180,'19355',17057,17058,4,0),(13181,'19357',16041,16042,4,0),(13182,'19360',16151,16152,4,0),(13183,'19361',16581,16582,4,0),(13184,'19362',16711,16712,4,0),(13185,'19363',16713,16714,4,0),(13186,'19390',17183,17184,4,0),(13187,'19390',16399,16400,4,0),(13188,'19390',17031,17032,4,0),(13189,'19390',16425,16426,4,0),(13190,'19390',16101,16102,4,0),(13191,'19390',16305,16306,4,0),(13192,'19391',16845,16846,4,0),(13193,'19391',16203,16204,4,0),(13194,'19391',17085,17086,4,0),(13195,'19392',16307,16308,4,0),(13196,'19400',16117,16118,4,0),(13197,'19410',16119,16120,4,0),(13198,'19411',16121,16122,4,0),(13199,'19411',17179,17180,4,0),(13200,'19412',16187,16188,4,0),(13201,'19412',16123,16124,4,0),(13202,'19412',17155,17156,4,0),(13203,'19413',16125,16126,4,0),(13204,'19414',16127,16128,4,0),(13205,'19420',16239,16240,4,0),(13206,'19428',16241,16242,4,0),(13207,'19429',16243,16244,4,0),(13208,'19431',16245,16246,4,0),(13209,'19431',17061,17062,4,0),(13210,'19431',16169,16170,4,0),(13211,'19432',16745,16746,4,0),(13212,'19432',16907,16908,4,0),(13213,'19432',17075,17076,4,0),(13214,'19432',15921,15922,4,0),(13215,'19441',16875,16876,4,0),(13216,'19441',16517,16518,4,0),(13217,'19442',15925,15926,4,0),(13218,'19443',16919,16920,4,0),(13219,'19443',16749,16750,4,0),(13220,'19443',16263,16264,4,0),(13221,'19444',17257,17258,4,0),(13222,'19444',16751,16752,4,0),(13223,'19445',16031,16032,4,0),(13224,'19445',16993,16994,4,0),(13225,'19445',16509,16510,4,0),(13226,'19445',16383,16384,4,0),(13227,'19450',17113,17114,4,0),(13228,'19458',17115,17116,4,0),(13229,'19459',16247,16248,4,0),(13230,'19459',16135,16136,4,0),(13231,'19460',17199,17200,4,0),(13232,'19461',17259,17260,4,0),(13233,'19461',16061,16062,4,0),(13234,'19462',16785,16786,4,0),(13235,'19463',16819,16820,4,0),(13236,'19490',15933,15934,4,0),(13237,'19490',16645,16646,4,0),(13238,'19490',16129,16130,4,0),(13239,'19490',17171,17172,4,0),(13240,'19490',15995,15996,4,0),(13241,'19490',16109,16110,4,0),(13242,'19490',16267,16268,4,0),(13243,'19491',16469,16470,4,0),(13244,'19491',16985,16986,4,0),(13245,'19491',16585,16586,4,0),(13246,'19491',16357,16358,4,0),(13247,'19491',17077,17078,4,0),(13248,'19492',17187,17188,4,0),(13249,'19492',16777,16778,4,0),(13250,'19492',17117,17118,4,0),(13251,'19492',16053,16054,4,0),(13252,'19492',16353,16354,4,0),(13253,'19493',16797,16798,4,0),(13254,'19495',17261,17262,4,0),(13255,'19680',15805,15806,4,0),(13256,'20001',17409,17410,4,0),(13257,'20002',17411,17412,4,0),(13258,'20003',17413,17414,4,0),(13259,'20004',17415,17416,4,0),(13260,'20005',17417,17418,4,0),(13261,'20006',17419,17420,4,0),(13262,'20007',17421,17422,4,0),(13263,'20008',17423,17424,4,0),(13264,'20009',17425,17426,4,0),(13265,'20010',17427,17428,4,0),(13266,'20011',17429,17430,4,0),(13267,'20012',17431,17432,4,0),(13268,'20013',17433,17434,4,0),(13269,'20014',17435,17436,4,0),(13270,'20015',17437,17438,4,0),(13271,'20016',17439,17440,4,0),(13272,'20017',17441,17442,4,0),(13273,'20018',17443,17444,4,0),(13274,'20100',17469,17470,4,0),(13275,'20100',17445,17446,4,0),(13276,'20100',17583,17584,4,0),(13277,'20110',17641,17642,4,0),(13278,'20115',17347,17348,4,0),(13279,'20120',17505,17506,4,0),(13280,'20128',17507,17508,4,0),(13281,'20130',17663,17664,4,0),(13282,'20130',17671,17672,4,0),(13283,'20140',17317,17318,4,0),(13284,'20150',17279,17280,4,0),(13285,'20150',17677,17678,4,0),(13286,'20159',17343,17344,4,0),(13287,'20159',17551,17552,4,0),(13288,'20159',17703,17704,4,0),(13289,'20160',17447,17448,4,0),(13290,'20160',17555,17556,4,0),(13291,'20170',17673,17674,4,0),(13292,'20180',17603,17604,4,0),(13293,'20200',17367,17368,4,0),(13294,'20210',17559,17560,4,0),(13295,'20211',17351,17352,4,0),(13296,'20212',17607,17608,4,0),(13297,'20213',17523,17524,4,0),(13298,'20214',17595,17596,4,0),(13299,'20214',17693,17694,4,0),(13300,'20214',17645,17646,4,0),(13301,'20215',17689,17690,4,0),(13302,'20216',17637,17638,4,0),(13303,'20217',17489,17490,4,0),(13304,'20218',17483,17484,4,0),(13305,'20220',17567,17568,4,0),(13306,'20230',17569,17570,4,0),(13307,'20240',17621,17622,4,0),(13308,'20247',17681,17682,4,0),(13309,'20248',17305,17306,4,0),(13310,'20248',17493,17494,4,0),(13311,'20248',17329,17330,4,0),(13312,'20249',17547,17548,4,0),(13313,'20250',17573,17574,4,0),(13314,'20259',17363,17364,4,0),(13315,'20260',17297,17298,4,0),(13316,'20267',17527,17528,4,0),(13317,'20267',17653,17654,4,0),(13318,'20268',17655,17656,4,0),(13319,'20268',17309,17310,4,0),(13320,'20268',17313,17314,4,0),(13321,'20269',17275,17276,4,0),(13322,'20269',17625,17626,4,0),(13323,'20270',17321,17322,4,0),(13324,'20271',17543,17544,4,0),(13325,'20280',17515,17516,4,0),(13326,'20301',17531,17532,4,0),(13327,'20302',17533,17534,4,0),(13328,'20303',17535,17536,4,0),(13329,'20304',17537,17538,4,0),(13330,'20305',17539,17540,4,0),(13331,'20400',17657,17658,4,0),(13332,'20400',17519,17520,4,0),(13333,'20490',17629,17630,4,0),(13334,'20490',17587,17588,4,0),(13335,'20491',17375,17376,4,0),(13336,'20491',17497,17498,4,0),(13337,'20491',17563,17564,4,0),(13338,'20492',17379,17380,4,0),(13339,'20493',17395,17396,4,0),(13340,'20493',17455,17456,4,0),(13341,'20493',17381,17382,4,0),(13342,'20494',17301,17302,4,0),(13343,'20494',17659,17660,4,0),(13344,'20494',17511,17512,4,0),(13345,'20495',17293,17294,4,0),(13346,'20496',17399,17400,4,0),(13347,'20500',17337,17338,4,0),(13348,'20509',17339,17340,4,0),(13349,'20530',17477,17478,4,0),(13350,'20530',17577,17578,4,0),(13351,'20540',17479,17480,4,0),(13352,'20550',17333,17334,4,0),(13353,'20560',17611,17612,4,0),(13354,'20567',17613,17614,4,0),(13355,'20568',17615,17616,4,0),(13356,'20569',17385,17386,4,0),(13357,'20569',17617,17618,4,0),(13358,'20570',17387,17388,4,0),(13359,'20577',17325,17326,4,0),(13360,'20578',17389,17390,4,0),(13361,'20580',17391,17392,4,0),(13362,'20590',17649,17650,4,0),(13363,'20600',17451,17452,4,0),(13364,'20690',17459,17460,4,0),(13365,'20700',17667,17668,4,0),(13366,'20700',17711,17712,4,0),(13367,'20709',17485,17486,4,0),(13368,'20720',17355,17356,4,0),(13369,'20730',17359,17360,4,0),(13370,'20737',17473,17474,4,0),(13371,'20739',17371,17372,4,0),(13372,'20740',17697,17698,4,0),(13373,'20749',17289,17290,4,0),(13374,'20749',17699,17700,4,0),(13375,'20750',17707,17708,4,0),(13376,'20800',17685,17686,4,0),(13377,'20808',17501,17502,4,0),(13378,'20809',17283,17284,4,0),(13379,'20810',17633,17634,4,0),(13380,'20810',17285,17286,4,0),(13381,'20820',17403,17404,4,0),(13382,'20829',17405,17406,4,0),(13383,'20830',17599,17600,4,0),(13384,'20850',17591,17592,4,0),(13385,'20860',17463,17464,4,0),(13386,'20870',17465,17466,4,0),(13387,'21000',17951,17952,4,0),(13388,'21001',17953,17954,4,0),(13389,'21002',17955,17956,4,0),(13390,'21003',17957,17958,4,0),(13391,'21004',17959,17960,4,0),(13392,'21005',17961,17962,4,0),(13393,'21006',17963,17964,4,0),(13394,'21007',17965,17966,4,0),(13395,'21009',17791,17792,4,0),(13396,'21100',17721,17722,4,0),(13397,'21100',18073,18074,4,0),(13398,'21110',17723,17724,4,0),(13399,'21110',18075,18076,4,0),(13400,'21120',17725,17726,4,0),(13401,'21122',17727,17728,4,0),(13402,'21130',18043,18044,4,0),(13403,'21130',18029,18030,4,0),(13404,'21193',23271,23272,4,0),(13405,'21200',17765,17766,4,0),(13406,'21207',17767,17768,4,0),(13407,'21207',18007,18008,4,0),(13408,'21208',17769,17770,4,0),(13409,'21208',18011,18012,4,0),(13410,'21208',17883,17884,4,0),(13411,'21209',17871,17872,4,0),(13412,'21209',18069,18070,4,0),(13413,'21209',17771,17772,4,0),(13414,'21210',18167,18168,4,0),(13415,'21220',17939,17940,4,0),(13416,'21230',17875,17876,4,0),(13417,'21239',18109,18110,4,0),(13418,'21239',17877,17878,4,0),(13419,'21239',17775,17776,4,0),(13420,'21240',17777,17778,4,0),(13421,'21248',17779,17780,4,0),(13422,'21250',18085,18086,4,0),(13423,'21260',18119,18120,4,0),(13424,'21270',17833,17834,4,0),(13425,'21280',17787,17788,4,0),(13426,'21290',17981,17982,4,0),(13427,'21290',17731,17732,4,0),(13428,'21291',17991,17992,4,0),(13429,'21291',17805,17806,4,0),(13430,'21291',17931,17932,4,0),(13431,'21291',18129,18130,4,0),(13432,'21292',17863,17864,4,0),(13433,'21292',17927,17928,4,0),(13434,'21300',17837,17838,4,0),(13435,'21309',17839,17840,4,0),(13436,'21310',17841,17842,4,0),(13437,'21319',17843,17844,4,0),(13438,'21320',17907,17908,4,0),(13439,'21330',17879,17880,4,0),(13440,'21330',17909,17910,4,0),(13441,'21330',17733,17734,4,0),(13442,'21340',17781,17782,4,0),(13443,'21340',17717,17718,4,0),(13444,'21342',17735,17736,4,0),(13445,'21350',17737,17738,4,0),(13446,'21359',18111,18112,4,0),(13447,'21359',17739,17740,4,0),(13448,'21360',17983,17984,4,0),(13449,'21380',17895,17896,4,0),(13450,'21386',17891,17892,4,0),(13451,'21387',17887,17888,4,0),(13452,'21388',17943,17944,4,0),(13453,'21388',17851,17852,4,0),(13454,'21390',17919,17920,4,0),(13455,'21400',17969,17970,4,0),(13456,'21400',17999,18000,4,0),(13457,'21400',17793,17794,4,0),(13458,'21409',17795,17796,4,0),(13459,'21410',17971,17972,4,0),(13460,'21420',17797,17798,4,0),(13461,'21420',17973,17974,4,0),(13462,'21430',17975,17976,4,0),(13463,'21440',17799,17800,4,0),(13464,'21440',18001,18002,4,0),(13465,'21449',18003,18004,4,0),(13466,'21450',17855,17856,4,0),(13467,'21459',17857,17858,4,0),(13468,'21459',18077,18078,4,0),(13469,'21460',17977,17978,4,0),(13470,'21500',17935,17936,4,0),(13471,'21510',18089,18090,4,0),(13472,'21520',18091,18092,4,0),(13473,'21520',17759,17760,4,0),(13474,'21530',17761,17762,4,0),(13475,'21540',17859,17860,4,0),(13476,'21540',18149,18150,4,0),(13477,'21550',18063,18064,4,0),(13478,'21559',18065,18066,4,0),(13479,'21560',18059,18060,4,0),(13480,'21570',18115,18116,4,0),(13481,'21580',17783,17784,4,0),(13482,'21580',17829,17830,4,0),(13483,'21580',17911,17912,4,0),(13484,'21590',18137,18138,4,0),(13485,'21591',18101,18102,4,0),(13486,'21592',18145,18146,4,0),(13487,'21593',17899,17900,4,0),(13488,'21594',17915,17916,4,0),(13489,'21595',18105,18106,4,0),(13490,'21600',18133,18134,4,0),(13491,'21609',17807,17808,4,0),(13492,'21610',18095,18096,4,0),(13493,'21620',18121,18122,4,0),(13494,'21620',18125,18126,4,0),(13495,'21630',17809,17810,4,0),(13496,'21639',18097,18098,4,0),(13497,'21639',17811,17812,4,0),(13498,'21640',18157,18158,4,0),(13499,'21646',17741,17742,4,0),(13500,'21647',17815,17816,4,0),(13501,'21647',18159,18160,4,0),(13502,'21649',18161,18162,4,0),(13503,'21660',18023,18024,4,0),(13504,'21667',18025,18026,4,0),(13505,'21668',17987,17988,4,0),(13506,'21668',18163,18164,4,0),(13507,'21668',17847,17848,4,0),(13508,'21669',17743,17744,4,0),(13509,'21670',18035,18036,4,0),(13510,'21700',17995,17996,4,0),(13511,'21710',17821,17822,4,0),(13512,'21710',17747,17748,4,0),(13513,'21720',18081,18082,4,0),(13514,'21730',17749,17750,4,0),(13515,'21739',17751,17752,4,0),(13516,'21740',17947,17948,4,0),(13517,'21750',17753,17754,4,0),(13518,'21760',17755,17756,4,0),(13519,'21800',18045,18046,4,0),(13520,'21800',18031,18032,4,0),(13521,'21810',18047,18048,4,0),(13522,'21819',18049,18050,4,0),(13523,'21820',18015,18016,4,0),(13524,'21830',17825,17826,4,0),(13525,'21840',18039,18040,4,0),(13526,'21850',18153,18154,4,0),(13527,'21860',18141,18142,4,0),(13528,'21870',17923,17924,4,0),(13529,'21880',18053,18054,4,0),(13530,'21888',18055,18056,4,0),(13531,'21890',18019,18020,4,0),(13532,'21891',17867,17868,4,0),(13533,'22000',18757,18758,4,0),(13534,'22001',18759,18760,4,0),(13535,'22002',18761,18762,4,0),(13536,'22003',18763,18764,4,0),(13537,'22004',18765,18766,4,0),(13538,'22005',18767,18768,4,0),(13539,'22006',18769,18770,4,0),(13540,'22080',18771,18772,4,0),(13541,'22090',18773,18774,4,0),(13542,'22092',18775,18776,4,0),(13543,'22094',18777,18778,4,0),(13544,'22097',18779,18780,4,0),(13545,'22100',19183,19184,4,0),(13546,'22110',19241,19242,4,0),(13547,'22110',19153,19154,4,0),(13548,'22111',18959,18960,4,0),(13549,'22112',18227,18228,4,0),(13550,'22113',18989,18990,4,0),(13551,'22120',19249,19250,4,0),(13552,'22121',19251,19252,4,0),(13553,'22122',18791,18792,4,0),(13554,'22122',19253,19254,4,0),(13555,'22122',18295,18296,4,0),(13556,'22123',18297,18298,4,0),(13557,'22124',18911,18912,4,0),(13558,'22125',18873,18874,4,0),(13559,'22126',18893,18894,4,0),(13560,'22130',19029,19030,4,0),(13561,'22131',19031,19032,4,0),(13562,'22131',18425,18426,4,0),(13563,'22132',19313,19314,4,0),(13564,'22132',19053,19054,4,0),(13565,'22132',18383,18384,4,0),(13566,'22133',18309,18310,4,0),(13567,'22133',18479,18480,4,0),(13568,'22133',18299,18300,4,0),(13569,'22134',18481,18482,4,0),(13570,'22135',18245,18246,4,0),(13571,'22135',18321,18322,4,0),(13572,'22140',18937,18938,4,0),(13573,'22141',18939,18940,4,0),(13574,'22141',18437,18438,4,0),(13575,'22141',18565,18566,4,0),(13576,'22142',18567,18568,4,0),(13577,'22143',18173,18174,4,0),(13578,'22144',18439,18440,4,0),(13579,'22145',18287,18288,4,0),(13580,'22146',19199,19200,4,0),(13581,'22147',18175,18176,4,0),(13582,'22147',18185,18186,4,0),(13583,'22148',18625,18626,4,0),(13584,'22148',18387,18388,4,0),(13585,'22149',18193,18194,4,0),(13586,'22149',18389,18390,4,0),(13587,'22150',18325,18326,4,0),(13588,'22160',18859,18860,4,0),(13589,'22161',18861,18862,4,0),(13590,'22162',18863,18864,4,0),(13591,'22190',19363,19364,4,0),(13592,'22191',19097,19098,4,0),(13593,'22192',18941,18942,4,0),(13594,'22192',19281,19282,4,0),(13595,'22193',18795,18796,4,0),(13596,'22193',18993,18994,4,0),(13597,'22194',18621,18622,4,0),(13598,'22194',18781,18782,4,0),(13599,'22194',18261,18262,4,0),(13600,'22194',18369,18370,4,0),(13601,'22195',18783,18784,4,0),(13602,'22196',18785,18786,4,0),(13603,'22196',18961,18962,4,0),(13604,'22197',18787,18788,4,0),(13605,'22200',19211,19212,4,0),(13606,'22210',18751,18752,4,0),(13607,'22211',18753,18754,4,0),(13608,'22212',18877,18878,4,0),(13609,'22212',18555,18556,4,0),(13610,'22212',18235,18236,4,0),(13611,'22213',18885,18886,4,0),(13612,'22213',19213,19214,4,0),(13613,'22214',18879,18880,4,0),(13614,'22215',19215,19216,4,0),(13615,'22215',18587,18588,4,0),(13616,'22215',19033,19034,4,0),(13617,'22216',19067,19068,4,0),(13618,'22216',18887,18888,4,0),(13619,'22220',18219,18220,4,0),(13620,'22221',19217,19218,4,0),(13621,'22222',18571,18572,4,0),(13622,'22223',19325,19326,4,0),(13623,'22225',18703,18704,4,0),(13624,'22230',19233,19234,4,0),(13625,'22231',19375,19376,4,0),(13626,'22232',19003,19004,4,0),(13627,'22233',18613,18614,4,0),(13628,'22234',18365,18366,4,0),(13629,'22240',19269,19270,4,0),(13630,'22250',18889,18890,4,0),(13631,'22251',18257,18258,4,0),(13632,'22252',19101,19102,4,0),(13633,'22253',19237,19238,4,0),(13634,'22254',19297,19298,4,0),(13635,'22255',19317,19318,4,0),(13636,'22255',18379,18380,4,0),(13637,'22255',18231,18232,4,0),(13638,'22255',18705,18706,4,0),(13639,'22255',18281,18282,4,0),(13640,'22260',18707,18708,4,0),(13641,'22268',18709,18710,4,0),(13642,'22268',19321,19322,4,0),(13643,'22268',19057,19058,4,0),(13644,'22268',18881,18882,4,0),(13645,'22269',18283,18284,4,0),(13646,'22269',18711,18712,4,0),(13647,'22270',18269,18270,4,0),(13648,'22280',18735,18736,4,0),(13649,'22281',18737,18738,4,0),(13650,'22282',18239,18240,4,0),(13651,'22283',18241,18242,4,0),(13652,'22283',18271,18272,4,0),(13653,'22300',18373,18374,4,0),(13654,'22310',18583,18584,4,0),(13655,'22311',19045,19046,4,0),(13656,'22311',18341,18342,4,0),(13657,'22311',18345,18346,4,0),(13658,'22312',18745,18746,4,0),(13659,'22312',18629,18630,4,0),(13660,'22313',18603,18604,4,0),(13661,'22313',19071,19072,4,0),(13662,'22313',19201,19202,4,0),(13663,'22314',19143,19144,4,0),(13664,'22314',19149,19150,4,0),(13665,'22315',18375,18376,4,0),(13666,'22315',18747,18748,4,0),(13667,'22320',18391,18392,4,0),(13668,'22320',18983,18984,4,0),(13669,'22330',18195,18196,4,0),(13670,'22336',18197,18198,4,0),(13671,'22336',18843,18844,4,0),(13672,'22337',18679,18680,4,0),(13673,'22337',19013,19014,4,0),(13674,'22337',18845,18846,4,0),(13675,'22338',18635,18636,4,0),(13676,'22339',18199,18200,4,0),(13677,'22340',18485,18486,4,0),(13678,'22347',18487,18488,4,0),(13679,'22348',18489,18490,4,0),(13680,'22349',18811,18812,4,0),(13681,'22349',18491,18492,4,0),(13682,'22349',18201,18202,4,0),(13683,'22350',18429,18430,4,0),(13684,'22351',18431,18432,4,0),(13685,'22360',18869,18870,4,0),(13686,'22361',18929,18930,4,0),(13687,'22362',19087,19088,4,0),(13688,'22363',19089,19090,4,0),(13689,'22364',19273,19274,4,0),(13690,'22365',18433,18434,4,0),(13691,'22365',19275,19276,4,0),(13692,'22366',19277,19278,4,0),(13693,'22366',19061,19062,4,0),(13694,'22367',18699,18700,4,0),(13695,'22367',19171,19172,4,0),(13696,'22367',19063,19064,4,0),(13697,'22370',18505,18506,4,0),(13698,'22371',18665,18666,4,0),(13699,'22372',18507,18508,4,0),(13700,'22372',18667,18668,4,0),(13701,'22373',18509,18510,4,0),(13702,'22373',18669,18670,4,0),(13703,'22374',18511,18512,4,0),(13704,'22375',18661,18662,4,0),(13705,'22375',18513,18514,4,0),(13706,'22376',19289,19290,4,0),(13707,'22377',19291,19292,4,0),(13708,'22378',19293,19294,4,0),(13709,'22390',18631,18632,4,0),(13710,'22391',19221,19222,4,0),(13711,'22392',18179,18180,4,0),(13712,'22392',19105,19106,4,0),(13713,'22393',18985,18986,4,0),(13714,'22393',18181,18182,4,0),(13715,'22394',18847,18848,4,0),(13716,'22394',18203,18204,4,0),(13717,'22395',18205,18206,4,0),(13718,'22400',17801,17802,4,0),(13719,'22400',18975,18976,4,0),(13720,'22410',18253,18254,4,0),(13721,'22411',19175,19176,4,0),(13722,'22412',19177,19178,4,0),(13723,'22413',19179,19180,4,0),(13724,'22414',18977,18978,4,0),(13725,'22415',18799,18800,4,0),(13726,'22415',18979,18980,4,0),(13727,'22416',18265,18266,4,0),(13728,'22416',19093,19094,4,0),(13729,'22417',18275,18276,4,0),(13730,'22417',18673,18674,4,0),(13731,'22420',18277,18278,4,0),(13732,'22421',18337,18338,4,0),(13733,'22422',18675,18676,4,0),(13734,'22423',18647,18648,4,0),(13735,'22424',18643,18644,4,0),(13736,'22430',18715,18716,4,0),(13737,'22435',18855,18856,4,0),(13738,'22436',18897,18898,4,0),(13739,'22436',18717,18718,4,0),(13740,'22437',18719,18720,4,0),(13741,'22438',18849,18850,4,0),(13742,'22438',18721,18722,4,0),(13743,'22439',19223,19224,4,0),(13744,'22439',18999,19000,4,0),(13745,'22440',18411,18412,4,0),(13746,'22449',18413,18414,4,0),(13747,'22450',18525,18526,4,0),(13748,'22450',18681,18682,4,0),(13749,'22451',18527,18528,4,0),(13750,'22451',18683,18684,4,0),(13751,'22451',19301,19302,4,0),(13752,'22451',19329,19330,4,0),(13753,'22451',19343,19344,4,0),(13754,'22452',18851,18852,4,0),(13755,'22452',18685,18686,4,0),(13756,'22460',19049,19050,4,0),(13757,'22460',19205,19206,4,0),(13758,'22461',18723,18724,4,0),(13759,'22461',18493,18494,4,0),(13760,'22461',19207,19208,4,0),(13761,'22462',18803,18804,4,0),(13762,'22462',18687,18688,4,0),(13763,'22463',19227,19228,4,0),(13764,'22464',19229,19230,4,0),(13765,'22465',18575,18576,4,0),(13766,'22465',18617,18618,4,0),(13767,'22466',18577,18578,4,0),(13768,'22466',18469,18470,4,0),(13769,'22467',19367,19368,4,0),(13770,'22467',18579,18580,4,0),(13771,'22467',19245,19246,4,0),(13772,'22467',19135,19136,4,0),(13773,'22468',19137,19138,4,0),(13774,'22469',19139,19140,4,0),(13775,'22469',18415,18416,4,0),(13776,'22470',18471,18472,4,0),(13777,'22471',18919,18920,4,0),(13778,'22472',18921,18922,4,0),(13779,'22473',18923,18924,4,0),(13780,'22473',18965,18966,4,0),(13781,'22474',18967,18968,4,0),(13782,'22474',18925,18926,4,0),(13783,'22480',18725,18726,4,0),(13784,'22480',18559,18560,4,0),(13785,'22481',18727,18728,4,0),(13786,'22482',18805,18806,4,0),(13787,'22483',19345,19346,4,0),(13788,'22483',19303,19304,4,0),(13789,'22483',18807,18808,4,0),(13790,'22484',18419,18420,4,0),(13791,'22484',19305,19306,4,0),(13792,'22485',18421,18422,4,0),(13793,'22486',18969,18970,4,0),(13794,'22486',18497,18498,4,0),(13795,'22487',18971,18972,4,0),(13796,'22500',18465,18466,4,0),(13797,'22510',18459,18460,4,0),(13798,'22511',18461,18462,4,0),(13799,'22512',19167,19168,4,0),(13800,'22513',19037,19038,4,0),(13801,'22514',19039,19040,4,0),(13802,'22520',18691,18692,4,0),(13803,'22528',19349,19350,4,0),(13804,'22529',18693,18694,4,0),(13805,'22530',19389,19390,4,0),(13806,'22531',19007,19008,4,0),(13807,'22532',19009,19010,4,0),(13808,'22533',18397,18398,4,0),(13809,'22534',18215,18216,4,0),(13810,'22535',18639,18640,4,0),(13811,'22536',18399,18400,4,0),(13812,'22540',18291,18292,4,0),(13813,'22549',19261,19262,4,0),(13814,'22549',19353,19354,4,0),(13815,'22549',18401,18402,4,0),(13816,'22550',19263,19264,4,0),(13817,'22558',18223,18224,4,0),(13818,'22559',19265,19266,4,0),(13819,'22560',18249,18250,4,0),(13820,'22569',18349,18350,4,0),(13821,'22569',19041,19042,4,0),(13822,'22570',18607,18608,4,0),(13823,'22570',18531,18532,4,0),(13824,'22571',18361,18362,4,0),(13825,'22572',18609,18610,4,0),(13826,'22572',18651,18652,4,0),(13827,'22580',18405,18406,4,0),(13828,'22583',19257,19258,4,0),(13829,'22583',24511,24512,4,0),(13830,'22583',18317,18318,4,0),(13831,'22584',19075,19076,4,0),(13832,'22584',19357,19358,4,0),(13833,'22584',24513,24514,4,0),(13834,'22585',18393,18394,4,0),(13835,'22585',18695,18696,4,0),(13836,'22585',19145,19146,4,0),(13837,'22585',19285,19286,4,0),(13838,'22585',19359,19360,4,0),(13839,'22585',18597,18598,4,0),(13840,'22586',18915,18916,4,0),(13841,'22587',18599,18600,4,0),(13842,'22587',18561,18562,4,0),(13843,'22587',18955,18956,4,0),(13844,'22588',18729,18730,4,0),(13845,'22589',18407,18408,4,0),(13846,'22589',18653,18654,4,0),(13847,'22590',19309,19310,4,0),(13848,'22591',18545,18546,4,0),(13849,'22592',19025,19026,4,0),(13850,'22600',19107,19108,4,0),(13851,'22609',19109,19110,4,0),(13852,'22610',19111,19112,4,0),(13853,'22610',19379,19380,4,0),(13854,'22611',19381,19382,4,0),(13855,'22612',19113,19114,4,0),(13856,'22613',19115,19116,4,0),(13857,'22613',18443,18444,4,0),(13858,'22620',18813,18814,4,0),(13859,'22620',19117,19118,4,0),(13860,'22621',18815,18816,4,0),(13861,'22621',19119,19120,4,0),(13862,'22622',18995,18996,4,0),(13863,'22622',19121,19122,4,0),(13864,'22623',19123,19124,4,0),(13865,'22624',18517,18518,4,0),(13866,'22625',18519,18520,4,0),(13867,'22630',18445,18446,4,0),(13868,'22636',19125,19126,4,0),(13869,'22636',18447,18448,4,0),(13870,'22637',18449,18450,4,0),(13871,'22638',18451,18452,4,0),(13872,'22639',18453,18454,4,0),(13873,'22639',19385,19386,4,0),(13874,'22640',19157,19158,4,0),(13875,'22650',19017,19018,4,0),(13876,'22660',19159,19160,4,0),(13877,'22661',19019,19020,4,0),(13878,'22662',18741,18742,4,0),(13879,'22662',19021,19022,4,0),(13880,'22663',19161,19162,4,0),(13881,'22664',19163,19164,4,0),(13882,'22665',18455,18456,4,0),(13883,'22666',19127,19128,4,0),(13884,'22700',18817,18818,4,0),(13885,'22710',18591,18592,4,0),(13886,'22710',18819,18820,4,0),(13887,'22711',18821,18822,4,0),(13888,'22712',18823,18824,4,0),(13889,'22713',18825,18826,4,0),(13890,'22714',18827,18828,4,0),(13891,'22714',19129,19130,4,0),(13892,'22715',18829,18830,4,0),(13893,'22720',19333,19334,4,0),(13894,'22725',18303,18304,4,0),(13895,'22728',18305,18306,4,0),(13896,'22729',18657,18658,4,0),(13897,'22730',18313,18314,4,0),(13898,'22731',18839,18840,4,0),(13899,'22732',19335,19336,4,0),(13900,'22740',19337,19338,4,0),(13901,'22750',19079,19080,4,0),(13902,'22751',19081,19082,4,0),(13903,'22751',18353,18354,4,0),(13904,'22752',19187,19188,4,0),(13905,'22753',19083,19084,4,0),(13906,'22760',18355,18356,4,0),(13907,'22761',18357,18358,4,0),(13908,'22770',18535,18536,4,0),(13909,'22771',18537,18538,4,0),(13910,'22772',18539,18540,4,0),(13911,'22773',18541,18542,4,0),(13912,'22790',19339,19340,4,0),(13913,'22791',19189,19190,4,0),(13914,'22791',19193,19194,4,0),(13915,'22792',19195,19196,4,0),(13916,'22800',18329,18330,4,0),(13917,'22807',18331,18332,4,0),(13918,'22807',18475,18476,4,0),(13919,'22808',44187,44188,4,0),(13920,'22808',18899,18900,4,0),(13921,'22808',18189,18190,4,0),(13922,'22809',18945,18946,4,0),(13923,'22809',18333,18334,4,0),(13924,'22809',18933,18934,4,0),(13925,'22810',18865,18866,4,0),(13926,'22810',18949,18950,4,0),(13927,'22811',18951,18952,4,0),(13928,'22820',18901,18902,4,0),(13929,'22821',18903,18904,4,0),(13930,'22822',18905,18906,4,0),(13931,'22830',18907,18908,4,0),(13932,'22830',18521,18522,4,0),(13933,'22830',18831,18832,4,0),(13934,'22830',18731,18732,4,0),(13935,'22850',19131,19132,4,0),(13936,'22850',18833,18834,4,0),(13937,'22860',18593,18594,4,0),(13938,'22860',18209,18210,4,0),(13939,'22860',18501,18502,4,0),(13940,'22870',19371,19372,4,0),(13941,'22880',18549,18550,4,0),(13942,'22888',18551,18552,4,0),(13943,'22889',18835,18836,4,0),(13944,'22889',18211,18212,4,0),(13945,'23001',19661,19662,4,0),(13946,'23002',19663,19664,4,0),(13947,'23003',19665,19666,4,0),(13948,'23004',19667,19668,4,0),(13949,'23005',19669,19670,4,0),(13950,'23006',19671,19672,4,0),(13951,'23007',19673,19674,4,0),(13952,'23008',19675,19676,4,0),(13953,'23009',19677,19678,4,0),(13954,'23100',19753,19754,4,0),(13955,'23110',19803,19804,4,0),(13956,'23120',19517,19518,4,0),(13957,'23130',19523,19524,4,0),(13958,'23140',19787,19788,4,0),(13959,'23150',19933,19934,4,0),(13960,'23159',19935,19936,4,0),(13961,'23160',19743,19744,4,0),(13962,'23170',19707,19708,4,0),(13963,'23180',19605,19606,4,0),(13964,'23190',19805,19806,4,0),(13965,'23191',19535,19536,4,0),(13966,'23192',19537,19538,4,0),(13967,'23193',19519,19520,4,0),(13968,'23194',19679,19680,4,0),(13969,'23196',19681,19682,4,0),(13970,'23196',19937,19938,4,0),(13971,'23200',19699,19700,4,0),(13972,'23210',19613,19614,4,0),(13973,'23211',19531,19532,4,0),(13974,'23212',19701,19702,4,0),(13975,'23213',19843,19844,4,0),(13976,'23214',19703,19704,4,0),(13977,'23214',19477,19478,4,0),(13978,'23215',19427,19428,4,0),(13979,'23220',19941,19942,4,0),(13980,'23230',19449,19450,4,0),(13981,'23239',19451,19452,4,0),(13982,'23240',19783,19784,4,0),(13983,'23250',19867,19868,4,0),(13984,'23260',19541,19542,4,0),(13985,'23264',19565,19566,4,0),(13986,'23265',19775,19776,4,0),(13987,'23266',19777,19778,4,0),(13988,'23267',19779,19780,4,0),(13989,'23268',19567,19568,4,0),(13990,'23269',19569,19570,4,0),(13991,'23270',19891,19892,4,0),(13992,'23280',19483,19484,4,0),(13993,'23289',19455,19456,4,0),(13994,'23289',19485,19486,4,0),(13995,'23290',19851,19852,4,0),(13996,'23291',19853,19854,4,0),(13997,'23292',19625,19626,4,0),(13998,'23293',19875,19876,4,0),(13999,'23293',19627,19628,4,0),(14000,'23294',19855,19856,4,0),(14001,'23294',19877,19878,4,0),(14002,'23295',19879,19880,4,0),(14003,'23296',19857,19858,4,0),(14004,'23297',19859,19860,4,0),(14005,'23298',19861,19862,4,0),(14006,'23300',19949,19950,4,0),(14007,'23310',19951,19952,4,0),(14008,'23311',19871,19872,4,0),(14009,'23312',19953,19954,4,0),(14010,'23314',19921,19922,4,0),(14011,'23315',19955,19956,4,0),(14012,'23320',19909,19910,4,0),(14013,'23330',19965,19966,4,0),(14014,'23337',19629,19630,4,0),(14015,'23338',19651,19652,4,0),(14016,'23339',19967,19968,4,0),(14017,'23340',19881,19882,4,0),(14018,'23340',19457,19458,4,0),(14019,'23350',19819,19820,4,0),(14020,'23359',19821,19822,4,0),(14021,'23360',19717,19718,4,0),(14022,'23369',19719,19720,4,0),(14023,'23370',19791,19792,4,0),(14024,'23379',19883,19884,4,0),(14025,'23380',19887,19888,4,0),(14026,'23390',19505,19506,4,0),(14027,'23391',19917,19918,4,0),(14028,'23392',19609,19610,4,0),(14029,'23393',19975,19976,4,0),(14030,'23400',19923,19924,4,0),(14031,'23410',19839,19840,4,0),(14032,'23411',19461,19462,4,0),(14033,'23412',19833,19834,4,0),(14034,'23413',19925,19926,4,0),(14035,'23420',19527,19528,4,0),(14036,'23430',19835,19836,4,0),(14037,'23440',19463,19464,4,0),(14038,'23450',19645,19646,4,0),(14039,'23460',19795,19796,4,0),(14040,'23468',19797,19798,4,0),(14041,'23469',19927,19928,4,0),(14042,'23469',19555,19556,4,0),(14043,'23470',19573,19574,4,0),(14044,'23470',19557,19558,4,0),(14045,'23476',19711,19712,4,0),(14046,'23477',19575,19576,4,0),(14047,'23478',19863,19864,4,0),(14048,'23479',19713,19714,4,0),(14049,'23479',19559,19560,4,0),(14050,'23480',19825,19826,4,0),(14051,'23485',19561,19562,4,0),(14052,'23485',19813,19814,4,0),(14053,'23485',19799,19800,4,0),(14054,'23486',19815,19816,4,0),(14055,'23486',19621,19622,4,0),(14056,'23487',19641,19642,4,0),(14057,'23488',19827,19828,4,0),(14058,'23488',19589,19590,4,0),(14059,'23489',19829,19830,4,0),(14060,'23490',19731,19732,4,0),(14061,'23490',19647,19648,4,0),(14062,'23499',19943,19944,4,0),(14063,'23500',19695,19696,4,0),(14064,'23509',19929,19930,4,0),(14065,'23510',19895,19896,4,0),(14066,'23519',19747,19748,4,0),(14067,'23519',19897,19898,4,0),(14068,'23520',19495,19496,4,0),(14069,'23528',19749,19750,4,0),(14070,'23529',19755,19756,4,0),(14071,'23529',19465,19466,4,0),(14072,'23529',19497,19498,4,0),(14073,'23529',19979,19980,4,0),(14074,'23530',19691,19692,4,0),(14075,'23537',19489,19490,4,0),(14076,'23538',19395,19396,4,0),(14077,'23539',19467,19468,4,0),(14078,'23539',19491,19492,4,0),(14079,'23540',19913,19914,4,0),(14080,'23550',19509,19510,4,0),(14081,'23560',19635,19636,4,0),(14082,'23568',19501,19502,4,0),(14083,'23569',19637,19638,4,0),(14084,'23569',19631,19632,4,0),(14085,'23590',19511,19512,4,0),(14086,'23591',19727,19728,4,0),(14087,'23591',19513,19514,4,0),(14088,'23600',19763,19764,4,0),(14089,'23610',19599,19600,4,0),(14090,'23611',19617,19618,4,0),(14091,'23612',19847,19848,4,0),(14092,'23614',19765,19766,4,0),(14093,'23615',19767,19768,4,0),(14094,'23616',19601,19602,4,0),(14095,'23620',19771,19772,4,0),(14096,'23628',19583,19584,4,0),(14097,'23628',19551,19552,4,0),(14098,'23629',19655,19656,4,0),(14099,'23630',19981,19982,4,0),(14100,'23638',19983,19984,4,0),(14101,'23639',19683,19684,4,0),(14102,'23640',19901,19902,4,0),(14103,'23650',19905,19906,4,0),(14104,'23657',19579,19580,4,0),(14105,'23658',19687,19688,4,0),(14106,'23659',19971,19972,4,0),(14107,'23660',19419,19420,4,0),(14108,'23669',19421,19422,4,0),(14109,'23670',19545,19546,4,0),(14110,'23680',19399,19400,4,0),(14111,'23684',19401,19402,4,0),(14112,'23685',19403,19404,4,0),(14113,'23685',19423,19424,4,0),(14114,'23686',19405,19406,4,0),(14115,'23686',19591,19592,4,0),(14116,'23687',19407,19408,4,0),(14117,'23688',19409,19410,4,0),(14118,'23689',19411,19412,4,0),(14119,'23690',19593,19594,4,0),(14120,'23691',19413,19414,4,0),(14121,'23691',19595,19596,4,0),(14122,'23692',19415,19416,4,0),(14123,'23693',19547,19548,4,0),(14124,'23700',19733,19734,4,0),(14125,'23710',19473,19474,4,0),(14126,'23711',19479,19480,4,0),(14127,'23712',19657,19658,4,0),(14128,'23713',19945,19946,4,0),(14129,'23713',19735,19736,4,0),(14130,'23720',19585,19586,4,0),(14131,'23730',19959,19960,4,0),(14132,'23740',19431,19432,4,0),(14133,'23746',19723,19724,4,0),(14134,'23747',19469,19470,4,0),(14135,'23747',19433,19434,4,0),(14136,'23748',19435,19436,4,0),(14137,'23749',19437,19438,4,0),(14138,'23749',19961,19962,4,0),(14139,'23750',19445,19446,4,0),(14140,'23760',19441,19442,4,0),(14141,'23770',19759,19760,4,0),(14142,'23780',19739,19740,4,0),(14143,'23790',19809,19810,4,0),(14144,'24001',22355,22356,4,0),(14145,'24002',22357,22358,4,0),(14146,'24003',22359,22360,4,0),(14147,'24003',22551,22552,4,0),(14148,'24004',22361,22362,4,0),(14149,'24005',22363,22364,4,0),(14150,'24006',22365,22366,4,0),(14151,'24007',22367,22368,4,0),(14152,'24008',22369,22370,4,0),(14153,'24009',22371,22372,4,0),(14154,'24009',22725,22726,4,0),(14155,'24010',22373,22374,4,0),(14156,'24010',22727,22728,4,0),(14157,'24100',23133,23134,4,0),(14158,'24110',23135,23136,4,0),(14159,'24111',23137,23138,4,0),(14160,'24112',23139,23140,4,0),(14161,'24113',23141,23142,4,0),(14162,'24114',23143,23144,4,0),(14163,'24120',22875,22876,4,0),(14164,'24121',22853,22854,4,0),(14165,'24122',22139,22140,4,0),(14166,'24123',21999,22000,4,0),(14167,'24124',22805,22806,4,0),(14168,'24124',22877,22878,4,0),(14169,'24125',22879,22880,4,0),(14170,'24126',22673,22674,4,0),(14171,'24126',22881,22882,4,0),(14172,'24127',22675,22676,4,0),(14173,'24127',23041,23042,4,0),(14174,'24130',22455,22456,4,0),(14175,'24131',22677,22678,4,0),(14176,'24132',22679,22680,4,0),(14177,'24133',22681,22682,4,0),(14178,'24133',22457,22458,4,0),(14179,'24134',22683,22684,4,0),(14180,'24134',22459,22460,4,0),(14181,'24135',22461,22462,4,0),(14182,'24136',22463,22464,4,0),(14183,'24137',22465,22466,4,0),(14184,'24138',23145,23146,4,0),(14185,'24139',23147,23148,4,0),(14186,'24140',23149,23150,4,0),(14187,'24141',21937,21938,4,0),(14188,'24142',21939,21940,4,0),(14189,'24143',22743,22744,4,0),(14190,'24143',21941,21942,4,0),(14191,'24144',22745,22746,4,0),(14192,'24145',22747,22748,4,0),(14193,'24145',22859,22860,4,0),(14194,'24146',22861,22862,4,0),(14195,'24148',22387,22388,4,0),(14196,'24149',22389,22390,4,0),(14197,'24150',22173,22174,4,0),(14198,'24150',22777,22778,4,0),(14199,'24150',23121,23122,4,0),(14200,'24151',22779,22780,4,0),(14201,'24152',23111,23112,4,0),(14202,'24153',23123,23124,4,0),(14203,'24154',23125,23126,4,0),(14204,'24155',23127,23128,4,0),(14205,'24156',22965,22966,4,0),(14206,'24160',22233,22234,4,0),(14207,'24161',22235,22236,4,0),(14208,'24161',22153,22154,4,0),(14209,'24162',23295,23296,4,0),(14210,'24163',23129,23130,4,0),(14211,'24163',23297,23298,4,0),(14212,'24164',22237,22238,4,0),(14213,'24165',22239,22240,4,0),(14214,'24166',22241,22242,4,0),(14215,'24170',21785,21786,4,0),(14216,'24170',22057,22058,4,0),(14217,'24171',23305,23306,4,0),(14218,'24171',21787,21788,4,0),(14219,'24172',23323,23324,4,0),(14220,'24172',22049,22050,4,0),(14221,'24172',23235,23236,4,0),(14222,'24174',22051,22052,4,0),(14223,'24175',23237,23238,4,0),(14224,'24190',22375,22376,4,0),(14225,'24190',22729,22730,4,0),(14226,'24191',22731,22732,4,0),(14227,'24192',22377,22378,4,0),(14228,'24192',22485,22486,4,0),(14229,'24193',23273,23274,4,0),(14230,'24194',22847,22848,4,0),(14231,'24195',22967,22968,4,0),(14232,'24195',23275,23276,4,0),(14233,'24196',22855,22856,4,0),(14234,'24197',23277,23278,4,0),(14235,'24198',23061,23062,4,0),(14236,'24199',23311,23312,4,0),(14237,'24200',23051,23052,4,0),(14238,'24205',23053,23054,4,0),(14239,'24206',23155,23156,4,0),(14240,'24206',22989,22990,4,0),(14241,'24206',22011,22012,4,0),(14242,'24206',22213,22214,4,0),(14243,'24207',23157,23158,4,0),(14244,'24207',22445,22446,4,0),(14245,'24208',22499,22500,4,0),(14246,'24209',22251,22252,4,0),(14247,'24209',22501,22502,4,0),(14248,'24210',22413,22414,4,0),(14249,'24212',21927,21928,4,0),(14250,'24217',22419,22420,4,0),(14251,'24218',23001,23002,4,0),(14252,'24218',22415,22416,4,0),(14253,'24219',23299,23300,4,0),(14254,'24220',23009,23010,4,0),(14255,'24221',21957,21958,4,0),(14256,'24222',23261,23262,4,0),(14257,'24223',22431,22432,4,0),(14258,'24223',22503,22504,4,0),(14259,'24223',22209,22210,4,0),(14260,'24224',21933,21934,4,0),(14261,'24224',22149,22150,4,0),(14262,'24224',22505,22506,4,0),(14263,'24225',22111,22112,4,0),(14264,'24225',23251,23252,4,0),(14265,'24225',21961,21962,4,0),(14266,'24226',23301,23302,4,0),(14267,'24226',23313,23314,4,0),(14268,'24227',22969,22970,4,0),(14269,'24228',22971,22972,4,0),(14270,'24230',23045,23046,4,0),(14271,'24231',22069,22070,4,0),(14272,'24231',22487,22488,4,0),(14273,'24232',21793,21794,4,0),(14274,'24233',21795,21796,4,0),(14275,'24233',23199,23200,4,0),(14276,'24234',22347,22348,4,0),(14277,'24234',23201,23202,4,0),(14278,'24235',23265,23266,4,0),(14279,'24236',23267,23268,4,0),(14280,'24237',22763,22764,4,0),(14281,'24237',22885,22886,4,0),(14282,'24237',23165,23166,4,0),(14283,'24238',21775,21776,4,0),(14284,'24238',23205,23206,4,0),(14285,'24239',22081,22082,4,0),(14286,'24240',22821,22822,4,0),(14287,'24248',22955,22956,4,0),(14288,'24248',22339,22340,4,0),(14289,'24249',21851,21852,4,0),(14290,'24249',22547,22548,4,0),(14291,'24249',23331,23332,4,0),(14292,'24249',22341,22342,4,0),(14293,'24250',22071,22072,4,0),(14294,'24250',23047,23048,4,0),(14295,'24251',22489,22490,4,0),(14296,'24251',22073,22074,4,0),(14297,'24251',21797,21798,4,0),(14298,'24252',22767,22768,4,0),(14299,'24252',21853,21854,4,0),(14300,'24252',22957,22958,4,0),(14301,'24253',22975,22976,4,0),(14302,'24257',21875,21876,4,0),(14303,'24270',21993,21994,4,0),(14304,'24271',22383,22384,4,0),(14305,'24272',22085,22086,4,0),(14306,'24273',22351,22352,4,0),(14307,'24273',22087,22088,4,0),(14308,'24274',22687,22688,4,0),(14309,'24275',22689,22690,4,0),(14310,'24275',22807,22808,4,0),(14311,'24276',22809,22810,4,0),(14312,'24277',22811,22812,4,0),(14313,'24280',21835,21836,4,0),(14314,'24281',21837,21838,4,0),(14315,'24282',22733,22734,4,0),(14316,'24282',23063,23064,4,0),(14317,'24283',21995,21996,4,0),(14318,'24284',22949,22950,4,0),(14319,'24285',22633,22634,4,0),(14320,'24285',22951,22952,4,0),(14321,'24285',21839,21840,4,0),(14322,'24286',22255,22256,4,0),(14323,'24287',23289,23290,4,0),(14324,'24287',21841,21842,4,0),(14325,'24288',23291,23292,4,0),(14326,'24288',23281,23282,4,0),(14327,'24290',22791,22792,4,0),(14328,'24291',22427,22428,4,0),(14329,'24292',23069,23070,4,0),(14330,'24293',22275,22276,4,0),(14331,'24294',22229,22230,4,0),(14332,'24300',21825,21826,4,0),(14333,'24310',22199,22200,4,0),(14334,'24310',22919,22920,4,0),(14335,'24311',22201,22202,4,0),(14336,'24312',22259,22260,4,0),(14337,'24312',22203,22204,4,0),(14338,'24313',22261,22262,4,0),(14339,'24314',22037,22038,4,0),(14340,'24315',22205,22206,4,0),(14341,'24315',21827,21828,4,0),(14342,'24316',22039,22040,4,0),(14343,'24317',22921,22922,4,0),(14344,'24318',21829,21830,4,0),(14345,'24319',21831,21832,4,0),(14346,'24319',22469,22470,4,0),(14347,'24319',22263,22264,4,0),(14348,'24320',22711,22712,4,0),(14349,'24323',23071,23072,4,0),(14350,'24323',22045,22046,4,0),(14351,'24324',23057,23058,4,0),(14352,'24324',22279,22280,4,0),(14353,'24325',21857,21858,4,0),(14354,'24325',22225,22226,4,0),(14355,'24326',22713,22714,4,0),(14356,'24327',23325,23326,4,0),(14357,'24328',22715,22716,4,0),(14358,'24328',23327,23328,4,0),(14359,'24328',22053,22054,4,0),(14360,'24329',22343,22344,4,0),(14361,'24329',22717,22718,4,0),(14362,'24330',22829,22830,4,0),(14363,'24339',22831,22832,4,0),(14364,'24339',23247,23248,4,0),(14365,'24340',22247,22248,4,0),(14366,'24341',22185,22186,4,0),(14367,'24342',21953,21954,4,0),(14368,'24343',22167,22168,4,0),(14369,'24343',22815,22816,4,0),(14370,'24344',22817,22818,4,0),(14371,'24344',23223,23224,4,0),(14372,'24344',23307,23308,4,0),(14373,'24344',22169,22170,4,0),(14374,'24345',22833,22834,4,0),(14375,'24346',23089,23090,4,0),(14376,'24347',22491,22492,4,0),(14377,'24347',23091,23092,4,0),(14378,'24350',23283,23284,4,0),(14379,'24356',21919,21920,4,0),(14380,'24356',23317,23318,4,0),(14381,'24357',21921,21922,4,0),(14382,'24358',23285,23286,4,0),(14383,'24359',22755,22756,4,0),(14384,'24359',22737,22738,4,0),(14385,'24360',23187,23188,4,0),(14386,'24367',23189,23190,4,0),(14387,'24368',23191,23192,4,0),(14388,'24369',23193,23194,4,0),(14389,'24370',22923,22924,4,0),(14390,'24374',22265,22266,4,0),(14391,'24374',22925,22926,4,0),(14392,'24375',22267,22268,4,0),(14393,'24376',22269,22270,4,0),(14394,'24377',22271,22272,4,0),(14395,'24378',22927,22928,4,0),(14396,'24379',22929,22930,4,0),(14397,'24379',23195,23196,4,0),(14398,'24380',22619,22620,4,0),(14399,'24384',22621,22622,4,0),(14400,'24385',22623,22624,4,0),(14401,'24386',22625,22626,4,0),(14402,'24387',22627,22628,4,0),(14403,'24388',21845,21846,4,0),(14404,'24389',21847,21848,4,0),(14405,'24389',22629,22630,4,0),(14406,'24390',21981,21982,4,0),(14407,'24391',22849,22850,4,0),(14408,'24391',22075,22076,4,0),(14409,'24391',23065,23066,4,0),(14410,'24392',23161,23162,4,0),(14411,'24392',22077,22078,4,0),(14412,'24392',22089,22090,4,0),(14413,'24393',22091,22092,4,0),(14414,'24393',21923,21924,4,0),(14415,'24393',22825,22826,4,0),(14416,'24394',23013,23014,4,0),(14417,'24395',23015,23016,4,0),(14418,'24395',22757,22758,4,0),(14419,'24396',22407,22408,4,0),(14420,'24397',22635,22636,4,0),(14421,'24397',22409,22410,4,0),(14422,'24398',22449,22450,4,0),(14423,'24398',22107,22108,4,0),(14424,'24398',22041,22042,4,0),(14425,'24400',22553,22554,4,0),(14426,'24401',22555,22556,4,0),(14427,'24402',22557,22558,4,0),(14428,'24403',22559,22560,4,0),(14429,'24404',22561,22562,4,0),(14430,'24410',21801,21802,4,0),(14431,'24410',21965,21966,4,0),(14432,'24411',22563,22564,4,0),(14433,'24412',21929,21930,4,0),(14434,'24413',22451,22452,4,0),(14435,'24413',22565,22566,4,0),(14436,'24414',22567,22568,4,0),(14437,'24415',22569,22570,4,0),(14438,'24416',22571,22572,4,0),(14439,'24420',22189,22190,4,0),(14440,'24424',22573,22574,4,0),(14441,'24428',22191,22192,4,0),(14442,'24429',22543,22544,4,0),(14443,'24429',22193,22194,4,0),(14444,'24430',23075,23076,4,0),(14445,'24433',21969,21970,4,0),(14446,'24434',22195,22196,4,0),(14447,'24434',23077,23078,4,0),(14448,'24435',23079,23080,4,0),(14449,'24436',23081,23082,4,0),(14450,'24437',23083,23084,4,0),(14451,'24438',22903,22904,4,0),(14452,'24438',21861,21862,4,0),(14453,'24439',22771,22772,4,0),(14454,'24439',23085,23086,4,0),(14455,'24440',22003,22004,4,0),(14456,'24441',22005,22006,4,0),(14457,'24441',22889,22890,4,0),(14458,'24442',21971,21972,4,0),(14459,'24442',22007,22008,4,0),(14460,'24443',21895,21896,4,0),(14461,'24444',21897,21898,4,0),(14462,'24445',22599,22600,4,0),(14463,'24446',22601,22602,4,0),(14464,'24447',22603,22604,4,0),(14465,'24448',22605,22606,4,0),(14466,'24448',22575,22576,4,0),(14467,'24450',22905,22906,4,0),(14468,'24457',22907,22908,4,0),(14469,'24458',22471,22472,4,0),(14470,'24458',22909,22910,4,0),(14471,'24459',22911,22912,4,0),(14472,'24460',22913,22914,4,0),(14473,'24469',22915,22916,4,0),(14474,'24469',22529,22530,4,0),(14475,'24470',22531,22532,4,0),(14476,'24478',22533,22534,4,0),(14477,'24479',22535,22536,4,0),(14478,'24480',22515,22516,4,0),(14479,'24488',22537,22538,4,0),(14480,'24489',22517,22518,4,0),(14481,'24490',22577,22578,4,0),(14482,'24491',22579,22580,4,0),(14483,'24492',22159,22160,4,0),(14484,'24494',22539,22540,4,0),(14485,'24495',22519,22520,4,0),(14486,'24496',22521,22522,4,0),(14487,'24497',22523,22524,4,0),(14488,'24498',22525,22526,4,0),(14489,'24500',23169,23170,4,0),(14490,'24510',23171,23172,4,0),(14491,'24511',23173,23174,4,0),(14492,'24512',23175,23176,4,0),(14493,'24512',13239,13240,4,0),(14494,'24513',23177,23178,4,0),(14495,'24514',22115,22116,4,0),(14496,'24515',22117,22118,4,0),(14497,'24516',23179,23180,4,0),(14498,'24516',22119,22120,4,0),(14499,'24516',22891,22892,4,0),(14500,'24517',22121,22122,4,0),(14501,'24520',23095,23096,4,0),(14502,'24521',21819,21820,4,0),(14503,'24521',23097,23098,4,0),(14504,'24522',22935,22936,4,0),(14505,'24523',22937,22938,4,0),(14506,'24524',23099,23100,4,0),(14507,'24525',21815,21816,4,0),(14508,'24526',23101,23102,4,0),(14509,'24530',23181,23182,4,0),(14510,'24530',22893,22894,4,0),(14511,'24540',21945,21946,4,0),(14512,'24544',21983,21984,4,0),(14513,'24545',22773,22774,4,0),(14514,'24545',21803,21804,4,0),(14515,'24546',21805,21806,4,0),(14516,'24547',21947,21948,4,0),(14517,'24547',23183,23184,4,0),(14518,'24548',21949,21950,4,0),(14519,'24549',21985,21986,4,0),(14520,'24550',21987,21988,4,0),(14521,'24550',22895,22896,4,0),(14522,'24560',22897,22898,4,0),(14523,'24565',21989,21990,4,0),(14524,'24566',22475,22476,4,0),(14525,'24567',22477,22478,4,0),(14526,'24568',22479,22480,4,0),(14527,'24569',22899,22900,4,0),(14528,'24569',22481,22482,4,0),(14529,'24600',22305,22306,4,0),(14530,'24607',22307,22308,4,0),(14531,'24608',22309,22310,4,0),(14532,'24609',22311,22312,4,0),(14533,'24610',22141,22142,4,0),(14534,'24620',22143,22144,4,0),(14535,'24630',22145,22146,4,0),(14536,'24640',22323,22324,4,0),(14537,'24648',22433,22434,4,0),(14538,'24648',22325,22326,4,0),(14539,'24649',22327,22328,4,0),(14540,'24650',22313,22314,4,0),(14541,'24660',22315,22316,4,0),(14542,'24670',22317,22318,4,0),(14543,'24680',23209,23210,4,0),(14544,'24687',23211,23212,4,0),(14545,'24688',23213,23214,4,0),(14546,'24689',23215,23216,4,0),(14547,'24690',23217,23218,4,0),(14548,'24699',23219,23220,4,0),(14549,'24700',21809,21810,4,0),(14550,'24710',22759,22760,4,0),(14551,'24711',23227,23228,4,0),(14552,'24711',23255,23256,4,0),(14553,'24712',23229,23230,4,0),(14554,'24713',23231,23232,4,0),(14555,'24714',21901,21902,4,0),(14556,'24715',21903,21904,4,0),(14557,'24716',21905,21906,4,0),(14558,'24717',22393,22394,4,0),(14559,'24717',22837,22838,4,0),(14560,'24717',22961,22962,4,0),(14561,'24717',22401,22402,4,0),(14562,'24718',21811,21812,4,0),(14563,'24718',21907,21908,4,0),(14564,'24719',23257,23258,4,0),(14565,'24720',22785,22786,4,0),(14566,'24721',22403,22404,4,0),(14567,'24721',22021,22022,4,0),(14568,'24722',22787,22788,4,0),(14569,'24723',22395,22396,4,0),(14570,'24724',22397,22398,4,0),(14571,'24730',22163,22164,4,0),(14572,'24731',22839,22840,4,0),(14573,'24732',22841,22842,4,0),(14574,'24732',23017,23018,4,0),(14575,'24733',22645,22646,4,0),(14576,'24734',22029,22030,4,0),(14577,'24735',22031,22032,4,0),(14578,'24736',22033,22034,4,0),(14579,'24738',22941,22942,4,0),(14580,'24739',22931,22932,4,0),(14581,'24740',22843,22844,4,0),(14582,'24740',22943,22944,4,0),(14583,'24740',21821,21822,4,0),(14584,'24740',23151,23152,4,0),(14585,'24741',22945,22946,4,0),(14586,'24742',22015,22016,4,0),(14587,'24743',22175,22176,4,0),(14588,'24744',22177,22178,4,0),(14589,'24744',22017,22018,4,0),(14590,'24745',22179,22180,4,0),(14591,'24746',22181,22182,4,0),(14592,'24750',22287,22288,4,0),(14593,'24760',22025,22026,4,0),(14594,'24760',22751,22752,4,0),(14595,'24760',22319,22320,4,0),(14596,'24761',21779,21780,4,0),(14597,'24762',22639,22640,4,0),(14598,'24762',22795,22796,4,0),(14599,'24763',23319,23320,4,0),(14600,'24763',22867,22868,4,0),(14601,'24763',22651,22652,4,0),(14602,'24764',22509,22510,4,0),(14603,'24764',22869,22870,4,0),(14604,'24764',22289,22290,4,0),(14605,'24765',23241,23242,4,0),(14606,'24765',22665,22666,4,0),(14607,'24766',23243,23244,4,0),(14608,'24766',22511,22512,4,0),(14609,'24766',22291,22292,4,0),(14610,'24767',22797,22798,4,0),(14611,'24767',22647,22648,4,0),(14612,'24768',22871,22872,4,0),(14613,'24769',22065,22066,4,0),(14614,'24790',22693,22694,4,0),(14615,'24791',23333,23334,4,0),(14616,'24791',22695,22696,4,0),(14617,'24792',21781,21782,4,0),(14618,'24792',22641,22642,4,0),(14619,'24792',22589,22590,4,0),(14620,'24793',23019,23020,4,0),(14621,'24794',22667,22668,4,0),(14622,'24795',22801,22802,4,0),(14623,'24795',22669,22670,4,0),(14624,'24795',22739,22740,4,0),(14625,'24796',22591,22592,4,0),(14626,'24796',22283,22284,4,0),(14627,'24797',22721,22722,4,0),(14628,'24800',22095,22096,4,0),(14629,'24810',22699,22700,4,0),(14630,'24811',22701,22702,4,0),(14631,'24812',22703,22704,4,0),(14632,'24813',22097,22098,4,0),(14633,'24814',22705,22706,4,0),(14634,'24815',22099,22100,4,0),(14635,'24816',22101,22102,4,0),(14636,'24820',22217,22218,4,0),(14637,'24820',22435,22436,4,0),(14638,'24830',22437,22438,4,0),(14639,'24836',23105,23106,4,0),(14640,'24836',22439,22440,4,0),(14641,'24837',23107,23108,4,0),(14642,'24837',21975,21976,4,0),(14643,'24837',22979,22980,4,0),(14644,'24838',21977,21978,4,0),(14645,'24839',22441,22442,4,0),(14646,'24840',22331,22332,4,0),(14647,'24843',22981,22982,4,0),(14648,'24844',22983,22984,4,0),(14649,'24845',22985,22986,4,0),(14650,'24846',22993,22994,4,0),(14651,'24847',22995,22996,4,0),(14652,'24848',22333,22334,4,0),(14653,'24848',22781,22782,4,0),(14654,'24849',22335,22336,4,0),(14655,'24849',22997,22998,4,0),(14656,'24850',21877,21878,4,0),(14657,'24852',23113,23114,4,0),(14658,'24852',21879,21880,4,0),(14659,'24853',21881,21882,4,0),(14660,'24854',21883,21884,4,0),(14661,'24855',22613,22614,4,0),(14662,'24856',22655,22656,4,0),(14663,'24857',21885,21886,4,0),(14664,'24857',22615,22616,4,0),(14665,'24858',21887,21888,4,0),(14666,'24859',21889,21890,4,0),(14667,'24860',23115,23116,4,0),(14668,'24860',21891,21892,4,0),(14669,'24869',23117,23118,4,0),(14670,'24870',22295,22296,4,0),(14671,'24877',22297,22298,4,0),(14672,'24878',22299,22300,4,0),(14673,'24878',22243,22244,4,0),(14674,'24879',22301,22302,4,0),(14675,'24880',23023,23024,4,0),(14676,'24882',23025,23026,4,0),(14677,'24883',23027,23028,4,0),(14678,'24884',23029,23030,4,0),(14679,'24885',22609,22610,4,0),(14680,'24885',21865,21866,4,0),(14681,'24886',23031,23032,4,0),(14682,'24887',23033,23034,4,0),(14683,'24888',23035,23036,4,0),(14684,'24888',21789,21790,4,0),(14685,'24888',22059,22060,4,0),(14686,'24889',23037,23038,4,0),(14687,'24890',22219,22220,4,0),(14688,'24891',22221,22222,4,0),(14689,'24892',22061,22062,4,0),(14690,'24893',22595,22596,4,0),(14691,'24900',22659,22660,4,0),(14692,'24911',21867,21868,4,0),(14693,'24912',21869,21870,4,0),(14694,'24913',21871,21872,4,0),(14695,'24914',22583,22584,4,0),(14696,'24915',22585,22586,4,0),(14697,'24916',22495,22496,4,0),(14698,'24917',21911,21912,4,0),(14699,'24918',22661,22662,4,0),(14700,'24920',23003,23004,4,0),(14701,'24930',23005,23006,4,0),(14702,'24940',22155,22156,4,0),(14703,'24950',22103,22104,4,0),(14704,'24960',22707,22708,4,0),(14705,'24960',22125,22126,4,0),(14706,'24970',22127,22128,4,0),(14707,'24980',22129,22130,4,0),(14708,'24989',22131,22132,4,0),(14709,'24990',22133,22134,4,0),(14710,'24991',22135,22136,4,0),(14711,'24994',21913,21914,4,0),(14712,'24994',21769,21770,4,0),(14713,'24995',21915,21916,4,0),(14714,'24996',21771,21772,4,0),(14715,'24996',22423,22424,4,0),(14716,'25001',24049,24050,4,0),(14717,'25002',24051,24052,4,0),(14718,'25003',24053,24054,4,0),(14719,'25004',24055,24056,4,0),(14720,'25005',24057,24058,4,0),(14721,'25006',24059,24060,4,0),(14722,'25007',24061,24062,4,0),(14723,'25008',24063,24064,4,0),(14724,'25100',23427,23428,4,0),(14725,'25110',23443,23444,4,0),(14726,'25110',24485,24486,4,0),(14727,'25111',24065,24066,4,0),(14728,'25112',23809,23810,4,0),(14729,'25113',24067,24068,4,0),(14730,'25114',23811,23812,4,0),(14731,'25120',23403,23404,4,0),(14732,'25122',23869,23870,4,0),(14733,'25123',24487,24488,4,0),(14734,'25124',24315,24316,4,0),(14735,'25125',23415,23416,4,0),(14736,'25126',23435,23436,4,0),(14737,'25126',24489,24490,4,0),(14738,'25130',23411,23412,4,0),(14739,'25131',24477,24478,4,0),(14740,'25132',23563,23564,4,0),(14741,'25133',24615,24616,4,0),(14742,'25134',23953,23954,4,0),(14743,'25135',23383,23384,4,0),(14744,'25136',23625,23626,4,0),(14745,'25137',23675,23676,4,0),(14746,'25138',24503,24504,4,0),(14747,'25139',24121,24122,4,0),(14748,'25140',23461,23462,4,0),(14749,'25141',24499,24500,4,0),(14750,'25142',23557,23558,4,0),(14751,'25143',23691,23692,4,0),(14752,'25144',23559,23560,4,0),(14753,'25150',23473,23474,4,0),(14754,'25151',23489,23490,4,0),(14755,'25152',23683,23684,4,0),(14756,'25153',24279,24280,4,0),(14757,'25154',23617,23618,4,0),(14758,'25155',23891,23892,4,0),(14759,'25160',23827,23828,4,0),(14760,'25161',23407,23408,4,0),(14761,'25162',23387,23388,4,0),(14762,'25163',23721,23722,4,0),(14763,'25164',23749,23750,4,0),(14764,'25165',23883,23884,4,0),(14765,'25170',24507,24508,4,0),(14766,'25171',23379,23380,4,0),(14767,'25172',24153,24154,4,0),(14768,'25173',24413,24414,4,0),(14769,'25174',24417,24418,4,0),(14770,'25175',24367,24368,4,0),(14771,'25176',24481,24482,4,0),(14772,'25177',23533,23534,4,0),(14773,'25177',23919,23920,4,0),(14774,'25178',23579,23580,4,0),(14775,'25179',24105,24106,4,0),(14776,'25180',23391,23392,4,0),(14777,'25181',24409,24410,4,0),(14778,'25182',23367,23368,4,0),(14779,'25183',24379,24380,4,0),(14780,'25184',24113,24114,4,0),(14781,'25185',23923,23924,4,0),(14782,'25186',24039,24040,4,0),(14783,'25187',23431,23432,4,0),(14784,'25190',24069,24070,4,0),(14785,'25191',24071,24072,4,0),(14786,'25192',24073,24074,4,0),(14787,'25193',24075,24076,4,0),(14788,'25193',23393,23394,4,0),(14789,'25193',24343,24344,4,0),(14790,'25194',24077,24078,4,0),(14791,'25195',24079,24080,4,0),(14792,'25196',24081,24082,4,0),(14793,'25197',24083,24084,4,0),(14794,'25198',24085,24086,4,0),(14795,'25199',24087,24088,4,0),(14796,'25200',23637,23638,4,0),(14797,'25210',23839,23840,4,0),(14798,'25211',24339,24340,4,0),(14799,'25211',24493,24494,4,0),(14800,'25211',24117,24118,4,0),(14801,'25212',24451,24452,4,0),(14802,'25212',23743,23744,4,0),(14803,'25212',24495,24496,4,0),(14804,'25213',24287,24288,4,0),(14805,'25213',24427,24428,4,0),(14806,'25213',23639,23640,4,0),(14807,'25214',23641,23642,4,0),(14808,'25214',23765,23766,4,0),(14809,'25214',24371,24372,4,0),(14810,'25214',24007,24008,4,0),(14811,'25215',23767,23768,4,0),(14812,'25215',24357,24358,4,0),(14813,'25216',23873,23874,4,0),(14814,'25216',24359,24360,4,0),(14815,'25217',23831,23832,4,0),(14816,'25217',23493,23494,4,0),(14817,'25217',24157,24158,4,0),(14818,'25217',24289,24290,4,0),(14819,'25218',23823,23824,4,0),(14820,'25218',23643,23644,4,0),(14821,'25218',23745,23746,4,0),(14822,'25220',23529,23530,4,0),(14823,'25221',23731,23732,4,0),(14824,'25222',24383,24384,4,0),(14825,'25230',24129,24130,4,0),(14826,'25240',24225,24226,4,0),(14827,'25240',24021,24022,4,0),(14828,'25241',23815,23816,4,0),(14829,'25242',24125,24126,4,0),(14830,'25243',23687,23688,4,0),(14831,'25244',23789,23790,4,0),(14832,'25245',24575,24576,4,0),(14833,'25250',23545,23546,4,0),(14834,'25260',23863,23864,4,0),(14835,'25261',24227,24228,4,0),(14836,'25261',23865,23866,4,0),(14837,'25262',23509,23510,4,0),(14838,'25263',24259,24260,4,0),(14839,'25264',24593,24594,4,0),(14840,'25265',23621,23622,4,0),(14841,'25266',24109,24110,4,0),(14842,'25266',23525,23526,4,0),(14843,'25267',24349,24350,4,0),(14844,'25268',23739,23740,4,0),(14845,'25268',24549,24550,4,0),(14846,'25269',24551,24552,4,0),(14847,'25270',24333,24334,4,0),(14848,'25271',24335,24336,4,0),(14849,'25271',23769,23770,4,0),(14850,'25280',24199,24200,4,0),(14851,'25280',24387,24388,4,0),(14852,'25281',24101,24102,4,0),(14853,'25282',24345,24346,4,0),(14854,'25283',24033,24034,4,0),(14855,'25283',24181,24182,4,0),(14856,'25284',23907,23908,4,0),(14857,'25285',23843,23844,4,0),(14858,'25286',24177,24178,4,0),(14859,'25286',23447,23448,4,0),(14860,'25286',24201,24202,4,0),(14861,'25286',24239,24240,4,0),(14862,'25287',24243,24244,4,0),(14863,'25287',24305,24306,4,0),(14864,'25287',24203,24204,4,0),(14865,'25288',24035,24036,4,0),(14866,'25289',23513,23514,4,0),(14867,'25289',23613,23614,4,0),(14868,'25290',24307,24308,4,0),(14869,'25290',23655,23656,4,0),(14870,'25300',24431,24432,4,0),(14871,'25310',23357,23358,4,0),(14872,'25315',24147,24148,4,0),(14873,'25316',24263,24264,4,0),(14874,'25317',23359,23360,4,0),(14875,'25318',24191,24192,4,0),(14876,'25318',24221,24222,4,0),(14877,'25318',23361,23362,4,0),(14878,'25318',24275,24276,4,0),(14879,'25320',23457,23458,4,0),(14880,'25327',23979,23980,4,0),(14881,'25330',24579,24580,4,0),(14882,'25331',24473,24474,4,0),(14883,'25331',23363,23364,4,0),(14884,'25332',23915,23916,4,0),(14885,'25333',24229,24230,4,0),(14886,'25334',23629,23630,4,0),(14887,'25335',24231,24232,4,0),(14888,'25336',23541,23542,4,0),(14889,'25337',23537,23538,4,0),(14890,'25340',24161,24162,4,0),(14891,'25340',24561,24562,4,0),(14892,'25341',24165,24166,4,0),(14893,'25341',23651,23652,4,0),(14894,'25341',23835,23836,4,0),(14895,'25343',24351,24352,4,0),(14896,'25344',24353,24354,4,0),(14897,'25350',24433,24434,4,0),(14898,'25351',24435,24436,4,0),(14899,'25352',24437,24438,4,0),(14900,'25353',24439,24440,4,0),(14901,'25354',24441,24442,4,0),(14902,'25360',24443,24444,4,0),(14903,'25400',24003,24004,4,0),(14904,'25410',23899,23900,4,0),(14905,'25411',23797,23798,4,0),(14906,'25412',23735,23736,4,0),(14907,'25413',23911,23912,4,0),(14908,'25420',24271,24272,4,0),(14909,'25430',23887,23888,4,0),(14910,'25440',24619,24620,4,0),(14911,'25450',23895,23896,4,0),(14912,'25460',23647,23648,4,0),(14913,'25471',23941,23942,4,0),(14914,'25480',24447,24448,4,0),(14915,'25500',23945,23946,4,0),(14916,'25510',23967,23968,4,0),(14917,'25511',23969,23970,4,0),(14918,'25512',23971,23972,4,0),(14919,'25513',23973,23974,4,0),(14920,'25513',23495,23496,4,0),(14921,'25513',23947,23948,4,0),(14922,'25514',23703,23704,4,0),(14923,'25514',24373,24374,4,0),(14924,'25515',23975,23976,4,0),(14925,'25516',23949,23950,4,0),(14926,'25516',23667,23668,4,0),(14927,'25517',23669,23670,4,0),(14928,'25518',23671,23672,4,0),(14929,'25520',23705,23706,4,0),(14930,'25526',23981,23982,4,0),(14931,'25526',23707,23708,4,0),(14932,'25527',23983,23984,4,0),(14933,'25528',23985,23986,4,0),(14934,'25529',23709,23710,4,0),(14935,'25530',24565,24566,4,0),(14936,'25537',24567,24568,4,0),(14937,'25538',24569,24570,4,0),(14938,'25539',24169,24170,4,0),(14939,'25539',24571,24572,4,0),(14940,'25540',23993,23994,4,0),(14941,'25547',23725,23726,4,0),(14942,'25548',23601,23602,4,0),(14943,'25549',23521,23522,4,0),(14944,'25550',23575,23576,4,0),(14945,'25551',23753,23754,4,0),(14946,'25551',23465,23466,4,0),(14947,'25551',24589,24590,4,0),(14948,'25552',24583,24584,4,0),(14949,'25552',23711,23712,4,0),(14950,'25553',24585,24586,4,0),(14951,'25554',23713,23714,4,0),(14952,'25555',24363,24364,4,0),(14953,'25555',23715,23716,4,0),(14954,'25555',24375,24376,4,0),(14955,'25556',23717,23718,4,0),(14956,'25557',23727,23728,4,0),(14957,'25560',23397,23398,4,0),(14958,'25560',24399,24400,4,0),(14959,'25566',24391,24392,4,0),(14960,'25567',24401,24402,4,0),(14961,'25568',24403,24404,4,0),(14962,'25569',24393,24394,4,0),(14963,'25569',24405,24406,4,0),(14964,'25570',24537,24538,4,0),(14965,'25571',24025,24026,4,0),(14966,'25571',24539,24540,4,0),(14967,'25571',23777,23778,4,0),(14968,'25572',24541,24542,4,0),(14969,'25573',23419,23420,4,0),(14970,'25574',23421,23422,4,0),(14971,'25575',23423,23424,4,0),(14972,'25576',24027,24028,4,0),(14973,'25576',24543,24544,4,0),(14974,'25577',24029,24030,4,0),(14975,'25580',23773,23774,4,0),(14976,'25583',24515,24516,4,0),(14977,'25584',24517,24518,4,0),(14978,'25586',23449,23450,4,0),(14979,'25587',23451,23452,4,0),(14980,'25588',23927,23928,4,0),(14981,'25589',23453,23454,4,0),(14982,'25590',23497,23498,4,0),(14983,'25591',23499,23500,4,0),(14984,'25592',23501,23502,4,0),(14985,'25592',23591,23592,4,0),(14986,'25593',24395,24396,4,0),(14987,'25594',24283,24284,4,0),(14988,'25594',24043,24044,4,0),(14989,'25595',23781,23782,4,0),(14990,'25595',24459,24460,4,0),(14991,'25595',24045,24046,4,0),(14992,'25595',23929,23930,4,0),(14993,'25596',23931,23932,4,0),(14994,'25597',23757,23758,4,0),(14995,'25597',23933,23934,4,0),(14996,'25598',24171,24172,4,0),(14997,'25599',24173,24174,4,0),(14998,'25600',23505,23506,4,0),(14999,'25610',24211,24212,4,0),(15000,'25611',23997,23998,4,0),(15001,'25611',23349,23350,4,0),(15002,'25611',24213,24214,4,0),(15003,'25612',23999,24000,4,0),(15004,'25612',24215,24216,4,0),(15005,'25613',23593,23594,4,0),(15006,'25614',24217,24218,4,0),(15007,'25615',23595,23596,4,0),(15008,'25616',24149,24150,4,0),(15009,'25617',23957,23958,4,0),(15010,'25617',24555,24556,4,0),(15011,'25620',24519,24520,4,0),(15012,'25630',24421,24422,4,0),(15013,'25631',23605,23606,4,0),(15014,'25632',23607,23608,4,0),(15015,'25632',24327,24328,4,0),(15016,'25633',24521,24522,4,0),(15017,'25633',23609,23610,4,0),(15018,'25634',24523,24524,4,0),(15019,'25635',24525,24526,4,0),(15020,'25636',24527,24528,4,0),(15021,'25637',24529,24530,4,0),(15022,'25638',23801,23802,4,0),(15023,'25638',24095,24096,4,0),(15024,'25639',24097,24098,4,0),(15025,'25639',23803,23804,4,0),(15026,'25640',24531,24532,4,0),(15027,'25650',23847,23848,4,0),(15028,'25651',23341,23342,4,0),(15029,'25651',23849,23850,4,0),(15030,'25652',23343,23344,4,0),(15031,'25653',23851,23852,4,0),(15032,'25654',24533,24534,4,0),(15033,'25655',23853,23854,4,0),(15034,'25656',23855,23856,4,0),(15035,'25657',23857,23858,4,0),(15036,'25658',23859,23860,4,0),(15037,'25660',23399,23400,4,0),(15038,'25670',24455,24456,4,0),(15039,'25680',24557,24558,4,0),(15040,'25689',23805,23806,4,0),(15041,'25690',24603,24604,4,0),(15042,'25691',23351,23352,4,0),(15043,'25692',23597,23598,4,0),(15044,'25692',23353,23354,4,0),(15045,'25693',24319,24320,4,0),(15046,'25700',23961,23962,4,0),(15047,'25710',23963,23964,4,0),(15048,'25711',24139,24140,4,0),(15049,'25712',24141,24142,4,0),(15050,'25713',24293,24294,4,0),(15051,'25714',24011,24012,4,0),(15052,'25714',24295,24296,4,0),(15053,'25714',24143,24144,4,0),(15054,'25715',23371,23372,4,0),(15055,'25716',23819,23820,4,0),(15056,'25717',24545,24546,4,0),(15057,'25717',23879,23880,4,0),(15058,'25717',23989,23990,4,0),(15059,'25717',23373,23374,4,0),(15060,'25718',23375,23376,4,0),(15061,'25719',23761,23762,4,0),(15062,'25720',23549,23550,4,0),(15063,'25721',24311,24312,4,0),(15064,'25721',24255,24256,4,0),(15065,'25721',23551,23552,4,0),(15066,'25722',23469,23470,4,0),(15067,'25722',23633,23634,4,0),(15068,'25722',23695,23696,4,0),(15069,'25723',23697,23698,4,0),(15070,'25724',23553,23554,4,0),(15071,'25724',24133,24134,4,0),(15072,'25725',24135,24136,4,0),(15073,'25726',24091,24092,4,0),(15074,'25727',24267,24268,4,0),(15075,'25730',23477,23478,4,0),(15076,'25735',24607,24608,4,0),(15077,'25736',23479,23480,4,0),(15078,'25736',24609,24610,4,0),(15079,'25737',23481,23482,4,0),(15080,'25737',23439,23440,4,0),(15081,'25737',23515,23516,4,0),(15082,'25737',23793,23794,4,0),(15083,'25737',23679,23680,4,0),(15084,'25738',23483,23484,4,0),(15085,'25738',24611,24612,4,0),(15086,'25739',23485,23486,4,0),(15087,'25740',24247,24248,4,0),(15088,'25746',24249,24250,4,0),(15089,'25747',23345,23346,4,0),(15090,'25747',23903,23904,4,0),(15091,'25748',24193,24194,4,0),(15092,'25748',24597,24598,4,0),(15093,'25748',23583,23584,4,0),(15094,'25749',24195,24196,4,0),(15095,'25749',24251,24252,4,0),(15096,'25749',24599,24600,4,0),(15097,'25750',24467,24468,4,0),(15098,'25751',24469,24470,4,0),(15099,'25752',23567,23568,4,0),(15100,'25753',24323,24324,4,0),(15101,'25753',23569,23570,4,0),(15102,'25772',23571,23572,4,0),(15103,'25790',23659,23660,4,0),(15104,'25790',24183,24184,4,0),(15105,'25790',24235,24236,4,0),(15106,'25790',24187,24188,4,0),(15107,'25791',24463,24464,4,0),(15108,'25792',23517,23518,4,0),(15109,'25793',23661,23662,4,0),(15110,'25794',23663,23664,4,0),(15111,'25794',24207,24208,4,0),(15112,'25794',23785,23786,4,0),(15113,'25794',23587,23588,4,0),(15114,'25795',24013,24014,4,0),(15115,'25795',24297,24298,4,0),(15116,'25796',24299,24300,4,0),(15117,'25797',24301,24302,4,0),(15118,'25798',24017,24018,4,0),(15119,'25799',23699,23700,4,0),(15120,'26001',21395,21396,4,0),(15121,'26002',21397,21398,4,0),(15122,'26003',21399,21400,4,0),(15123,'26004',21401,21402,4,0),(15124,'26005',21403,21404,4,0),(15125,'26006',21405,21406,4,0),(15126,'26006',21709,21710,4,0),(15127,'26007',21407,21408,4,0),(15128,'26008',21409,21410,4,0),(15129,'26009',21411,21412,4,0),(15130,'26100',21057,21058,4,0),(15131,'26100',21653,21654,4,0),(15132,'26110',21475,21476,4,0),(15133,'26111',21517,21518,4,0),(15134,'26111',21059,21060,4,0),(15135,'26120',21027,21028,4,0),(15136,'26121',21461,21462,4,0),(15137,'26121',21697,21698,4,0),(15138,'26122',21525,21526,4,0),(15139,'26122',21309,21310,4,0),(15140,'26123',21715,21716,4,0),(15141,'26124',21257,21258,4,0),(15142,'26124',21479,21480,4,0),(15143,'26124',21505,21506,4,0),(15144,'26125',21743,21744,4,0),(15145,'26126',21415,21416,4,0),(15146,'26130',21541,21542,4,0),(15147,'26130',21031,21032,4,0),(15148,'26130',21227,21228,4,0),(15149,'26131',21593,21594,4,0),(15150,'26131',21375,21376,4,0),(15151,'26131',21549,21550,4,0),(15152,'26132',21631,21632,4,0),(15153,'26132',21391,21392,4,0),(15154,'26132',21595,21596,4,0),(15155,'26132',21627,21628,4,0),(15156,'26133',21023,21024,4,0),(15157,'26133',21351,21352,4,0),(15158,'26133',21575,21576,4,0),(15159,'26133',21537,21538,4,0),(15160,'26134',21451,21452,4,0),(15161,'26134',21649,21650,4,0),(15162,'26134',21367,21368,4,0),(15163,'26135',21371,21372,4,0),(15164,'26135',21155,21156,4,0),(15165,'26140',21379,21380,4,0),(15166,'26141',21033,21034,4,0),(15167,'26142',21711,21712,4,0),(15168,'26143',21443,21444,4,0),(15169,'26144',21235,21236,4,0),(15170,'26144',21487,21488,4,0),(15171,'26144',21305,21306,4,0),(15172,'26145',21489,21490,4,0),(15173,'26146',21261,21262,4,0),(15174,'26147',21491,21492,4,0),(15175,'26148',21493,21494,4,0),(15176,'26151',21091,21092,4,0),(15177,'26160',21013,21014,4,0),(15178,'26190',21463,21464,4,0),(15179,'26191',21619,21620,4,0),(15180,'26200',21455,21456,4,0),(15181,'26200',21325,21326,4,0),(15182,'26210',21063,21064,4,0),(15183,'26210',21635,21636,4,0),(15184,'26210',21219,21220,4,0),(15185,'26211',21291,21292,4,0),(15186,'26211',21637,21638,4,0),(15187,'26211',21287,21288,4,0),(15188,'26212',21559,21560,4,0),(15189,'26212',21293,21294,4,0),(15190,'26212',8161,8162,4,0),(15191,'26212',21197,21198,4,0),(15192,'26212',21301,21302,4,0),(15193,'26213',21387,21388,4,0),(15194,'26213',21483,21484,4,0),(15195,'26213',21645,21646,4,0),(15196,'26213',21335,21336,4,0),(15197,'26214',21553,21554,4,0),(15198,'26214',21249,21250,4,0),(15199,'26215',21665,21666,4,0),(15200,'26216',21571,21572,4,0),(15201,'26220',21501,21502,4,0),(15202,'26221',21313,21314,4,0),(15203,'26222',21555,21556,4,0),(15204,'26223',21347,21348,4,0),(15205,'26224',21657,21658,4,0),(15206,'26230',21185,21186,4,0),(15207,'26240',21189,21190,4,0),(15208,'26241',21119,21120,4,0),(15209,'26250',21603,21604,4,0),(15210,'26250',21085,21086,4,0),(15211,'26256',21705,21706,4,0),(15212,'26257',21111,21112,4,0),(15213,'26257',21339,21340,4,0),(15214,'26258',21427,21428,4,0),(15215,'26258',21223,21224,4,0),(15216,'26259',21317,21318,4,0),(15217,'26259',21731,21732,4,0),(15218,'26259',21245,21246,4,0),(15219,'26260',21607,21608,4,0),(15220,'26261',21611,21612,4,0),(15221,'26261',21509,21510,4,0),(15222,'26270',21497,21498,4,0),(15223,'26280',21281,21282,4,0),(15224,'26288',21685,21686,4,0),(15225,'26288',21763,21764,4,0),(15226,'26289',21283,21284,4,0),(15227,'26290',21147,21148,4,0),(15228,'26291',21755,21756,4,0),(15229,'26291',21215,21216,4,0),(15230,'26291',21579,21580,4,0),(15231,'26292',21327,21328,4,0),(15232,'26292',21701,21702,4,0),(15233,'26300',21457,21458,4,0),(15234,'26310',21107,21108,4,0),(15235,'26311',21231,21232,4,0),(15236,'26311',21163,21164,4,0),(15237,'26311',21071,21072,4,0),(15238,'26311',21181,21182,4,0),(15239,'26312',21135,21136,4,0),(15240,'26312',21075,21076,4,0),(15241,'26312',21669,21670,4,0),(15242,'26313',21677,21678,4,0),(15243,'26314',21359,21360,4,0),(15244,'26315',21193,21194,4,0),(15245,'26315',21049,21050,4,0),(15246,'26315',21419,21420,4,0),(15247,'26315',21589,21590,4,0),(15248,'26320',21115,21116,4,0),(15249,'26321',21139,21140,4,0),(15250,'26321',21431,21432,4,0),(15251,'26321',21641,21642,4,0),(15252,'26321',21739,21740,4,0),(15253,'26321',21383,21384,4,0),(15254,'26321',21513,21514,4,0),(15255,'26322',21067,21068,4,0),(15256,'26322',21143,21144,4,0),(15257,'26323',21343,21344,4,0),(15258,'26323',21103,21104,4,0),(15259,'26324',21045,21046,4,0),(15260,'26325',21723,21724,4,0),(15261,'26325',21177,21178,4,0),(15262,'26325',21173,21174,4,0),(15263,'26325',21719,21720,4,0),(15264,'26326',21567,21568,4,0),(15265,'26327',21123,21124,4,0),(15266,'26328',21277,21278,4,0),(15267,'26329',21423,21424,4,0),(15268,'26329',21751,21752,4,0),(15269,'26329',21165,21166,4,0),(15270,'26329',21169,21170,4,0),(15271,'26329',21735,21736,4,0),(15272,'26329',21693,21694,4,0),(15273,'26329',21747,21748,4,0),(15274,'26330',21151,21152,4,0),(15275,'26338',21583,21584,4,0),(15276,'26339',21585,21586,4,0),(15277,'26339',21009,21010,4,0),(15278,'26340',21563,21564,4,0),(15279,'26350',21201,21202,4,0),(15280,'26359',21661,21662,4,0),(15281,'26360',21297,21298,4,0),(15282,'26370',21471,21472,4,0),(15283,'26371',21689,21690,4,0),(15284,'26371',21623,21624,4,0),(15285,'26372',21355,21356,4,0),(15286,'26373',21253,21254,4,0),(15287,'26374',21435,21436,4,0),(15288,'26375',21273,21274,4,0),(15289,'26376',21615,21616,4,0),(15290,'26500',21159,21160,4,0),(15291,'26509',21037,21038,4,0),(15292,'26510',21521,21522,4,0),(15293,'26511',21265,21266,4,0),(15294,'26512',21673,21674,4,0),(15295,'26513',21095,21096,4,0),(15296,'26520',21205,21206,4,0),(15297,'26525',21363,21364,4,0),(15298,'26526',21239,21240,4,0),(15299,'26527',21241,21242,4,0),(15300,'26527',21207,21208,4,0),(15301,'26528',21209,21210,4,0),(15302,'26529',21211,21212,4,0),(15303,'26530',21017,21018,4,0),(15304,'26531',21019,21020,4,0),(15305,'26532',21681,21682,4,0),(15306,'26533',21467,21468,4,0),(15307,'26540',21053,21054,4,0),(15308,'26550',21545,21546,4,0),(15309,'26559',21041,21042,4,0),(15310,'26560',21099,21100,4,0),(15311,'26570',21533,21534,4,0),(15312,'26580',21087,21088,4,0),(15313,'26584',21331,21332,4,0),(15314,'26585',21599,21600,4,0),(15315,'26585',21079,21080,4,0),(15316,'26586',21269,21270,4,0),(15317,'26586',21759,21760,4,0),(15318,'26586',21439,21440,4,0),(15319,'26587',21727,21728,4,0),(15320,'26587',21321,21322,4,0),(15321,'26587',21447,21448,4,0),(15322,'26588',21127,21128,4,0),(15323,'26588',21131,21132,4,0),(15324,'26589',21529,21530,4,0),(15325,'26589',21081,21082,4,0),(15326,'27001',25143,25144,4,0),(15327,'27002',25145,25146,4,0),(15328,'27003',25147,25148,4,0),(15329,'27004',25149,25150,4,0),(15330,'27100',24625,24626,4,0),(15331,'27110',24627,24628,4,0),(15332,'27111',24629,24630,4,0),(15333,'27112',24631,24632,4,0),(15334,'27113',25307,25308,4,0),(15335,'27113',24633,24634,4,0),(15336,'27114',24635,24636,4,0),(15337,'27115',24637,24638,4,0),(15338,'27116',24639,24640,4,0),(15339,'27117',24641,24642,4,0),(15340,'27118',24643,24644,4,0),(15341,'27120',24915,24916,4,0),(15342,'27122',24917,24918,4,0),(15343,'27123',24919,24920,4,0),(15344,'27124',24921,24922,4,0),(15345,'27125',24923,24924,4,0),(15346,'27126',24925,24926,4,0),(15347,'27127',24927,24928,4,0),(15348,'27128',24929,24930,4,0),(15349,'27129',24931,24932,4,0),(15350,'27130',24761,24762,4,0),(15351,'27131',24763,24764,4,0),(15352,'27132',24765,24766,4,0),(15353,'27133',24767,24768,4,0),(15354,'27134',24645,24646,4,0),(15355,'27135',24647,24648,4,0),(15356,'27136',24649,24650,4,0),(15357,'27140',25151,25152,4,0),(15358,'27141',25153,25154,4,0),(15359,'27142',24933,24934,4,0),(15360,'27143',24935,24936,4,0),(15361,'27144',24937,24938,4,0),(15362,'27145',25311,25312,4,0),(15363,'27146',25155,25156,4,0),(15364,'27146',24939,24940,4,0),(15365,'27150',25401,25402,4,0),(15366,'27151',25403,25404,4,0),(15367,'27152',25405,25406,4,0),(15368,'27152',25089,25090,4,0),(15369,'27153',25407,25408,4,0),(15370,'27154',25409,25410,4,0),(15371,'27155',25411,25412,4,0),(15372,'27156',25047,25048,4,0),(15373,'27157',25413,25414,4,0),(15374,'27160',25157,25158,4,0),(15375,'27161',25159,25160,4,0),(15376,'27162',25313,25314,4,0),(15377,'27163',25315,25316,4,0),(15378,'27164',25317,25318,4,0),(15379,'27166',24941,24942,4,0),(15380,'27168',25319,25320,4,0),(15381,'27169',25161,25162,4,0),(15382,'27170',25501,25502,4,0),(15383,'27177',25503,25504,4,0),(15384,'27178',25505,25506,4,0),(15385,'27179',25507,25508,4,0),(15386,'27180',25163,25164,4,0),(15387,'27181',25165,25166,4,0),(15388,'27181',25091,25092,4,0),(15389,'27182',25167,25168,4,0),(15390,'27183',25093,25094,4,0),(15391,'27184',25095,25096,4,0),(15392,'27185',25169,25170,4,0),(15393,'27185',25097,25098,4,0),(15394,'27186',25099,25100,4,0),(15395,'27187',25509,25510,4,0),(15396,'27188',25171,25172,4,0),(15397,'27188',25511,25512,4,0),(15398,'27190',25173,25174,4,0),(15399,'27190',25321,25322,4,0),(15400,'27191',25175,25176,4,0),(15401,'27192',25177,25178,4,0),(15402,'27200',25421,25422,4,0),(15403,'27203',25423,25424,4,0),(15404,'27204',25425,25426,4,0),(15405,'27205',25427,25428,4,0),(15406,'27206',25429,25430,4,0),(15407,'27207',25431,25432,4,0),(15408,'27208',25433,25434,4,0),(15409,'27209',25435,25436,4,0),(15410,'27210',25179,25180,4,0),(15411,'27210',25101,25102,4,0),(15412,'27211',25103,25104,4,0),(15413,'27212',25513,25514,4,0),(15414,'27213',25515,25516,4,0),(15415,'27214',25517,25518,4,0),(15416,'27215',25263,25264,4,0),(15417,'27216',25437,25438,4,0),(15418,'27217',25439,25440,4,0),(15419,'27220',25049,25050,4,0),(15420,'27220',24689,24690,4,0),(15421,'27226',25051,25052,4,0),(15422,'27227',25053,25054,4,0),(15423,'27228',25055,25056,4,0),(15424,'27229',25057,25058,4,0),(15425,'27230',25181,25182,4,0),(15426,'27231',25183,25184,4,0),(15427,'27232',25185,25186,4,0),(15428,'27233',25105,25106,4,0),(15429,'27233',25187,25188,4,0),(15430,'27234',25107,25108,4,0),(15431,'27235',25059,25060,4,0),(15432,'27240',25207,25208,4,0),(15433,'27241',25209,25210,4,0),(15434,'27243',25565,25566,4,0),(15435,'27244',25567,25568,4,0),(15436,'27245',25569,25570,4,0),(15437,'27246',24653,24654,4,0),(15438,'27247',25481,25482,4,0),(15439,'27247',25211,25212,4,0),(15440,'27248',24655,24656,4,0),(15441,'27250',24889,24890,4,0),(15442,'27256',24891,24892,4,0),(15443,'27257',24893,24894,4,0),(15444,'27258',24895,24896,4,0),(15445,'27259',24897,24898,4,0),(15446,'27260',24899,24900,4,0),(15447,'27266',24901,24902,4,0),(15448,'27267',24903,24904,4,0),(15449,'27268',24905,24906,4,0),(15450,'27269',24907,24908,4,0),(15451,'27270',25483,25484,4,0),(15452,'27271',24909,24910,4,0),(15453,'27272',25485,25486,4,0),(15454,'27273',25487,25488,4,0),(15455,'27274',25489,25490,4,0),(15456,'27275',25491,25492,4,0),(15457,'27276',24769,24770,4,0),(15458,'27277',24771,24772,4,0),(15459,'27278',24773,24774,4,0),(15460,'27279',25493,25494,4,0),(15461,'27280',25495,25496,4,0),(15462,'27283',25497,25498,4,0),(15463,'27286',24657,24658,4,0),(15464,'27287',24659,24660,4,0),(15465,'27289',24911,24912,4,0),(15466,'27289',25189,25190,4,0),(15467,'27290',25191,25192,4,0),(15468,'27293',25193,25194,4,0),(15469,'27293',24943,24944,4,0),(15470,'27294',25195,25196,4,0),(15471,'27296',25197,25198,4,0),(15472,'27297',25199,25200,4,0),(15473,'27298',25201,25202,4,0),(15474,'27299',25061,25062,4,0),(15475,'27299',25203,25204,4,0),(15476,'27300',25065,25066,4,0),(15477,'27305',25067,25068,4,0),(15478,'27306',25069,25070,4,0),(15479,'27307',25071,25072,4,0),(15480,'27308',25073,25074,4,0),(15481,'27309',25075,25076,4,0),(15482,'27310',25557,25558,4,0),(15483,'27317',25559,25560,4,0),(15484,'27318',25561,25562,4,0),(15485,'27320',25521,25522,4,0),(15486,'27324',25015,25016,4,0),(15487,'27325',25017,25018,4,0),(15488,'27326',25019,25020,4,0),(15489,'27327',25021,25022,4,0),(15490,'27328',25023,25024,4,0),(15491,'27328',25523,25524,4,0),(15492,'27329',25525,25526,4,0),(15493,'27330',24663,24664,4,0),(15494,'27331',24665,24666,4,0),(15495,'27332',24667,24668,4,0),(15496,'27333',24669,24670,4,0),(15497,'27334',24671,24672,4,0),(15498,'27335',24673,24674,4,0),(15499,'27336',24675,24676,4,0),(15500,'27338',24677,24678,4,0),(15501,'27339',25025,25026,4,0),(15502,'27339',24679,24680,4,0),(15503,'27340',24853,24854,4,0),(15504,'27341',25325,25326,4,0),(15505,'27342',25327,25328,4,0),(15506,'27343',24855,24856,4,0),(15507,'27344',24857,24858,4,0),(15508,'27345',25329,25330,4,0),(15509,'27346',25331,25332,4,0),(15510,'27347',25333,25334,4,0),(15511,'27347',24681,24682,4,0),(15512,'27348',25335,25336,4,0),(15513,'27349',24859,24860,4,0),(15514,'27350',24861,24862,4,0),(15515,'27359',24863,24864,4,0),(15516,'27360',25111,25112,4,0),(15517,'27362',25339,25340,4,0),(15518,'27363',25341,25342,4,0),(15519,'27364',25343,25344,4,0),(15520,'27366',25113,25114,4,0),(15521,'27367',25115,25116,4,0),(15522,'27368',25117,25118,4,0),(15523,'27369',25345,25346,4,0),(15524,'27369',25119,25120,4,0),(15525,'27370',25533,25534,4,0),(15526,'27370',24843,24844,4,0),(15527,'27372',25077,25078,4,0),(15528,'27372',24845,24846,4,0),(15529,'27373',24847,24848,4,0),(15530,'27373',25415,25416,4,0),(15531,'27374',25417,25418,4,0),(15532,'27375',25697,25698,4,0),(15533,'27375',24849,24850,4,0),(15534,'27375',25003,25004,4,0),(15535,'27376',25005,25006,4,0),(15536,'27377',25007,25008,4,0),(15537,'27378',25009,25010,4,0),(15538,'27379',25011,25012,4,0),(15539,'27380',25079,25080,4,0),(15540,'27388',25081,25082,4,0),(15541,'27389',25083,25084,4,0),(15542,'27390',25527,25528,4,0),(15543,'27391',24683,24684,4,0),(15544,'27391',25529,25530,4,0),(15545,'27392',25607,25608,4,0),(15546,'27400',25085,25086,4,0),(15547,'27400',25231,25232,4,0),(15548,'27410',25233,25234,4,0),(15549,'27411',25235,25236,4,0),(15550,'27412',25237,25238,4,0),(15551,'27413',24685,24686,4,0),(15552,'27413',25239,25240,4,0),(15553,'27414',25241,25242,4,0),(15554,'27415',25243,25244,4,0),(15555,'27416',25245,25246,4,0),(15556,'27417',25247,25248,4,0),(15557,'27418',25249,25250,4,0),(15558,'27419',25443,25444,4,0),(15559,'27419',25251,25252,4,0),(15560,'27420',25253,25254,4,0),(15561,'27421',25635,25636,4,0),(15562,'27422',25637,25638,4,0),(15563,'27423',25639,25640,4,0),(15564,'27424',25641,25642,4,0),(15565,'27425',25643,25644,4,0),(15566,'27430',25445,25446,4,0),(15567,'27437',25447,25448,4,0),(15568,'27438',25449,25450,4,0),(15569,'27439',25451,25452,4,0),(15570,'27440',25645,25646,4,0),(15571,'27450',25453,25454,4,0),(15572,'27460',25647,25648,4,0),(15573,'27466',25649,25650,4,0),(15574,'27468',25651,25652,4,0),(15575,'27469',25653,25654,4,0),(15576,'27470',25455,25456,4,0),(15577,'27500',24975,24976,4,0),(15578,'27510',24977,24978,4,0),(15579,'27511',24979,24980,4,0),(15580,'27512',24981,24982,4,0),(15581,'27513',24983,24984,4,0),(15582,'27514',24985,24986,4,0),(15583,'27515',25265,25266,4,0),(15584,'27515',24987,24988,4,0),(15585,'27516',24989,24990,4,0),(15586,'27517',24991,24992,4,0),(15587,'27518',24993,24994,4,0),(15588,'27519',24995,24996,4,0),(15589,'27520',24871,24872,4,0),(15590,'27527',24873,24874,4,0),(15591,'27528',24875,24876,4,0),(15592,'27529',24877,24878,4,0),(15593,'27530',24879,24880,4,0),(15594,'27531',24881,24882,4,0),(15595,'27532',25351,25352,4,0),(15596,'27532',24883,24884,4,0),(15597,'27533',24997,24998,4,0),(15598,'27533',24885,24886,4,0),(15599,'27540',25353,25354,4,0),(15600,'27543',25355,25356,4,0),(15601,'27544',25357,25358,4,0),(15602,'27545',25359,25360,4,0),(15603,'27546',25361,25362,4,0),(15604,'27547',25363,25364,4,0),(15605,'27548',25365,25366,4,0),(15606,'27549',25457,25458,4,0),(15607,'27549',25367,25368,4,0),(15608,'27550',25657,25658,4,0),(15609,'27554',25659,25660,4,0),(15610,'27555',25661,25662,4,0),(15611,'27556',25663,25664,4,0),(15612,'27557',25665,25666,4,0),(15613,'27558',25667,25668,4,0),(15614,'27559',25669,25670,4,0),(15615,'27560',25267,25268,4,0),(15616,'27568',25269,25270,4,0),(15617,'27569',25271,25272,4,0),(15618,'27570',24739,24740,4,0),(15619,'27576',24741,24742,4,0),(15620,'27577',24743,24744,4,0),(15621,'27578',24745,24746,4,0),(15622,'27579',24747,24748,4,0),(15623,'27590',25255,25256,4,0),(15624,'27591',25257,25258,4,0),(15625,'27592',25459,25460,4,0),(15626,'27592',25259,25260,4,0),(15627,'27593',25461,25462,4,0),(15628,'27594',25369,25370,4,0),(15629,'27595',24999,25000,4,0),(15630,'27596',25671,25672,4,0),(15631,'27600',25609,25610,4,0),(15632,'27610',25611,25612,4,0),(15633,'27611',25465,25466,4,0),(15634,'27612',25613,25614,4,0),(15635,'27612',25467,25468,4,0),(15636,'27613',25615,25616,4,0),(15637,'27614',25121,25122,4,0),(15638,'27614',25617,25618,4,0),(15639,'27615',25123,25124,4,0),(15640,'27615',25619,25620,4,0),(15641,'27616',25621,25622,4,0),(15642,'27617',25623,25624,4,0),(15643,'27618',25625,25626,4,0),(15644,'27619',25627,25628,4,0),(15645,'27620',25581,25582,4,0),(15646,'27623',25583,25584,4,0),(15647,'27624',25585,25586,4,0),(15648,'27625',25587,25588,4,0),(15649,'27626',25589,25590,4,0),(15650,'27627',25591,25592,4,0),(15651,'27628',25593,25594,4,0),(15652,'27630',25685,25686,4,0),(15653,'27631',25595,25596,4,0),(15654,'27631',25687,25688,4,0),(15655,'27632',25689,25690,4,0),(15656,'27633',25597,25598,4,0),(15657,'27633',25347,25348,4,0),(15658,'27634',25691,25692,4,0),(15659,'27635',25599,25600,4,0),(15660,'27636',25601,25602,4,0),(15661,'27637',25629,25630,4,0),(15662,'27638',25603,25604,4,0),(15663,'27639',25693,25694,4,0),(15664,'27640',24809,24810,4,0),(15665,'27646',24751,24752,4,0),(15666,'27647',24811,24812,4,0),(15667,'27648',24813,24814,4,0),(15668,'27649',24815,24816,4,0),(15669,'27650',24817,24818,4,0),(15670,'27650',25285,25286,4,0),(15671,'27651',25287,25288,4,0),(15672,'27652',25289,25290,4,0),(15673,'27653',25291,25292,4,0),(15674,'27654',25293,25294,4,0),(15675,'27655',25295,25296,4,0),(15676,'27656',25297,25298,4,0),(15677,'27657',25299,25300,4,0),(15678,'27658',25301,25302,4,0),(15679,'27659',24947,24948,4,0),(15680,'27659',25303,25304,4,0),(15681,'27660',24819,24820,4,0),(15682,'27661',24949,24950,4,0),(15683,'27661',24821,24822,4,0),(15684,'27662',24951,24952,4,0),(15685,'27663',24823,24824,4,0),(15686,'27664',24953,24954,4,0),(15687,'27664',24825,24826,4,0),(15688,'27665',24955,24956,4,0),(15689,'27666',24957,24958,4,0),(15690,'27667',24959,24960,4,0),(15691,'27668',24827,24828,4,0),(15692,'27670',25471,25472,4,0),(15693,'27671',25473,25474,4,0),(15694,'27672',25475,25476,4,0),(15695,'27673',25477,25478,4,0),(15696,'27675',24753,24754,4,0),(15697,'27676',24755,24756,4,0),(15698,'27677',24829,24830,4,0),(15699,'27677',24961,24962,4,0),(15700,'27677',24757,24758,4,0),(15701,'27678',24831,24832,4,0),(15702,'27679',24833,24834,4,0),(15703,'27680',24777,24778,4,0),(15704,'27685',24779,24780,4,0),(15705,'27686',24781,24782,4,0),(15706,'27687',24783,24784,4,0),(15707,'27688',24785,24786,4,0),(15708,'27689',24787,24788,4,0),(15709,'27690',25631,25632,4,0),(15710,'27691',25125,25126,4,0),(15711,'27692',25127,25128,4,0),(15712,'27693',25129,25130,4,0),(15713,'27694',24835,24836,4,0),(15714,'27695',24789,24790,4,0),(15715,'27695',24837,24838,4,0),(15716,'27696',24791,24792,4,0),(15717,'27697',24793,24794,4,0),(15718,'27698',24839,24840,4,0),(15719,'27699',25131,25132,4,0),(15720,'27700',25537,25538,4,0),(15721,'27700',25373,25374,4,0),(15722,'27710',25539,25540,4,0),(15723,'27711',25541,25542,4,0),(15724,'27712',25543,25544,4,0),(15725,'27713',25545,25546,4,0),(15726,'27714',25547,25548,4,0),(15727,'27715',25549,25550,4,0),(15728,'27720',24691,24692,4,0),(15729,'27721',24693,24694,4,0),(15730,'27722',24695,24696,4,0),(15731,'27723',24697,24698,4,0),(15732,'27724',24699,24700,4,0),(15733,'27725',24701,24702,4,0),(15734,'27726',24703,24704,4,0),(15735,'27727',24705,24706,4,0),(15736,'27728',24707,24708,4,0),(15737,'27729',24709,24710,4,0),(15738,'27730',24713,24714,4,0),(15739,'27737',24715,24716,4,0),(15740,'27738',24717,24718,4,0),(15741,'27740',25215,25216,4,0),(15742,'27742',25217,25218,4,0),(15743,'27743',25573,25574,4,0),(15744,'27744',25575,25576,4,0),(15745,'27745',25577,25578,4,0),(15746,'27747',25219,25220,4,0),(15747,'27748',25221,25222,4,0),(15748,'27749',25223,25224,4,0),(15749,'27750',25135,25136,4,0),(15750,'27751',25137,25138,4,0),(15751,'27752',25225,25226,4,0),(15752,'27760',25139,25140,4,0),(15753,'27765',25675,25676,4,0),(15754,'27766',25677,25678,4,0),(15755,'27767',25679,25680,4,0),(15756,'27768',25681,25682,4,0),(15757,'27770',25375,25376,4,0),(15758,'27773',24727,24728,4,0),(15759,'27774',24729,24730,4,0),(15760,'27775',24731,24732,4,0),(15761,'27776',24733,24734,4,0),(15762,'27777',25377,25378,4,0),(15763,'27778',25379,25380,4,0),(15764,'27778',24735,24736,4,0),(15765,'27779',25381,25382,4,0),(15766,'27780',25029,25030,4,0),(15767,'27785',25031,25032,4,0),(15768,'27786',25033,25034,4,0),(15769,'27787',25035,25036,4,0),(15770,'27788',25037,25038,4,0),(15771,'27789',25039,25040,4,0),(15772,'27790',24797,24798,4,0),(15773,'27791',25227,25228,4,0),(15774,'27792',24799,24800,4,0),(15775,'27793',24801,24802,4,0),(15776,'27794',24803,24804,4,0),(15777,'27796',25551,25552,4,0),(15778,'27797',25553,25554,4,0),(15779,'27798',24805,24806,4,0),(15780,'27800',25699,25700,4,0),(15781,'27810',25701,25702,4,0),(15782,'27811',25703,25704,4,0),(15783,'27812',25705,25706,4,0),(15784,'27813',25707,25708,4,0),(15785,'27814',25709,25710,4,0),(15786,'27815',25711,25712,4,0),(15787,'27816',25713,25714,4,0),(15788,'27817',25275,25276,4,0),(15789,'27818',25715,25716,4,0),(15790,'27820',25717,25718,4,0),(15791,'27821',25719,25720,4,0),(15792,'27822',25721,25722,4,0),(15793,'27823',25723,25724,4,0),(15794,'27824',25755,25756,4,0),(15795,'27825',25725,25726,4,0),(15796,'27826',25757,25758,4,0),(15797,'27830',25727,25728,4,0),(15798,'27832',25759,25760,4,0),(15799,'27833',25761,25762,4,0),(15800,'27834',25763,25764,4,0),(15801,'27835',25765,25766,4,0),(15802,'27836',25277,25278,4,0),(15803,'27837',25279,25280,4,0),(15804,'27840',25729,25730,4,0),(15805,'27841',25731,25732,4,0),(15806,'27842',25733,25734,4,0),(15807,'27843',25735,25736,4,0),(15808,'27843',24719,24720,4,0),(15809,'27845',24721,24722,4,0),(15810,'27849',24723,24724,4,0),(15811,'27850',25739,25740,4,0),(15812,'27860',25385,25386,4,0),(15813,'27861',25741,25742,4,0),(15814,'27861',25387,25388,4,0),(15815,'27863',25743,25744,4,0),(15816,'27864',25745,25746,4,0),(15817,'27865',25281,25282,4,0),(15818,'27865',25393,25394,4,0),(15819,'27866',25395,25396,4,0),(15820,'27866',25747,25748,4,0),(15821,'27867',25397,25398,4,0),(15822,'27867',25749,25750,4,0),(15823,'27868',25389,25390,4,0),(15824,'27869',25751,25752,4,0),(15825,'27870',25769,25770,4,0),(15826,'27876',25771,25772,4,0),(15827,'27877',25773,25774,4,0),(15828,'27878',25775,25776,4,0),(15829,'27879',25777,25778,4,0),(15830,'27880',24867,24868,4,0),(15831,'27888',24965,24966,4,0),(15832,'27889',24967,24968,4,0),(15833,'27890',24969,24970,4,0),(15834,'27891',24971,24972,4,0),(15835,'27892',25041,25042,4,0),(15836,'27893',25043,25044,4,0),(15837,'28000',26247,26248,4,0),(15838,'28001',26249,26250,4,0),(15839,'28002',26251,26252,4,0),(15840,'28003',26253,26254,4,0),(15841,'28004',26255,26256,4,0),(15842,'28005',26257,26258,4,0),(15843,'28006',26259,26260,4,0),(15844,'28007',26261,26262,4,0),(15845,'28008',26263,26264,4,0),(15846,'28009',26265,26266,4,0),(15847,'28010',26267,26268,4,0),(15848,'28011',26269,26270,4,0),(15849,'28012',26271,26272,4,0),(15850,'28013',26273,26274,4,0),(15851,'28014',26275,26276,4,0),(15852,'28015',26277,26278,4,0),(15853,'28016',26279,26280,4,0),(15854,'28017',26281,26282,4,0),(15855,'28018',26283,26284,4,0),(15856,'28019',26285,26286,4,0),(15857,'28020',26287,26288,4,0),(15858,'28021',26289,26290,4,0),(15859,'28022',26291,26292,4,0),(15860,'28023',26293,26294,4,0),(15861,'28024',26295,26296,4,0),(15862,'28025',26297,26298,4,0),(15863,'28026',26299,26300,4,0),(15864,'28027',26301,26302,4,0),(15865,'28028',26303,26304,4,0),(15866,'28029',26305,26306,4,0),(15867,'28030',26307,26308,4,0),(15868,'28031',26309,26310,4,0),(15869,'28032',26311,26312,4,0),(15870,'28033',26313,26314,4,0),(15871,'28034',26315,26316,4,0),(15872,'28035',26317,26318,4,0),(15873,'28036',26319,26320,4,0),(15874,'28037',26321,26322,4,0),(15875,'28038',26323,26324,4,0),(15876,'28039',26325,26326,4,0),(15877,'28040',26327,26328,4,0),(15878,'28041',26329,26330,4,0),(15879,'28042',26331,26332,4,0),(15880,'28043',26333,26334,4,0),(15881,'28044',26335,26336,4,0),(15882,'28045',26337,26338,4,0),(15883,'28046',26339,26340,4,0),(15884,'28047',26341,26342,4,0),(15885,'28048',26343,26344,4,0),(15886,'28049',26345,26346,4,0),(15887,'28050',26347,26348,4,0),(15888,'28051',26349,26350,4,0),(15889,'28052',26351,26352,4,0),(15890,'28053',26353,26354,4,0),(15891,'28054',26355,26356,4,0),(15892,'28055',26357,26358,4,0),(15893,'28100',25807,25808,4,0),(15894,'28108',25809,25810,4,0),(15895,'28109',25811,25812,4,0),(15896,'28110',25831,25832,4,0),(15897,'28120',25979,25980,4,0),(15898,'28120',25833,25834,4,0),(15899,'28130',26735,26736,4,0),(15900,'28140',26087,26088,4,0),(15901,'28150',26743,26744,4,0),(15902,'28160',26655,26656,4,0),(15903,'28170',26739,26740,4,0),(15904,'28180',26679,26680,4,0),(15905,'28189',26687,26688,4,0),(15906,'28189',26023,26024,4,0),(15907,'28189',26485,26486,4,0),(15908,'28190',16321,16322,4,0),(15909,'28190',26531,26532,4,0),(15910,'28190',26389,26390,4,0),(15911,'28191',26527,26528,4,0),(15912,'28191',26183,26184,4,0),(15913,'28191',26161,26162,4,0),(15914,'28192',26027,26028,4,0),(15915,'28193',25943,25944,4,0),(15916,'28194',26573,26574,4,0),(15917,'28194',25877,25878,4,0),(15918,'28195',26535,26536,4,0),(15919,'28196',26537,26538,4,0),(15920,'28200',26597,26598,4,0),(15921,'28210',26433,26434,4,0),(15922,'28210',26721,26722,4,0),(15923,'28211',26039,26040,4,0),(15924,'28212',26435,26436,4,0),(15925,'28212',26041,26042,4,0),(15926,'28213',25975,25976,4,0),(15927,'28214',26063,26064,4,0),(15928,'28219',26043,26044,4,0),(15929,'28220',26361,26362,4,0),(15930,'28221',26363,26364,4,0),(15931,'28222',26365,26366,4,0),(15932,'28223',26517,26518,4,0),(15933,'28224',26519,26520,4,0),(15934,'28229',26797,26798,4,0),(15935,'28231',26191,26192,4,0),(15936,'28232',26193,26194,4,0),(15937,'28240',26165,26166,4,0),(15938,'28248',26167,26168,4,0),(15939,'28250',26095,26096,4,0),(15940,'28250',26683,26684,4,0),(15941,'28260',26097,26098,4,0),(15942,'28270',26099,26100,4,0),(15943,'28270',25989,25990,4,0),(15944,'28279',25991,25992,4,0),(15945,'28280',26045,26046,4,0),(15946,'28290',26195,26196,4,0),(15947,'28292',26101,26102,4,0),(15948,'28292',26047,26048,4,0),(15949,'28293',26819,26820,4,0),(15950,'28294',26577,26578,4,0),(15951,'28295',26717,26718,4,0),(15952,'28296',26629,26630,4,0),(15953,'28297',26631,26632,4,0),(15954,'28300',25851,25852,4,0),(15955,'28320',26509,26510,4,0),(15956,'28330',26603,26604,4,0),(15957,'28340',26725,26726,4,0),(15958,'28350',25955,25956,4,0),(15959,'28359',26663,26664,4,0),(15960,'28360',26767,26768,4,0),(15961,'28370',25951,25952,4,0),(15962,'28380',25971,25972,4,0),(15963,'28390',25873,25874,4,0),(15964,'28391',26709,26710,4,0),(15965,'28400',26103,26104,4,0),(15966,'28400',25967,25968,4,0),(15967,'28409',25837,25838,4,0),(15968,'28410',26369,26370,4,0),(15969,'28411',26397,26398,4,0),(15970,'28412',26031,26032,4,0),(15971,'28413',26033,26034,4,0),(15972,'28420',26105,26106,4,0),(15973,'28430',26149,26150,4,0),(15974,'28430',25839,25840,4,0),(15975,'28440',26151,26152,4,0),(15976,'28450',25963,25964,4,0),(15977,'28460',26223,26224,4,0),(15978,'28470',25939,25940,4,0),(15979,'28470',26371,26372,4,0),(15980,'28480',26153,26154,4,0),(15981,'28490',25869,25870,4,0),(15982,'28491',26425,26426,4,0),(15983,'28492',26035,26036,4,0),(15984,'28492',26373,26374,4,0),(15985,'28500',25855,25856,4,0),(15986,'28510',25919,25920,4,0),(15987,'28511',26747,26748,4,0),(15988,'28512',26801,26802,4,0),(15989,'28514',26453,26454,4,0),(15990,'28514',26803,26804,4,0),(15991,'28515',26457,26458,4,0),(15992,'28521',26561,26562,4,0),(15993,'28522',26563,26564,4,0),(15994,'28523',26565,26566,4,0),(15995,'28524',26567,26568,4,0),(15996,'28529',26569,26570,4,0),(15997,'28530',26401,26402,4,0),(15998,'28540',26497,26498,4,0),(15999,'28550',26659,26660,4,0),(16000,'28560',25927,25928,4,0),(16001,'28570',26461,26462,4,0),(16002,'28580',25843,25844,4,0),(16003,'28590',26807,26808,4,0),(16004,'28594',26701,26702,4,0),(16005,'28595',26059,26060,4,0),(16006,'28596',25889,25890,4,0),(16007,'28597',26091,26092,4,0),(16008,'28598',26775,26776,4,0),(16009,'28600',26441,26442,4,0),(16010,'28607',26017,26018,4,0),(16011,'28609',26793,26794,4,0),(16012,'28609',26643,26644,4,0),(16013,'28609',26783,26784,4,0),(16014,'28610',26779,26780,4,0),(16015,'28620',25827,25828,4,0),(16016,'28630',26763,26764,4,0),(16017,'28635',26405,26406,4,0),(16018,'28640',25909,25910,4,0),(16019,'28648',25911,25912,4,0),(16020,'28649',26585,26586,4,0),(16021,'28650',25935,25936,4,0),(16022,'28660',25881,25882,4,0),(16023,'28670',26811,26812,4,0),(16024,'28680',26607,26608,4,0),(16025,'28690',25893,25894,4,0),(16026,'28691',26787,26788,4,0),(16027,'28692',26789,26790,4,0),(16028,'28693',26543,26544,4,0),(16029,'28694',25947,25948,4,0),(16030,'28695',26449,26450,4,0),(16031,'28696',26493,26494,4,0),(16032,'28700',26611,26612,4,0),(16033,'28701',26613,26614,4,0),(16034,'28702',26615,26616,4,0),(16035,'28703',26617,26618,4,0),(16036,'28706',26619,26620,4,0),(16037,'28707',26621,26622,4,0),(16038,'28707',25981,25982,4,0),(16039,'28708',26623,26624,4,0),(16040,'28709',26625,26626,4,0),(16041,'28720',25901,25902,4,0),(16042,'28721',25905,25906,4,0),(16043,'28721',26553,26554,4,0),(16044,'28722',26055,26056,4,0),(16045,'28723',26489,26490,4,0),(16046,'28729',26713,26714,4,0),(16047,'28729',26759,26760,4,0),(16048,'28729',26429,26430,4,0),(16049,'28730',25897,25898,4,0),(16050,'28737',26187,26188,4,0),(16051,'28737',25885,25886,4,0),(16052,'28737',26119,26120,4,0),(16053,'28737',26513,26514,4,0),(16054,'28739',26815,26816,4,0),(16055,'28739',26115,26116,4,0),(16056,'28739',26445,26446,4,0),(16057,'28739',26109,26110,4,0),(16058,'28740',26547,26548,4,0),(16059,'28742',26231,26232,4,0),(16060,'28742',25787,25788,4,0),(16061,'28743',26111,26112,4,0),(16062,'28743',25923,25924,4,0),(16063,'28749',26549,26550,4,0),(16064,'28749',26505,26506,4,0),(16065,'28750',25983,25984,4,0),(16066,'28750',26589,26590,4,0),(16067,'28750',26599,26600,4,0),(16068,'28751',26179,26180,4,0),(16069,'28752',26235,26236,4,0),(16070,'28753',26237,26238,4,0),(16071,'28754',26539,26540,4,0),(16072,'28754',26239,26240,4,0),(16073,'28755',26175,26176,4,0),(16074,'28755',26243,26244,4,0),(16075,'28755',26581,26582,4,0),(16076,'28755',26157,26158,4,0),(16077,'28756',26647,26648,4,0),(16078,'28760',26695,26696,4,0),(16079,'28761',26697,26698,4,0),(16080,'28770',25985,25986,4,0),(16081,'28791',26651,26652,4,0),(16082,'28792',26385,26386,4,0),(16083,'28794',26145,26146,4,0),(16084,'28801',25791,25792,4,0),(16085,'28802',25793,25794,4,0),(16086,'28803',25795,25796,4,0),(16087,'28804',25797,25798,4,0),(16088,'28805',25799,25800,4,0),(16089,'28806',25801,25802,4,0),(16090,'28807',26019,26020,4,0),(16091,'28807',25803,25804,4,0),(16092,'28810',26771,26772,4,0),(16093,'28811',25995,25996,4,0),(16094,'28812',26751,26752,4,0),(16095,'28812',26501,26502,4,0),(16096,'28813',26523,26524,4,0),(16097,'28813',26691,26692,4,0),(16098,'28814',26013,26014,4,0),(16099,'28815',26557,26558,4,0),(16100,'28815',26067,26068,4,0),(16101,'28816',26705,26706,4,0),(16102,'28816',25915,25916,4,0),(16103,'28817',26227,26228,4,0),(16104,'28818',25847,25848,4,0),(16105,'28818',26635,26636,4,0),(16106,'28820',25999,26000,4,0),(16107,'28821',26001,26002,4,0),(16108,'28822',26003,26004,4,0),(16109,'28823',26005,26006,4,0),(16110,'28830',26593,26594,4,0),(16111,'28840',26381,26382,4,0),(16112,'28850',26667,26668,4,0),(16113,'28860',26465,26466,4,0),(16114,'28861',26467,26468,4,0),(16115,'28862',26469,26470,4,0),(16116,'28863',25959,25960,4,0),(16117,'28864',25783,25784,4,0),(16118,'28880',26377,26378,4,0),(16119,'28890',26219,26220,4,0),(16120,'28891',26755,26756,4,0),(16121,'28901',26123,26124,4,0),(16122,'28902',26125,26126,4,0),(16123,'28903',26127,26128,4,0),(16124,'28904',26129,26130,4,0),(16125,'28905',26131,26132,4,0),(16126,'28906',26133,26134,4,0),(16127,'28907',26135,26136,4,0),(16128,'28909',26137,26138,4,0),(16129,'28911',26199,26200,4,0),(16130,'28912',26201,26202,4,0),(16131,'28913',26203,26204,4,0),(16132,'28914',26205,26206,4,0),(16133,'28915',26207,26208,4,0),(16134,'28916',26209,26210,4,0),(16135,'28917',26211,26212,4,0),(16136,'28918',26213,26214,4,0),(16137,'28919',26215,26216,4,0),(16138,'28921',25815,25816,4,0),(16139,'28922',25817,25818,4,0),(16140,'28923',25819,25820,4,0),(16141,'28924',25821,25822,4,0),(16142,'28925',25823,25824,4,0),(16143,'28931',26407,26408,4,0),(16144,'28932',26409,26410,4,0),(16145,'28933',26411,26412,4,0),(16146,'28934',26413,26414,4,0),(16147,'28935',26415,26416,4,0),(16148,'28936',26417,26418,4,0),(16149,'28937',26419,26420,4,0),(16150,'28938',26421,26422,4,0),(16151,'28939',25859,25860,4,0),(16152,'28939',25863,25864,4,0),(16153,'28941',26071,26072,4,0),(16154,'28942',26073,26074,4,0),(16155,'28943',26075,26076,4,0),(16156,'28944',26077,26078,4,0),(16157,'28945',26079,26080,4,0),(16158,'28946',26081,26082,4,0),(16159,'28947',26083,26084,4,0),(16160,'28950',26393,26394,4,0),(16161,'28954',26437,26438,4,0),(16162,'28970',26171,26172,4,0),(16163,'28971',26141,26142,4,0),(16164,'28976',25865,25866,4,0),(16165,'28977',25931,25932,4,0),(16166,'28978',26009,26010,4,0),(16167,'28979',26639,26640,4,0),(16168,'28980',26473,26474,4,0),(16169,'28981',26475,26476,4,0),(16170,'28982',26477,26478,4,0),(16171,'28983',26479,26480,4,0),(16172,'28984',26481,26482,4,0),(16173,'28990',26675,26676,4,0),(16174,'28991',26671,26672,4,0),(16175,'29001',27149,27150,4,0),(16176,'29002',27151,27152,4,0),(16177,'29003',27153,27154,4,0),(16178,'29004',27155,27156,4,0),(16179,'29005',27157,27158,4,0),(16180,'29006',27159,27160,4,0),(16181,'29007',27161,27162,4,0),(16182,'29008',27163,27164,4,0),(16183,'29009',27165,27166,4,0),(16184,'29010',27167,27168,4,0),(16185,'29010',26999,27000,4,0),(16186,'29011',27169,27170,4,0),(16187,'29012',27171,27172,4,0),(16188,'29013',27173,27174,4,0),(16189,'29014',27175,27176,4,0),(16190,'29015',27177,27178,4,0),(16191,'29016',27179,27180,4,0),(16192,'29017',27181,27182,4,0),(16193,'29018',27183,27184,4,0),(16194,'29100',27025,27026,4,0),(16195,'29108',27111,27112,4,0),(16196,'29109',27341,27342,4,0),(16197,'29110',27249,27250,4,0),(16198,'29120',26855,26856,4,0),(16199,'29130',26851,26852,4,0),(16200,'29140',27185,27186,4,0),(16201,'29150',26867,26868,4,0),(16202,'29160',27011,27012,4,0),(16203,'29170',27029,27030,4,0),(16204,'29180',27299,27300,4,0),(16205,'29190',27187,27188,4,0),(16206,'29191',27189,27190,4,0),(16207,'29194',26835,26836,4,0),(16208,'29194',26839,26840,4,0),(16209,'29195',27033,27034,4,0),(16210,'29196',27191,27192,4,0),(16211,'29197',27193,27194,4,0),(16212,'29197',27357,27358,4,0),(16213,'29200',26889,26890,4,0),(16214,'29210',27053,27054,4,0),(16215,'29220',27049,27050,4,0),(16216,'29230',26891,26892,4,0),(16217,'29230',27393,27394,4,0),(16218,'29240',27361,27362,4,0),(16219,'29250',26893,26894,4,0),(16220,'29260',26895,26896,4,0),(16221,'29300',26907,26908,4,0),(16222,'29309',26909,26910,4,0),(16223,'29310',27387,27388,4,0),(16224,'29311',27389,27390,4,0),(16225,'29312',27401,27402,4,0),(16226,'29313',27405,27406,4,0),(16227,'29314',26897,26898,4,0),(16228,'29314',26911,26912,4,0),(16229,'29315',26913,26914,4,0),(16230,'29315',27397,27398,4,0),(16231,'29315',27407,27408,4,0),(16232,'29320',26973,26974,4,0),(16233,'29327',27337,27338,4,0),(16234,'29328',27331,27332,4,0),(16235,'29329',27333,27334,4,0),(16236,'29330',26863,26864,4,0),(16237,'29340',26977,26978,4,0),(16238,'29350',26929,26930,4,0),(16239,'29360',27255,27256,4,0),(16240,'29370',26965,26966,4,0),(16241,'29380',27041,27042,4,0),(16242,'29391',27043,27044,4,0),(16243,'29392',27133,27134,4,0),(16244,'29394',27303,27304,4,0),(16245,'29400',27305,27306,4,0),(16246,'29410',27419,27420,4,0),(16247,'29420',27069,27070,4,0),(16248,'29430',27307,27308,4,0),(16249,'29440',27121,27122,4,0),(16250,'29450',27287,27288,4,0),(16251,'29451',27271,27272,4,0),(16252,'29452',26995,26996,4,0),(16253,'29460',26885,26886,4,0),(16254,'29461',27085,27086,4,0),(16255,'29462',27141,27142,4,0),(16256,'29470',27195,27196,4,0),(16257,'29470',27057,27058,4,0),(16258,'29471',27309,27310,4,0),(16259,'29480',27103,27104,4,0),(16260,'29490',27045,27046,4,0),(16261,'29490',26969,26970,4,0),(16262,'29491',26945,26946,4,0),(16263,'29491',26847,26848,4,0),(16264,'29492',27137,27138,4,0),(16265,'29492',27107,27108,4,0),(16266,'29493',26937,26938,4,0),(16267,'29494',26933,26934,4,0),(16268,'29500',26871,26872,4,0),(16269,'29510',26873,26874,4,0),(16270,'29520',27099,27100,4,0),(16271,'29530',26825,26826,4,0),(16272,'29531',27115,27116,4,0),(16273,'29532',27245,27246,4,0),(16274,'29533',27117,27118,4,0),(16275,'29540',26899,26900,4,0),(16276,'29550',26917,26918,4,0),(16277,'29551',26991,26992,4,0),(16278,'29552',26919,26920,4,0),(16279,'29552',26875,26876,4,0),(16280,'29560',27279,27280,4,0),(16281,'29566',27015,27016,4,0),(16282,'29567',26881,26882,4,0),(16283,'29568',27281,27282,4,0),(16284,'29569',27001,27002,4,0),(16285,'29569',27283,27284,4,0),(16286,'29570',27003,27004,4,0),(16287,'29580',27005,27006,4,0),(16288,'29590',27197,27198,4,0),(16289,'29591',27199,27200,4,0),(16290,'29592',27007,27008,4,0),(16291,'29593',26877,26878,4,0),(16292,'29601',27213,27214,4,0),(16293,'29602',27215,27216,4,0),(16294,'29603',27217,27218,4,0),(16295,'29604',27219,27220,4,0),(16296,'29610',27265,27266,4,0),(16297,'29611',27125,27126,4,0),(16298,'29620',27267,27268,4,0),(16299,'29620',27201,27202,4,0),(16300,'29620',27345,27346,4,0),(16301,'29630',26949,26950,4,0),(16302,'29631',26951,26952,4,0),(16303,'29639',26953,26954,4,0),(16304,'29640',27095,27096,4,0),(16305,'29647',27229,27230,4,0),(16306,'29648',27231,27232,4,0),(16307,'29649',27233,27234,4,0),(16308,'29650',27235,27236,4,0),(16309,'29651',27237,27238,4,0),(16310,'29660',27221,27222,4,0),(16311,'29670',27223,27224,4,0),(16312,'29679',26941,26942,4,0),(16313,'29680',27073,27074,4,0),(16314,'29688',27075,27076,4,0),(16315,'29689',27077,27078,4,0),(16316,'29690',27019,27020,4,0),(16317,'29691',27207,27208,4,0),(16318,'29692',27209,27210,4,0),(16319,'29692',27021,27022,4,0),(16320,'29693',27079,27080,4,0),(16321,'29698',27081,27082,4,0),(16322,'29700',27365,27366,4,0),(16323,'29710',27275,27276,4,0),(16324,'29711',26829,26830,4,0),(16325,'29712',27411,27412,4,0),(16326,'29713',27413,27414,4,0),(16327,'29713',26831,26832,4,0),(16328,'29714',27313,27314,4,0),(16329,'29715',27323,27324,4,0),(16330,'29716',26981,26982,4,0),(16331,'29717',26923,26924,4,0),(16332,'29718',26859,26860,4,0),(16333,'29718',26957,26958,4,0),(16334,'29718',27061,27062,4,0),(16335,'29718',27065,27066,4,0),(16336,'29718',27367,27368,4,0),(16337,'29719',27369,27370,4,0),(16338,'29719',27325,27326,4,0),(16339,'29719',26961,26962,4,0),(16340,'29719',26983,26984,4,0),(16341,'29719',27415,27416,4,0),(16342,'29720',27291,27292,4,0),(16343,'29720',27203,27204,4,0),(16344,'29730',27293,27294,4,0),(16345,'29738',27241,27242,4,0),(16346,'29738',27295,27296,4,0),(16347,'29740',27371,27372,4,0),(16348,'29749',27373,27374,4,0),(16349,'29750',26843,26844,4,0),(16350,'29750',27375,27376,4,0),(16351,'29751',27377,27378,4,0),(16352,'29752',27317,27318,4,0),(16353,'29753',26903,26904,4,0),(16354,'29753',26925,26926,4,0),(16355,'29753',27319,27320,4,0),(16356,'29754',27037,27038,4,0),(16357,'29755',26987,26988,4,0),(16358,'29760',27379,27380,4,0),(16359,'29770',27349,27350,4,0),(16360,'29780',27259,27260,4,0),(16361,'29787',27261,27262,4,0),(16362,'29788',27089,27090,4,0),(16363,'29789',27091,27092,4,0),(16364,'29790',27381,27382,4,0),(16365,'29791',27145,27146,4,0),(16366,'29792',27383,27384,4,0),(16367,'29792',27129,27130,4,0),(16368,'29793',27351,27352,4,0),(16369,'29796',27353,27354,4,0),(16370,'30000',27783,27784,4,0),(16371,'30001',27785,27786,4,0),(16372,'30002',27787,27788,4,0),(16373,'30003',27789,27790,4,0),(16374,'30004',27791,27792,4,0),(16375,'30005',27793,27794,4,0),(16376,'30006',27795,27796,4,0),(16377,'30007',27797,27798,4,0),(16378,'30008',27799,27800,4,0),(16379,'30009',27801,27802,4,0),(16380,'30010',27803,27804,4,0),(16381,'30011',27805,27806,4,0),(16382,'30012',27807,27808,4,0),(16383,'30017',27669,27670,4,0),(16384,'30100',27809,27810,4,0),(16385,'30107',27811,27812,4,0),(16386,'30108',27813,27814,4,0),(16387,'30110',27815,27816,4,0),(16388,'30120',27817,27818,4,0),(16389,'30130',27475,27476,4,0),(16390,'30139',27819,27820,4,0),(16391,'30140',27947,27948,4,0),(16392,'30148',27949,27950,4,0),(16393,'30149',27951,27952,4,0),(16394,'30150',27821,27822,4,0),(16395,'30151',27823,27824,4,0),(16396,'30152',27825,27826,4,0),(16397,'30153',27827,27828,4,0),(16398,'30154',27829,27830,4,0),(16399,'30155',27831,27832,4,0),(16400,'30156',27833,27834,4,0),(16401,'30157',27835,27836,4,0),(16402,'30158',27837,27838,4,0),(16403,'30160',27839,27840,4,0),(16404,'30161',27841,27842,4,0),(16405,'30162',27843,27844,4,0),(16406,'30163',27845,27846,4,0),(16407,'30164',27847,27848,4,0),(16408,'30165',27849,27850,4,0),(16409,'30166',27851,27852,4,0),(16410,'30167',27853,27854,4,0),(16411,'30168',27855,27856,4,0),(16412,'30169',27857,27858,4,0),(16413,'30170',27769,27770,4,0),(16414,'30176',27907,27908,4,0),(16415,'30178',27771,27772,4,0),(16416,'30179',27859,27860,4,0),(16417,'30180',27483,27484,4,0),(16418,'30189',27485,27486,4,0),(16419,'30189',27595,27596,4,0),(16420,'30190',27447,27448,4,0),(16421,'30191',27493,27494,4,0),(16422,'30192',27495,27496,4,0),(16423,'30193',27773,27774,4,0),(16424,'30194',27775,27776,4,0),(16425,'30195',27499,27500,4,0),(16426,'30196',27909,27910,4,0),(16427,'30201',27513,27514,4,0),(16428,'30202',27515,27516,4,0),(16429,'30203',27517,27518,4,0),(16430,'30204',27519,27520,4,0),(16431,'30205',27521,27522,4,0),(16432,'30300',27523,27524,4,0),(16433,'30310',27525,27526,4,0),(16434,'30319',27527,27528,4,0),(16435,'30320',27627,27628,4,0),(16436,'30330',27529,27530,4,0),(16437,'30331',27861,27862,4,0),(16438,'30332',27629,27630,4,0),(16439,'30333',27631,27632,4,0),(16440,'30334',27633,27634,4,0),(16441,'30335',27635,27636,4,0),(16442,'30335',27715,27716,4,0),(16443,'30338',27637,27638,4,0),(16444,'30350',27531,27532,4,0),(16445,'30351',27533,27534,4,0),(16446,'30360',27651,27652,4,0),(16447,'30362',27653,27654,4,0),(16448,'30364',27655,27656,4,0),(16449,'30365',27535,27536,4,0),(16450,'30366',27537,27538,4,0),(16451,'30367',27539,27540,4,0),(16452,'30368',27541,27542,4,0),(16453,'30369',27543,27544,4,0),(16454,'30369',27657,27658,4,0),(16455,'30370',27545,27546,4,0),(16456,'30370',27923,27924,4,0),(16457,'30379',27925,27926,4,0),(16458,'30380',27547,27548,4,0),(16459,'30380',27927,27928,4,0),(16460,'30381',27549,27550,4,0),(16461,'30382',27551,27552,4,0),(16462,'30383',27553,27554,4,0),(16463,'30384',27555,27556,4,0),(16464,'30385',27557,27558,4,0),(16465,'30387',27559,27560,4,0),(16466,'30387',27751,27752,4,0),(16467,'30389',27561,27562,4,0),(16468,'30390',27563,27564,4,0),(16469,'30391',27565,27566,4,0),(16470,'30392',27567,27568,4,0),(16471,'30393',27569,27570,4,0),(16472,'30394',27571,27572,4,0),(16473,'30395',27573,27574,4,0),(16474,'30396',27575,27576,4,0),(16475,'30397',27577,27578,4,0),(16476,'30398',27579,27580,4,0),(16477,'30399',27581,27582,4,0),(16478,'30400',27501,27502,4,0),(16479,'30400',27753,27754,4,0),(16480,'30410',27503,27504,4,0),(16481,'30410',27755,27756,4,0),(16482,'30411',27505,27506,4,0),(16483,'30411',27757,27758,4,0),(16484,'30412',27507,27508,4,0),(16485,'30413',27759,27760,4,0),(16486,'30413',27509,27510,4,0),(16487,'30420',27597,27598,4,0),(16488,'30420',27489,27490,4,0),(16489,'30430',27599,27600,4,0),(16490,'30438',27601,27602,4,0),(16491,'30439',27603,27604,4,0),(16492,'30440',27761,27762,4,0),(16493,'30441',27763,27764,4,0),(16494,'30442',27765,27766,4,0),(16495,'30500',27737,27738,4,0),(16496,'30506',27739,27740,4,0),(16497,'30507',27741,27742,4,0),(16498,'30508',27743,27744,4,0),(16499,'30509',27745,27746,4,0),(16500,'30510',27991,27992,4,0),(16501,'30520',27643,27644,4,0),(16502,'30528',27645,27646,4,0),(16503,'30529',27647,27648,4,0),(16504,'30540',27479,27480,4,0),(16505,'30550',27435,27436,4,0),(16506,'30559',27437,27438,4,0),(16507,'30560',27459,27460,4,0),(16508,'30561',27461,27462,4,0),(16509,'30562',27607,27608,4,0),(16510,'30563',27609,27610,4,0),(16511,'30564',27707,27708,4,0),(16512,'30565',27661,27662,4,0),(16513,'30570',27863,27864,4,0),(16514,'30579',27865,27866,4,0),(16515,'30580',27867,27868,4,0),(16516,'30588',27869,27870,4,0),(16517,'30589',27871,27872,4,0),(16518,'30590',27873,27874,4,0),(16519,'30590',27583,27584,4,0),(16520,'30591',27957,27958,4,0),(16521,'30592',27875,27876,4,0),(16522,'30592',27929,27930,4,0),(16523,'30592',27959,27960,4,0),(16524,'30593',27585,27586,4,0),(16525,'30594',27587,27588,4,0),(16526,'30600',27469,27470,4,0),(16527,'30609',27471,27472,4,0),(16528,'30610',27919,27920,4,0),(16529,'30611',27903,27904,4,0),(16530,'30612',27981,27982,4,0),(16531,'30613',27985,27986,4,0),(16532,'30620',27617,27618,4,0),(16533,'30626',27425,27426,4,0),(16534,'30626',27619,27620,4,0),(16535,'30628',27621,27622,4,0),(16536,'30629',27953,27954,4,0),(16537,'30629',27623,27624,4,0),(16538,'30640',27427,27428,4,0),(16539,'30648',27429,27430,4,0),(16540,'30649',27431,27432,4,0),(16541,'30700',27961,27962,4,0),(16542,'30708',27963,27964,4,0),(16543,'30709',27965,27966,4,0),(16544,'30710',27711,27712,4,0),(16545,'30710',27967,27968,4,0),(16546,'30720',27931,27932,4,0),(16547,'30729',27933,27934,4,0),(16548,'30730',27935,27936,4,0),(16549,'30739',27937,27938,4,0),(16550,'30739',27969,27970,4,0),(16551,'30740',27941,27942,4,0),(16552,'30749',27943,27944,4,0),(16553,'30750',27877,27878,4,0),(16554,'30800',27671,27672,4,0),(16555,'30810',27673,27674,4,0),(16556,'30811',27675,27676,4,0),(16557,'30812',27677,27678,4,0),(16558,'30813',27679,27680,4,0),(16559,'30814',27681,27682,4,0),(16560,'30815',27683,27684,4,0),(16561,'30816',27685,27686,4,0),(16562,'30817',27687,27688,4,0),(16563,'30818',27689,27690,4,0),(16564,'30820',27451,27452,4,0),(16565,'30826',27879,27880,4,0),(16566,'30830',27881,27882,4,0),(16567,'30831',27883,27884,4,0),(16568,'30832',27885,27886,4,0),(16569,'30833',27887,27888,4,0),(16570,'30834',27691,27692,4,0),(16571,'30834',27889,27890,4,0),(16572,'30835',27891,27892,4,0),(16573,'30835',27589,27590,4,0),(16574,'30836',27893,27894,4,0),(16575,'30837',27895,27896,4,0),(16576,'30840',27465,27466,4,0),(16577,'30850',27897,27898,4,0),(16578,'30850',27973,27974,4,0),(16579,'30858',27975,27976,4,0),(16580,'30858',27717,27718,4,0),(16581,'30859',27977,27978,4,0),(16582,'30859',27455,27456,4,0),(16583,'30860',27719,27720,4,0),(16584,'30868',27591,27592,4,0),(16585,'30868',27721,27722,4,0),(16586,'30870',27723,27724,4,0),(16587,'30875',27725,27726,4,0),(16588,'30876',27693,27694,4,0),(16589,'30876',27727,27728,4,0),(16590,'30877',27729,27730,4,0),(16591,'30878',27695,27696,4,0),(16592,'30878',27731,27732,4,0),(16593,'30879',27733,27734,4,0),(16594,'30880',27441,27442,4,0),(16595,'30883',27899,27900,4,0),(16596,'30889',27443,27444,4,0),(16597,'30889',27697,27698,4,0),(16598,'30890',27699,27700,4,0),(16599,'30890',27913,27914,4,0),(16600,'30891',27915,27916,4,0),(16601,'30892',27665,27666,4,0),(16602,'30893',27701,27702,4,0),(16603,'31001',28989,28990,4,0),(16604,'31002',28991,28992,4,0),(16605,'31003',28993,28994,4,0),(16606,'31004',28995,28996,4,0),(16607,'31005',28997,28998,4,0),(16608,'31006',28999,29000,4,0),(16609,'31007',29001,29002,4,0),(16610,'31008',29003,29004,4,0),(16611,'31009',29005,29006,4,0),(16612,'31010',29007,29008,4,0),(16613,'31010',28193,28194,4,0),(16614,'31011',29009,29010,4,0),(16615,'31012',29011,29012,4,0),(16616,'31013',28067,28068,4,0),(16617,'31013',28265,28266,4,0),(16618,'31013',28271,28272,4,0),(16619,'31014',29013,29014,4,0),(16620,'31015',29015,29016,4,0),(16621,'31016',29017,29018,4,0),(16622,'31100',29037,29038,4,0),(16623,'31109',28161,28162,4,0),(16624,'31110',28905,28906,4,0),(16625,'31119',28907,28908,4,0),(16626,'31130',28805,28806,4,0),(16627,'31131',28365,28366,4,0),(16628,'31132',29259,29260,4,0),(16629,'31133',28721,28722,4,0),(16630,'31133',29205,29206,4,0),(16631,'31140',28157,28158,4,0),(16632,'31150',28831,28832,4,0),(16633,'31151',28913,28914,4,0),(16634,'31152',28889,28890,4,0),(16635,'31153',28023,28024,4,0),(16636,'31153',28415,28416,4,0),(16637,'31154',29141,29142,4,0),(16638,'31154',29119,29120,4,0),(16639,'31154',28063,28064,4,0),(16640,'31160',28969,28970,4,0),(16641,'31170',28353,28354,4,0),(16642,'31170',28641,28642,4,0),(16643,'31171',28355,28356,4,0),(16644,'31172',28569,28570,4,0),(16645,'31172',29223,29224,4,0),(16646,'31172',28643,28644,4,0),(16647,'31173',28357,28358,4,0),(16648,'31174',28403,28404,4,0),(16649,'31174',28585,28586,4,0),(16650,'31174',28289,28290,4,0),(16651,'31174',28247,28248,4,0),(16652,'31174',28483,28484,4,0),(16653,'31174',29273,29274,4,0),(16654,'31174',28369,28370,4,0),(16655,'31174',28373,28374,4,0),(16656,'31175',29063,29064,4,0),(16657,'31175',28577,28578,4,0),(16658,'31176',29227,29228,4,0),(16659,'31176',28579,28580,4,0),(16660,'31177',29229,29230,4,0),(16661,'31177',28757,28758,4,0),(16662,'31178',28001,28002,4,0),(16663,'31179',29231,29232,4,0),(16664,'31180',29281,29282,4,0),(16665,'31190',28375,28376,4,0),(16666,'31191',28533,28534,4,0),(16667,'31191',28261,28262,4,0),(16668,'31192',28097,28098,4,0),(16669,'31192',29213,29214,4,0),(16670,'31193',28671,28672,4,0),(16671,'31193',28165,28166,4,0),(16672,'31194',28673,28674,4,0),(16673,'31194',28491,28492,4,0),(16674,'31195',28267,28268,4,0),(16675,'31195',28273,28274,4,0),(16676,'31200',28455,28456,4,0),(16677,'31208',28175,28176,4,0),(16678,'31210',28787,28788,4,0),(16679,'31219',29029,29030,4,0),(16680,'31219',28865,28866,4,0),(16681,'31219',29123,29124,4,0),(16682,'31219',28843,28844,4,0),(16683,'31219',29101,29102,4,0),(16684,'31219',28825,28826,4,0),(16685,'31220',29081,29082,4,0),(16686,'31227',28691,28692,4,0),(16687,'31227',28561,28562,4,0),(16688,'31227',28313,28314,4,0),(16689,'31227',28809,28810,4,0),(16690,'31228',28145,28146,4,0),(16691,'31228',29125,29126,4,0),(16692,'31228',28185,28186,4,0),(16693,'31228',28027,28028,4,0),(16694,'31228',28451,28452,4,0),(16695,'31229',28407,28408,4,0),(16696,'31229',28205,28206,4,0),(16697,'31229',28387,28388,4,0),(16698,'31229',29129,29130,4,0),(16699,'31230',29243,29244,4,0),(16700,'31239',28109,28110,4,0),(16701,'31240',28177,28178,4,0),(16702,'31241',28835,28836,4,0),(16703,'31241',28035,28036,4,0),(16704,'31241',28609,28610,4,0),(16705,'31242',29255,29256,4,0),(16706,'31243',28201,28202,4,0),(16707,'31243',28149,28150,4,0),(16708,'31243',28611,28612,4,0),(16709,'31243',28795,28796,4,0),(16710,'31250',28985,28986,4,0),(16711,'31251',28695,28696,4,0),(16712,'31252',28257,28258,4,0),(16713,'31253',28847,28848,4,0),(16714,'31260',28747,28748,4,0),(16715,'31261',28059,28060,4,0),(16716,'31262',28041,28042,4,0),(16717,'31263',28125,28126,4,0),(16718,'31263',28391,28392,4,0),(16719,'31264',28013,28014,4,0),(16720,'31264',28861,28862,4,0),(16721,'31270',28699,28700,4,0),(16722,'31271',28093,28094,4,0),(16723,'31271',28487,28488,4,0),(16724,'31272',28049,28050,4,0),(16725,'31280',27997,27998,4,0),(16726,'31280',28873,28874,4,0),(16727,'31280',28053,28054,4,0),(16728,'31281',28471,28472,4,0),(16729,'31281',28921,28922,4,0),(16730,'31281',28943,28944,4,0),(16731,'31281',28725,28726,4,0),(16732,'31281',28055,28056,4,0),(16733,'31282',28901,28902,4,0),(16734,'31282',28827,28828,4,0),(16735,'31283',28683,28684,4,0),(16736,'31284',29293,29294,4,0),(16737,'31290',29233,29234,4,0),(16738,'31290',28037,28038,4,0),(16739,'31291',28581,28582,4,0),(16740,'31291',28587,28588,4,0),(16741,'31292',29261,29262,4,0),(16742,'31292',29235,29236,4,0),(16743,'31292',28015,28016,4,0),(16744,'31293',29097,29098,4,0),(16745,'31300',29109,29110,4,0),(16746,'31310',28331,28332,4,0),(16747,'31311',28333,28334,4,0),(16748,'31312',28341,28342,4,0),(16749,'31313',28885,28886,4,0),(16750,'31314',29085,29086,4,0),(16751,'31315',28877,28878,4,0),(16752,'31320',28839,28840,4,0),(16753,'31330',29251,29252,4,0),(16754,'31340',28813,28814,4,0),(16755,'31350',29021,29022,4,0),(16756,'31360',28525,28526,4,0),(16757,'31370',28513,28514,4,0),(16758,'31380',28321,28322,4,0),(16759,'31381',28323,28324,4,0),(16760,'31382',28817,28818,4,0),(16761,'31383',28879,28880,4,0),(16762,'31390',28947,28948,4,0),(16763,'31391',28881,28882,4,0),(16764,'31392',29033,29034,4,0),(16765,'31393',28243,28244,4,0),(16766,'31394',29041,29042,4,0),(16767,'31395',28951,28952,4,0),(16768,'31395',28553,28554,4,0),(16769,'31395',28197,28198,4,0),(16770,'31395',28737,28738,4,0),(16771,'31395',28965,28966,4,0),(16772,'31396',29165,29166,4,0),(16773,'31396',28953,28954,4,0),(16774,'31397',29113,29114,4,0),(16775,'31398',29115,29116,4,0),(16776,'31398',28293,28294,4,0),(16777,'31400',29075,29076,4,0),(16778,'31409',29077,29078,4,0),(16779,'31409',28665,28666,4,0),(16780,'31410',29269,29270,4,0),(16781,'31411',28667,28668,4,0),(16782,'31412',28301,28302,4,0),(16783,'31413',29247,29248,4,0),(16784,'31414',28549,28550,4,0),(16785,'31415',29053,29054,4,0),(16786,'31416',29201,29202,4,0),(16787,'31417',28629,28630,4,0),(16788,'31418',29209,29210,4,0),(16789,'31420',29197,29198,4,0),(16790,'31421',28653,28654,4,0),(16791,'31422',29159,29160,4,0),(16792,'31430',28075,28076,4,0),(16793,'31438',28779,28780,4,0),(16794,'31438',28117,28118,4,0),(16795,'31439',28781,28782,4,0),(16796,'31439',28977,28978,4,0),(16797,'31439',28119,28120,4,0),(16798,'31440',28791,28792,4,0),(16799,'31448',29179,29180,4,0),(16800,'31448',29185,29186,4,0),(16801,'31449',29187,29188,4,0),(16802,'31450',28893,28894,4,0),(16803,'31451',28973,28974,4,0),(16804,'31451',28541,28542,4,0),(16805,'31451',28895,28896,4,0),(16806,'31451',29089,29090,4,0),(16807,'31452',28573,28574,4,0),(16808,'31453',28447,28448,4,0),(16809,'31454',29049,29050,4,0),(16810,'31454',28349,28350,4,0),(16811,'31454',29181,29182,4,0),(16812,'31454',28897,28898,4,0),(16813,'31460',28717,28718,4,0),(16814,'31460',28031,28032,4,0),(16815,'31470',28909,28910,4,0),(16816,'31471',28853,28854,4,0),(16817,'31472',28599,28600,4,0),(16818,'31472',29161,29162,4,0),(16819,'31473',28601,28602,4,0),(16820,'31480',29189,29190,4,0),(16821,'31481',28783,28784,4,0),(16822,'31481',28121,28122,4,0),(16823,'31482',28765,28766,4,0),(16824,'31483',28767,28768,4,0),(16825,'31484',28769,28770,4,0),(16826,'31485',28771,28772,4,0),(16827,'31486',29215,29216,4,0),(16828,'31487',28761,28762,4,0),(16829,'31490',28343,28344,4,0),(16830,'31491',28507,28508,4,0),(16831,'31492',28509,28510,4,0),(16832,'31493',28537,28538,4,0),(16833,'31494',28739,28740,4,0),(16834,'31494',28743,28744,4,0),(16835,'31494',28443,28444,4,0),(16836,'31495',29071,29072,4,0),(16837,'31496',29149,29150,4,0),(16838,'31500',29133,29134,4,0),(16839,'31510',28529,28530,4,0),(16840,'31511',28309,28310,4,0),(16841,'31512',28521,28522,4,0),(16842,'31513',28133,28134,4,0),(16843,'31514',29239,29240,4,0),(16844,'31515',28317,28318,4,0),(16845,'31520',28337,28338,4,0),(16846,'31521',28869,28870,4,0),(16847,'31522',29137,29138,4,0),(16848,'31522',28857,28858,4,0),(16849,'31523',28209,28210,4,0),(16850,'31523',28019,28020,4,0),(16851,'31523',28849,28850,4,0),(16852,'31530',28383,28384,4,0),(16853,'31540',28297,28298,4,0),(16854,'31550',29045,29046,4,0),(16855,'31560',28181,28182,4,0),(16856,'31570',29067,29068,4,0),(16857,'31579',28327,28328,4,0),(16858,'31580',28775,28776,4,0),(16859,'31587',28821,28822,4,0),(16860,'31588',28713,28714,4,0),(16861,'31589',29093,29094,4,0),(16862,'31590',13139,13140,4,0),(16863,'31591',28379,28380,4,0),(16864,'31592',28361,28362,4,0),(16865,'31593',28517,28518,4,0),(16866,'31600',28305,28306,4,0),(16867,'31610',29265,29266,4,0),(16868,'31620',28595,28596,4,0),(16869,'31620',29217,29218,4,0),(16870,'31621',29219,29220,4,0),(16871,'31630',28459,28460,4,0),(16872,'31638',28427,28428,4,0),(16873,'31638',28461,28462,4,0),(16874,'31639',28429,28430,4,0),(16875,'31639',28463,28464,4,0),(16876,'31640',28171,28172,4,0),(16877,'31650',28981,28982,4,0),(16878,'31660',28799,28800,4,0),(16879,'31669',28801,28802,4,0),(16880,'31670',28957,28958,4,0),(16881,'31671',28137,28138,4,0),(16882,'31671',28591,28592,4,0),(16883,'31671',28961,28962,4,0),(16884,'31671',28141,28142,4,0),(16885,'31680',28917,28918,4,0),(16886,'31689',28657,28658,4,0),(16887,'31690',28497,28498,4,0),(16888,'31691',28661,28662,4,0),(16889,'31692',28545,28546,4,0),(16890,'31692',28005,28006,4,0),(16891,'31692',28009,28010,4,0),(16892,'31693',28557,28558,4,0),(16893,'31694',28431,28432,4,0),(16894,'31695',28433,28434,4,0),(16895,'31696',28435,28436,4,0),(16896,'31697',28437,28438,4,0),(16897,'31698',28465,28466,4,0),(16898,'31699',28439,28440,4,0),(16899,'31699',28467,28468,4,0),(16900,'31700',28219,28220,4,0),(16901,'31710',29289,29290,4,0),(16902,'31711',29169,29170,4,0),(16903,'31712',29171,29172,4,0),(16904,'31713',28221,28222,4,0),(16905,'31714',28223,28224,4,0),(16906,'31715',28225,28226,4,0),(16907,'31720',28227,28228,4,0),(16908,'31720',28277,28278,4,0),(16909,'31730',28229,28230,4,0),(16910,'31740',28399,28400,4,0),(16911,'31744',28411,28412,4,0),(16912,'31745',28633,28634,4,0),(16913,'31746',29285,29286,4,0),(16914,'31747',29059,29060,4,0),(16915,'31748',28419,28420,4,0),(16916,'31749',28501,28502,4,0),(16917,'31750',28395,28396,4,0),(16918,'31751',28931,28932,4,0),(16919,'31752',29193,29194,4,0),(16920,'31753',28239,28240,4,0),(16921,'31754',28565,28566,4,0),(16922,'31754',28101,28102,4,0),(16923,'31760',28475,28476,4,0),(16924,'31770',28751,28752,4,0),(16925,'31780',28251,28252,4,0),(16926,'31789',28753,28754,4,0),(16927,'31789',28253,28254,4,0),(16928,'31790',28105,28106,4,0),(16929,'31790',28605,28606,4,0),(16930,'31791',29105,29106,4,0),(16931,'31792',28279,28280,4,0),(16932,'31793',28281,28282,4,0),(16933,'31794',28231,28232,4,0),(16934,'31794',28503,28504,4,0),(16935,'31795',28233,28234,4,0),(16936,'31796',28235,28236,4,0),(16937,'31797',29153,29154,4,0),(16938,'31798',28071,28072,4,0),(16939,'31798',28687,28688,4,0),(16940,'31799',28935,28936,4,0),(16941,'31799',28493,28494,4,0),(16942,'31799',29155,29156,4,0),(16943,'31799',28925,28926,4,0),(16944,'31800',28045,28046,4,0),(16945,'31809',28939,28940,4,0),(16946,'31809',29277,29278,4,0),(16947,'31810',28637,28638,4,0),(16948,'31810',29175,29176,4,0),(16949,'31810',28189,28190,4,0),(16950,'31820',28479,28480,4,0),(16951,'31829',28423,28424,4,0),(16952,'31830',28679,28680,4,0),(16953,'31839',28113,28114,4,0),(16954,'31840',28153,28154,4,0),(16955,'31840',29145,29146,4,0),(16956,'31849',28083,28084,4,0),(16957,'31849',28621,28622,4,0),(16958,'31850',28085,28086,4,0),(16959,'31860',28625,28626,4,0),(16960,'31866',28213,28214,4,0),(16961,'31867',28087,28088,4,0),(16962,'31867',28615,28616,4,0),(16963,'31867',28645,28646,4,0),(16964,'31867',28927,28928,4,0),(16965,'31867',28167,28168,4,0),(16966,'31868',28089,28090,4,0),(16967,'31868',28647,28648,4,0),(16968,'31869',28617,28618,4,0),(16969,'31869',28215,28216,4,0),(16970,'31870',28733,28734,4,0),(16971,'31876',28129,28130,4,0),(16972,'31877',28703,28704,4,0),(16973,'31878',28705,28706,4,0),(16974,'31879',28707,28708,4,0),(16975,'31880',28729,28730,4,0),(16976,'31890',28285,28286,4,0),(16977,'31891',28709,28710,4,0),(16978,'31891',28079,28080,4,0),(16979,'31892',28649,28650,4,0),(16980,'31892',28675,28676,4,0),(16981,'32001',29933,29934,4,0),(16982,'32002',29465,29466,4,0),(16983,'32002',29935,29936,4,0),(16984,'32003',29937,29938,4,0),(16985,'32004',29939,29940,4,0),(16986,'32005',30115,30116,4,0),(16987,'32005',29467,29468,4,0),(16988,'32005',29941,29942,4,0),(16989,'32100',29639,29640,4,0),(16990,'32101',30237,30238,4,0),(16991,'32102',30239,30240,4,0),(16992,'32103',29943,29944,4,0),(16993,'32110',29967,29968,4,0),(16994,'32111',29969,29970,4,0),(16995,'32120',30241,30242,4,0),(16996,'32120',29339,29340,4,0),(16997,'32130',30127,30128,4,0),(16998,'32131',27703,27704,4,0),(16999,'32133',30129,30130,4,0),(17000,'32134',30131,30132,4,0),(17001,'32135',30015,30016,4,0),(17002,'32135',30133,30134,4,0),(17003,'32136',30135,30136,4,0),(17004,'32137',30017,30018,4,0),(17005,'32137',30137,30138,4,0),(17006,'32138',30019,30020,4,0),(17007,'32139',30139,30140,4,0),(17008,'32140',30243,30244,4,0),(17009,'32141',30141,30142,4,0),(17010,'32141',30245,30246,4,0),(17011,'32150',29341,29342,4,0),(17012,'32151',29343,29344,4,0),(17013,'32152',29641,29642,4,0),(17014,'32153',29345,29346,4,0),(17015,'32153',29643,29644,4,0),(17016,'32160',29831,29832,4,0),(17017,'32161',29833,29834,4,0),(17018,'32162',29835,29836,4,0),(17019,'32163',29837,29838,4,0),(17020,'32164',29839,29840,4,0),(17021,'32170',29413,29414,4,0),(17022,'32171',29415,29416,4,0),(17023,'32172',29945,29946,4,0),(17024,'32172',29417,29418,4,0),(17025,'32200',29649,29650,4,0),(17026,'32211',29651,29652,4,0),(17027,'32212',29681,29682,4,0),(17028,'32213',29653,29654,4,0),(17029,'32220',29975,29976,4,0),(17030,'32226',29977,29978,4,0),(17031,'32227',29979,29980,4,0),(17032,'32228',29981,29982,4,0),(17033,'32229',29983,29984,4,0),(17034,'32235',30023,30024,4,0),(17035,'32236',29985,29986,4,0),(17036,'32300',29851,29852,4,0),(17037,'32310',30095,30096,4,0),(17038,'32311',30097,30098,4,0),(17039,'32312',30099,30100,4,0),(17040,'32313',29853,29854,4,0),(17041,'32314',29855,29856,4,0),(17042,'32315',29857,29858,4,0),(17043,'32315',30249,30250,4,0),(17044,'32316',30251,30252,4,0),(17045,'32317',29859,29860,4,0),(17046,'32318',29861,29862,4,0),(17047,'32320',30101,30102,4,0),(17048,'32329',29535,29536,4,0),(17049,'32329',30103,30104,4,0),(17050,'32330',29537,29538,4,0),(17051,'32334',29539,29540,4,0),(17052,'32335',29541,29542,4,0),(17053,'32336',29543,29544,4,0),(17054,'32337',29545,29546,4,0),(17055,'32338',29547,29548,4,0),(17056,'32339',29549,29550,4,0),(17057,'32340',30253,30254,4,0),(17058,'32348',30255,30256,4,0),(17059,'32349',30257,30258,4,0),(17060,'32350',29365,29366,4,0),(17061,'32356',30005,30006,4,0),(17062,'32357',30007,30008,4,0),(17063,'32357',29367,29368,4,0),(17064,'32357',29865,29866,4,0),(17065,'32357',29685,29686,4,0),(17066,'32357',29379,29380,4,0),(17067,'32358',29687,29688,4,0),(17068,'32359',29369,29370,4,0),(17069,'32360',29381,29382,4,0),(17070,'32365',29383,29384,4,0),(17071,'32366',29385,29386,4,0),(17072,'32367',29387,29388,4,0),(17073,'32368',29389,29390,4,0),(17074,'32369',29391,29392,4,0),(17075,'32370',29689,29690,4,0),(17076,'32370',30009,30010,4,0),(17077,'32371',29691,29692,4,0),(17078,'32371',30011,30012,4,0),(17079,'32372',29867,29868,4,0),(17080,'32373',29869,29870,4,0),(17081,'32374',29871,29872,4,0),(17082,'32375',29765,29766,4,0),(17083,'32375',29873,29874,4,0),(17084,'32400',30071,30072,4,0),(17085,'32410',29797,29798,4,0),(17086,'32411',29799,29800,4,0),(17087,'32412',29523,29524,4,0),(17088,'32413',29525,29526,4,0),(17089,'32414',30073,30074,4,0),(17090,'32415',30075,30076,4,0),(17091,'32416',30077,30078,4,0),(17092,'32416',29527,29528,4,0),(17093,'32417',30079,30080,4,0),(17094,'32417',29841,29842,4,0),(17095,'32417',29299,29300,4,0),(17096,'32418',30081,30082,4,0),(17097,'32420',29705,29706,4,0),(17098,'32425',29707,29708,4,0),(17099,'32426',29709,29710,4,0),(17100,'32427',29711,29712,4,0),(17101,'32428',29713,29714,4,0),(17102,'32429',29715,29716,4,0),(17103,'32430',29569,29570,4,0),(17104,'32431',29479,29480,4,0),(17105,'32432',29481,29482,4,0),(17106,'32433',29529,29530,4,0),(17107,'32434',29531,29532,4,0),(17108,'32440',29347,29348,4,0),(17109,'32448',29843,29844,4,0),(17110,'32449',29349,29350,4,0),(17111,'32450',29619,29620,4,0),(17112,'32452',30037,30038,4,0),(17113,'32453',30107,30108,4,0),(17114,'32454',29621,29622,4,0),(17115,'32455',30109,30110,4,0),(17116,'32456',30039,30040,4,0),(17117,'32456',29307,29308,4,0),(17118,'32457',30041,30042,4,0),(17119,'32459',29623,29624,4,0),(17120,'32499',29329,29330,4,0),(17121,'32500',29877,29878,4,0),(17122,'32510',29879,29880,4,0),(17123,'32511',29881,29882,4,0),(17124,'32512',29489,29490,4,0),(17125,'32513',29883,29884,4,0),(17126,'32514',29491,29492,4,0),(17127,'32515',30111,30112,4,0),(17128,'32515',29885,29886,4,0),(17129,'32516',29887,29888,4,0),(17130,'32520',29493,29494,4,0),(17131,'32520',29485,29486,4,0),(17132,'32520',29423,29424,4,0),(17133,'32521',29495,29496,4,0),(17134,'32522',29497,29498,4,0),(17135,'32523',29499,29500,4,0),(17136,'32524',29501,29502,4,0),(17137,'32525',29503,29504,4,0),(17138,'32526',29505,29506,4,0),(17139,'32526',29895,29896,4,0),(17140,'32530',29507,29508,4,0),(17141,'32530',29897,29898,4,0),(17142,'32534',29889,29890,4,0),(17143,'32535',29899,29900,4,0),(17144,'32536',29901,29902,4,0),(17145,'32537',29903,29904,4,0),(17146,'32538',29905,29906,4,0),(17147,'32539',29907,29908,4,0),(17148,'32540',29309,29310,4,0),(17149,'32545',29311,29312,4,0),(17150,'32546',29313,29314,4,0),(17151,'32547',29315,29316,4,0),(17152,'32547',30283,30284,4,0),(17153,'32548',29331,29332,4,0),(17154,'32549',29333,29334,4,0),(17155,'32550',30215,30216,4,0),(17156,'32554',30217,30218,4,0),(17157,'32555',30219,30220,4,0),(17158,'32556',30221,30222,4,0),(17159,'32557',30285,30286,4,0),(17160,'32557',30223,30224,4,0),(17161,'32558',30225,30226,4,0),(17162,'32560',30227,30228,4,0),(17163,'32562',30229,30230,4,0),(17164,'32563',30231,30232,4,0),(17165,'32570',29779,29780,4,0),(17166,'32572',29781,29782,4,0),(17167,'32572',30043,30044,4,0),(17168,'32574',29783,29784,4,0),(17169,'32574',29891,29892,4,0),(17170,'32575',29785,29786,4,0),(17171,'32576',29787,29788,4,0),(17172,'32577',29789,29790,4,0),(17173,'32578',30045,30046,4,0),(17174,'32578',29791,29792,4,0),(17175,'32579',29793,29794,4,0),(17176,'32590',29335,29336,4,0),(17177,'32591',30287,30288,4,0),(17178,'32591',29573,29574,4,0),(17179,'32592',29971,29972,4,0),(17180,'32592',29453,29454,4,0),(17181,'32593',29947,29948,4,0),(17182,'32600',30197,30198,4,0),(17183,'32610',30087,30088,4,0),(17184,'32610',30273,30274,4,0),(17185,'32611',30089,30090,4,0),(17186,'32611',29813,29814,4,0),(17187,'32612',30091,30092,4,0),(17188,'32612',29575,29576,4,0),(17189,'32613',29921,29922,4,0),(17190,'32614',30275,30276,4,0),(17191,'32615',30199,30200,4,0),(17192,'32616',30277,30278,4,0),(17193,'32617',30279,30280,4,0),(17194,'32618',29815,29816,4,0),(17195,'32619',30201,30202,4,0),(17196,'32620',29695,29696,4,0),(17197,'32621',29697,29698,4,0),(17198,'32622',29699,29700,4,0),(17199,'32623',29701,29702,4,0),(17200,'32624',29577,29578,4,0),(17201,'32624',29817,29818,4,0),(17202,'32625',29579,29580,4,0),(17203,'32626',29581,29582,4,0),(17204,'32630',30291,30292,4,0),(17205,'32631',30183,30184,4,0),(17206,'32631',30159,30160,4,0),(17207,'32631',30293,30294,4,0),(17208,'32632',30295,30296,4,0),(17209,'32632',29927,29928,4,0),(17210,'32632',29427,29428,4,0),(17211,'32633',29429,29430,4,0),(17212,'32634',29929,29930,4,0),(17213,'32635',30297,30298,4,0),(17214,'32635',30203,30204,4,0),(17215,'32636',30299,30300,4,0),(17216,'32636',30161,30162,4,0),(17217,'32637',30301,30302,4,0),(17218,'32637',30205,30206,4,0),(17219,'32640',30303,30304,4,0),(17220,'32641',30027,30028,4,0),(17221,'32643',30029,30030,4,0),(17222,'32644',30031,30032,4,0),(17223,'32644',29511,29512,4,0),(17224,'32645',30033,30034,4,0),(17225,'32645',29513,29514,4,0),(17226,'32646',29431,29432,4,0),(17227,'32646',29515,29516,4,0),(17228,'32647',29517,29518,4,0),(17229,'32648',29519,29520,4,0),(17230,'32650',30267,30268,4,0),(17231,'32651',30269,30270,4,0),(17232,'32652',30053,30054,4,0),(17233,'32653',30055,30056,4,0),(17234,'32654',30057,30058,4,0),(17235,'32655',30059,30060,4,0),(17236,'32660',29395,29396,4,0),(17237,'32664',29397,29398,4,0),(17238,'32665',29399,29400,4,0),(17239,'32666',29401,29402,4,0),(17240,'32667',29403,29404,4,0),(17241,'32668',29405,29406,4,0),(17242,'32669',29407,29408,4,0),(17243,'32670',30307,30308,4,0),(17244,'32678',30309,30310,4,0),(17245,'32679',30311,30312,4,0),(17246,'32680',29657,29658,4,0),(17247,'32688',29659,29660,4,0),(17248,'32689',29661,29662,4,0),(17249,'32690',30167,30168,4,0),(17250,'32690',29409,29410,4,0),(17251,'32691',30169,30170,4,0),(17252,'32692',30153,30154,4,0),(17253,'32693',30155,30156,4,0),(17254,'32694',30185,30186,4,0),(17255,'32695',30187,30188,4,0),(17256,'32696',30189,30190,4,0),(17257,'32696',30163,30164,4,0),(17258,'32697',30207,30208,4,0),(17259,'32698',29923,29924,4,0),(17260,'32698',30209,30210,4,0),(17261,'32699',30211,30212,4,0),(17262,'32700',29749,29750,4,0),(17263,'32701',29455,29456,4,0),(17264,'32702',30261,30262,4,0),(17265,'32702',29457,29458,4,0),(17266,'32703',29751,29752,4,0),(17267,'32704',29459,29460,4,0),(17268,'32705',29461,29462,4,0),(17269,'32705',30263,30264,4,0),(17270,'32706',29753,29754,4,0),(17271,'32707',29755,29756,4,0),(17272,'32708',30315,30316,4,0),(17273,'32708',29757,29758,4,0),(17274,'32710',29911,29912,4,0),(17275,'32711',29913,29914,4,0),(17276,'32720',29675,29676,4,0),(17277,'32720',30317,30318,4,0),(17278,'32720',29845,29846,4,0),(17279,'32720',29759,29760,4,0),(17280,'32730',30319,30320,4,0),(17281,'32740',29989,29990,4,0),(17282,'32746',29991,29992,4,0),(17283,'32747',29993,29994,4,0),(17284,'32748',29995,29996,4,0),(17285,'32749',29997,29998,4,0),(17286,'32750',29803,29804,4,0),(17287,'32751',29805,29806,4,0),(17288,'32760',29585,29586,4,0),(17289,'32764',29373,29374,4,0),(17290,'32764',29587,29588,4,0),(17291,'32765',29375,29376,4,0),(17292,'32766',29589,29590,4,0),(17293,'32767',29627,29628,4,0),(17294,'32768',29591,29592,4,0),(17295,'32768',29629,29630,4,0),(17296,'32769',29807,29808,4,0),(17297,'32769',29593,29594,4,0),(17298,'32770',30145,30146,4,0),(17299,'32774',29595,29596,4,0),(17300,'32779',30147,30148,4,0),(17301,'32780',29353,29354,4,0),(17302,'32781',29767,29768,4,0),(17303,'32782',29769,29770,4,0),(17304,'32782',29355,29356,4,0),(17305,'32783',29771,29772,4,0),(17306,'32784',29773,29774,4,0),(17307,'32785',29775,29776,4,0),(17308,'32786',29631,29632,4,0),(17309,'32787',29633,29634,4,0),(17310,'32787',29357,29358,4,0),(17311,'32788',29359,29360,4,0),(17312,'32789',29361,29362,4,0),(17313,'32789',30233,30234,4,0),(17314,'32790',29809,29810,4,0),(17315,'32790',29761,29762,4,0),(17316,'32790',29999,30000,4,0),(17317,'32791',29847,29848,4,0),(17318,'32792',29915,29916,4,0),(17319,'32793',29677,29678,4,0),(17320,'32793',29917,29918,4,0),(17321,'32794',29597,29598,4,0),(17322,'32794',29635,29636,4,0),(17323,'32794',30149,30150,4,0),(17324,'32800',29601,29602,4,0),(17325,'32810',30063,30064,4,0),(17326,'32811',30065,30066,4,0),(17327,'32812',30083,30084,4,0),(17328,'32812',29303,29304,4,0),(17329,'32813',30193,30194,4,0),(17330,'32814',30049,30050,4,0),(17331,'32815',30067,30068,4,0),(17332,'32815',29603,29604,4,0),(17333,'32816',29605,29606,4,0),(17334,'32816',29319,29320,4,0),(17335,'32817',29607,29608,4,0),(17336,'32820',29553,29554,4,0),(17337,'32821',29555,29556,4,0),(17338,'32822',29557,29558,4,0),(17339,'32823',29559,29560,4,0),(17340,'32823',29609,29610,4,0),(17341,'32824',29561,29562,4,0),(17342,'32825',29563,29564,4,0),(17343,'32826',29565,29566,4,0),(17344,'32827',29611,29612,4,0),(17345,'32828',29613,29614,4,0),(17346,'32829',29615,29616,4,0),(17347,'32830',29321,29322,4,0),(17348,'32838',29323,29324,4,0),(17349,'32839',29325,29326,4,0),(17350,'32840',29435,29436,4,0),(17351,'32845',29437,29438,4,0),(17352,'32846',29439,29440,4,0),(17353,'32846',29719,29720,4,0),(17354,'32847',29441,29442,4,0),(17355,'32848',29443,29444,4,0),(17356,'32849',29445,29446,4,0),(17357,'32850',29721,29722,4,0),(17358,'32857',29723,29724,4,0),(17359,'32858',29725,29726,4,0),(17360,'32859',29447,29448,4,0),(17361,'32859',29727,29728,4,0),(17362,'32860',29665,29666,4,0),(17363,'32867',29667,29668,4,0),(17364,'32868',29669,29670,4,0),(17365,'32869',29671,29672,4,0),(17366,'32869',29733,29734,4,0),(17367,'32870',29735,29736,4,0),(17368,'32879',29737,29738,4,0),(17369,'32880',29821,29822,4,0),(17370,'32890',29469,29470,4,0),(17371,'32891',29449,29450,4,0),(17372,'32892',29739,29740,4,0),(17373,'32893',30001,30002,4,0),(17374,'32893',29741,29742,4,0),(17375,'32894',29743,29744,4,0),(17376,'32895',29745,29746,4,0),(17377,'32896',29823,29824,4,0),(17378,'32897',29729,29730,4,0),(17379,'32898',29825,29826,4,0),(17380,'32899',29827,29828,4,0),(17381,'32900',30117,30118,4,0),(17382,'32900',29949,29950,4,0),(17383,'32901',30119,30120,4,0),(17384,'32910',30121,30122,4,0),(17385,'32911',30123,30124,4,0),(17386,'32920',30173,30174,4,0),(17387,'32920',29471,29472,4,0),(17388,'32930',29473,29474,4,0),(17389,'32930',30175,30176,4,0),(17390,'32940',30177,30178,4,0),(17391,'32940',29475,29476,4,0),(17392,'32940',29951,29952,4,0),(17393,'32941',30179,30180,4,0),(17394,'32950',29645,29646,4,0),(17395,'32960',29953,29954,4,0),(17396,'32970',29955,29956,4,0),(17397,'32971',29957,29958,4,0),(17398,'32980',29959,29960,4,0),(17399,'32980',29419,29420,4,0),(17400,'32981',29961,29962,4,0),(17401,'32990',29963,29964,4,0),(17402,'33001',2917,2918,4,0),(17403,'33002',2919,2920,4,0),(17404,'33003',2921,2922,4,0),(17405,'33004',2923,2924,4,0),(17406,'33005',2925,2926,4,0),(17407,'33006',2927,2928,4,0),(17408,'33007',2929,2930,4,0),(17409,'33008',2931,2932,4,0),(17410,'33009',2933,2934,4,0),(17411,'33010',3199,3200,4,0),(17412,'33010',2935,2936,4,0),(17413,'33011',2937,2938,4,0),(17414,'33012',2939,2940,4,0),(17415,'33013',2941,2942,4,0),(17416,'33060',2943,2944,4,0),(17417,'33069',2945,2946,4,0),(17418,'33110',3269,3270,4,0),(17419,'33111',3271,3272,4,0),(17420,'33112',3063,3064,4,0),(17421,'33114',3065,3066,4,0),(17422,'33115',3191,3192,4,0),(17423,'33115',3071,3072,4,0),(17424,'33116',3067,3068,4,0),(17425,'33116',3073,3074,4,0),(17426,'33117',3075,3076,4,0),(17427,'33118',3077,3078,4,0),(17428,'33119',2715,2716,4,0),(17429,'33119',2947,2948,4,0),(17430,'33120',3053,3054,4,0),(17431,'33125',3243,3244,4,0),(17432,'33126',3245,3246,4,0),(17433,'33127',2949,2950,4,0),(17434,'33127',3247,3248,4,0),(17435,'33127',3055,3056,4,0),(17436,'33128',3057,3058,4,0),(17437,'33129',3059,3060,4,0),(17438,'33130',2881,2882,4,0),(17439,'33138',2883,2884,4,0),(17440,'33140',2951,2952,4,0),(17441,'33150',2617,2618,4,0),(17442,'33155',2619,2620,4,0),(17443,'33156',2621,2622,4,0),(17444,'33157',2623,2624,4,0),(17445,'33159',2625,2626,4,0),(17446,'33160',3119,3120,4,0),(17447,'33161',2873,2874,4,0),(17448,'33162',2875,2876,4,0),(17449,'33163',2877,2878,4,0),(17450,'33170',3107,3108,4,0),(17451,'33170',2953,2954,4,0),(17452,'33171',2955,2956,4,0),(17453,'33171',3109,3110,4,0),(17454,'33172',3111,3112,4,0),(17455,'33173',3113,3114,4,0),(17456,'33174',2957,2958,4,0),(17457,'33180',2909,2910,4,0),(17458,'33186',3201,3202,4,0),(17459,'33187',3203,3204,4,0),(17460,'33188',3205,3206,4,0),(17461,'33189',3207,3208,4,0),(17462,'33190',2775,2776,4,0),(17463,'33191',2959,2960,4,0),(17464,'33191',2777,2778,4,0),(17465,'33192',2829,2830,4,0),(17466,'33192',2779,2780,4,0),(17467,'33193',2961,2962,4,0),(17468,'33194',2963,2964,4,0),(17469,'33195',2965,2966,4,0),(17470,'33196',2967,2968,4,0),(17471,'33199',2969,2970,4,0),(17472,'33199',3209,3210,4,0),(17473,'33201',2653,2654,4,0),(17474,'33202',2655,2656,4,0),(17475,'33203',2657,2658,4,0),(17476,'33204',2659,2660,4,0),(17477,'33205',2661,2662,4,0),(17478,'33206',2663,2664,4,0),(17479,'33207',2665,2666,4,0),(17480,'33208',2667,2668,4,0),(17481,'33209',2669,2670,4,0),(17482,'33210',2671,2672,4,0),(17483,'33211',2673,2674,4,0),(17484,'33212',2675,2676,4,0),(17485,'33213',2677,2678,4,0),(17486,'33290',2679,2680,4,0),(17487,'33299',2681,2682,4,0),(17488,'33300',3339,3340,4,0),(17489,'33310',3341,3342,4,0),(17490,'33310',2459,2460,4,0),(17491,'33311',3343,3344,4,0),(17492,'33312',3345,3346,4,0),(17493,'33313',3347,3348,4,0),(17494,'33314',3349,3350,4,0),(17495,'33315',3351,3352,4,0),(17496,'33316',3353,3354,4,0),(17497,'33317',3355,3356,4,0),(17498,'33318',3357,3358,4,0),(17499,'33320',2581,2582,4,0),(17500,'33324',2583,2584,4,0),(17501,'33325',2585,2586,4,0),(17502,'33326',2587,2588,4,0),(17503,'33326',3359,3360,4,0),(17504,'33327',2589,2590,4,0),(17505,'33328',2591,2592,4,0),(17506,'33329',2593,2594,4,0),(17507,'33330',2595,2596,4,0),(17508,'33340',2597,2598,4,0),(17509,'33341',2599,2600,4,0),(17510,'33342',2601,2602,4,0),(17511,'33343',2507,2508,4,0),(17512,'33344',2509,2510,4,0),(17513,'33345',3087,3088,4,0),(17514,'33346',3089,3090,4,0),(17515,'33347',3091,3092,4,0),(17516,'33350',2683,2684,4,0),(17517,'33390',2685,2686,4,0),(17518,'33391',2687,2688,4,0),(17519,'33392',2689,2690,4,0),(17520,'33393',2691,2692,4,0),(17521,'33394',2693,2694,4,0),(17522,'33401',2377,2378,4,0),(17523,'33401',2535,2536,4,0),(17524,'33402',2379,2380,4,0),(17525,'33403',2381,2382,4,0),(17526,'33404',2605,2606,4,0),(17527,'33405',2537,2538,4,0),(17528,'33410',2539,2540,4,0),(17529,'33410',2383,2384,4,0),(17530,'33411',2749,2750,4,0),(17531,'33412',2541,2542,4,0),(17532,'33412',2751,2752,4,0),(17533,'33412',2607,2608,4,0),(17534,'33414',2465,2466,4,0),(17535,'33414',2753,2754,4,0),(17536,'33414',2781,2782,4,0),(17537,'33416',2609,2610,4,0),(17538,'33417',2385,2386,4,0),(17539,'33417',2543,2544,4,0),(17540,'33418',2387,2388,4,0),(17541,'33418',2701,2702,4,0),(17542,'33419',2703,2704,4,0),(17543,'33420',3211,3212,4,0),(17544,'33423',2831,2832,4,0),(17545,'33424',2833,2834,4,0),(17546,'33425',2835,2836,4,0),(17547,'33426',2837,2838,4,0),(17548,'33427',2839,2840,4,0),(17549,'33428',2841,2842,4,0),(17550,'33429',3213,3214,4,0),(17551,'33430',2513,2514,4,0),(17552,'33438',2515,2516,4,0),(17553,'33439',2517,2518,4,0),(17554,'33440',2705,2706,4,0),(17555,'33448',2707,2708,4,0),(17556,'33449',2709,2710,4,0),(17557,'33450',2545,2546,4,0),(17558,'33456',2467,2468,4,0),(17559,'33456',2547,2548,4,0),(17560,'33457',2549,2550,4,0),(17561,'33458',3249,3250,4,0),(17562,'33459',2551,2552,4,0),(17563,'33460',2389,2390,4,0),(17564,'33468',2611,2612,4,0),(17565,'33468',2711,2712,4,0),(17566,'33469',2519,2520,4,0),(17567,'33470',2613,2614,4,0),(17568,'33470',2391,2392,4,0),(17569,'33470',2843,2844,4,0),(17570,'33476',3253,3254,4,0),(17571,'33480',2845,2846,4,0),(17572,'33490',2393,2394,4,0),(17573,'33491',2521,2522,4,0),(17574,'33492',2523,2524,4,0),(17575,'33500',2851,2852,4,0),(17576,'33507',2853,2854,4,0),(17577,'33509',2855,2856,4,0),(17578,'33509',2987,2988,4,0),(17579,'33510',3215,3216,4,0),(17580,'33518',3195,3196,4,0),(17581,'33518',3217,3218,4,0),(17582,'33519',3219,3220,4,0),(17583,'33519',2627,2628,4,0),(17584,'33520',3081,3082,4,0),(17585,'33520',2887,2888,4,0),(17586,'33527',2425,2426,4,0),(17587,'33528',2889,2890,4,0),(17588,'33528',2427,2428,4,0),(17589,'33529',2461,2462,4,0),(17590,'33529',2891,2892,4,0),(17591,'33530',3027,3028,4,0),(17592,'33534',3029,3030,4,0),(17593,'33535',3031,3032,4,0),(17594,'33535',2971,2972,4,0),(17595,'33536',3033,3034,4,0),(17596,'33537',3035,3036,4,0),(17597,'33538',3037,3038,4,0),(17598,'33539',3039,3040,4,0),(17599,'33540',2989,2990,4,0),(17600,'33546',2991,2992,4,0),(17601,'33547',2475,2476,4,0),(17602,'33548',2993,2994,4,0),(17603,'33549',2995,2996,4,0),(17604,'33550',2477,2478,4,0),(17605,'33554',2453,2454,4,0),(17606,'33555',2455,2456,4,0),(17607,'33556',2913,2914,4,0),(17608,'33556',2479,2480,4,0),(17609,'33557',2371,2372,4,0),(17610,'33557',3047,3048,4,0),(17611,'33558',2373,2374,4,0),(17612,'33558',3049,3050,4,0),(17613,'33559',2997,2998,4,0),(17614,'33559',2481,2482,4,0),(17615,'33560',3093,3094,4,0),(17616,'33566',3095,3096,4,0),(17617,'33567',3097,3098,4,0),(17618,'33568',3099,3100,4,0),(17619,'33569',3101,3102,4,0),(17620,'33576',3007,3008,4,0),(17621,'33577',3009,3010,4,0),(17622,'33578',3011,3012,4,0),(17623,'33579',3015,3016,4,0),(17624,'33580',3221,3222,4,0),(17625,'33581',2893,2894,4,0),(17626,'33582',2895,2896,4,0),(17627,'33583',3041,3042,4,0),(17628,'33584',3043,3044,4,0),(17629,'33585',2999,3000,4,0),(17630,'33586',3001,3002,4,0),(17631,'33587',3003,3004,4,0),(17632,'33588',3103,3104,4,0),(17633,'33589',2483,2484,4,0),(17634,'33590',3083,3084,4,0),(17635,'33592',2857,2858,4,0),(17636,'33593',2859,2860,4,0),(17637,'33594',2861,2862,4,0),(17638,'33595',2863,2864,4,0),(17639,'33596',2865,2866,4,0),(17640,'33598',2867,2868,4,0),(17641,'33600',14461,14462,4,0),(17642,'33610',14463,14464,4,0),(17643,'33611',14465,14466,4,0),(17644,'33612',14467,14468,4,0),(17645,'33614',14469,14470,4,0),(17646,'33615',14471,14472,4,0),(17647,'33616',14473,14474,4,0),(17648,'33616',2973,2974,4,0),(17649,'33617',14475,14476,4,0),(17650,'33618',14477,14478,4,0),(17651,'33619',14479,14480,4,0),(17652,'33620',2803,2804,4,0),(17653,'33627',2805,2806,4,0),(17654,'33628',2807,2808,4,0),(17655,'33629',2809,2810,4,0),(17656,'33630',2811,2812,4,0),(17657,'33637',2813,2814,4,0),(17658,'33638',2815,2816,4,0),(17659,'33639',2817,2818,4,0),(17660,'33640',14481,14482,4,0),(17661,'33650',14483,14484,4,0),(17662,'33660',2975,2976,4,0),(17663,'33669',2977,2978,4,0),(17664,'33670',2341,2342,4,0),(17665,'33675',2343,2344,4,0),(17666,'33676',2345,2346,4,0),(17667,'33677',2347,2348,4,0),(17668,'33678',2349,2350,4,0),(17669,'33679',2351,2352,4,0),(17670,'33680',2353,2354,4,0),(17671,'33681',2355,2356,4,0),(17672,'33682',14485,14486,4,0),(17673,'33683',2357,2358,4,0),(17674,'33683',14487,14488,4,0),(17675,'33684',2359,2360,4,0),(17676,'33685',2361,2362,4,0),(17677,'33686',2363,2364,4,0),(17678,'33687',2365,2366,4,0),(17679,'33688',2367,2368,4,0),(17680,'33690',2847,2848,4,0),(17681,'33691',2695,2696,4,0),(17682,'33692',2819,2820,4,0),(17683,'33693',2821,2822,4,0),(17684,'33694',2823,2824,4,0),(17685,'33695',2825,2826,4,0),(17686,'33696',2979,2980,4,0),(17687,'33696',3115,3116,4,0),(17688,'33697',2697,2698,4,0),(17689,'33700',3293,3294,4,0),(17690,'33707',3295,3296,4,0),(17691,'33708',3297,3298,4,0),(17692,'33709',3299,3300,4,0),(17693,'33710',2899,2900,4,0),(17694,'33716',2567,2568,4,0),(17695,'33717',3363,3364,4,0),(17696,'33718',3365,3366,4,0),(17697,'33719',2569,2570,4,0),(17698,'33719',2901,2902,4,0),(17699,'33720',2431,2432,4,0),(17700,'33724',2433,2434,4,0),(17701,'33725',2435,2436,4,0),(17702,'33726',2571,2572,4,0),(17703,'33726',2437,2438,4,0),(17704,'33727',2439,2440,4,0),(17705,'33728',2441,2442,4,0),(17706,'33729',2443,2444,4,0),(17707,'33730',2729,2730,4,0),(17708,'33731',2445,2446,4,0),(17709,'33732',2741,2742,4,0),(17710,'33733',2743,2744,4,0),(17711,'33734',2745,2746,4,0),(17712,'33735',3019,3020,4,0),(17713,'33736',3021,3022,4,0),(17714,'33740',3255,3256,4,0),(17715,'33746',3257,3258,4,0),(17716,'33746',2637,2638,4,0),(17717,'33747',3259,3260,4,0),(17718,'33749',3261,3262,4,0),(17719,'33750',2639,2640,4,0),(17720,'33757',2641,2642,4,0),(17721,'33758',2643,2644,4,0),(17722,'33759',2645,2646,4,0),(17723,'33760',2555,2556,4,0),(17724,'33768',2557,2558,4,0),(17725,'33769',2559,2560,4,0),(17726,'33770',3325,3326,4,0),(17727,'33774',3181,3182,4,0),(17728,'33775',3265,3266,4,0),(17729,'33776',3185,3186,4,0),(17730,'33776',3327,3328,4,0),(17731,'33777',3335,3336,4,0),(17732,'33777',3155,3156,4,0),(17733,'33777',3023,3024,4,0),(17734,'33778',2561,2562,4,0),(17735,'33778',3329,3330,4,0),(17736,'33779',3331,3332,4,0),(17737,'33779',3187,3188,4,0),(17738,'33780',3301,3302,4,0),(17739,'33781',3123,3124,4,0),(17740,'33782',3125,3126,4,0),(17741,'33782',3303,3304,4,0),(17742,'33783',3305,3306,4,0),(17743,'33784',3307,3308,4,0),(17744,'33785',3309,3310,4,0),(17745,'33787',3311,3312,4,0),(17746,'33788',3313,3314,4,0),(17747,'33789',3315,3316,4,0),(17748,'33790',2903,2904,4,0),(17749,'33791',3317,3318,4,0),(17750,'33792',3319,3320,4,0),(17751,'33793',2905,2906,4,0),(17752,'33794',2563,2564,4,0),(17753,'33795',2573,2574,4,0),(17754,'33796',2575,2576,4,0),(17755,'33797',2577,2578,4,0),(17756,'33798',2447,2448,4,0),(17757,'33799',2449,2450,4,0),(17758,'33800',2487,2488,4,0),(17759,'33810',2733,2734,4,0),(17760,'33811',2489,2490,4,0),(17761,'33811',2735,2736,4,0),(17762,'33812',2631,2632,4,0),(17763,'33812',2737,2738,4,0),(17764,'33813',2491,2492,4,0),(17765,'33813',2633,2634,4,0),(17766,'33814',2493,2494,4,0),(17767,'33815',2495,2496,4,0),(17768,'33815',2325,2326,4,0),(17769,'33816',2497,2498,4,0),(17770,'33817',2499,2500,4,0),(17771,'33818',2501,2502,4,0),(17772,'33819',2503,2504,4,0),(17773,'33820',2717,2718,4,0),(17774,'33825',2719,2720,4,0),(17775,'33826',3369,3370,4,0),(17776,'33826',2721,2722,4,0),(17777,'33827',2399,2400,4,0),(17778,'33827',2723,2724,4,0),(17779,'33828',2469,2470,4,0),(17780,'33829',2725,2726,4,0),(17781,'33829',2471,2472,4,0),(17782,'33830',2401,2402,4,0),(17783,'33836',3127,3128,4,0),(17784,'33836',2403,2404,4,0),(17785,'33837',2405,2406,4,0),(17786,'33838',2407,2408,4,0),(17787,'33839',2409,2410,4,0),(17788,'33840',3235,3236,4,0),(17789,'33841',3237,3238,4,0),(17790,'33842',3239,3240,4,0),(17791,'33842',2411,2412,4,0),(17792,'33843',2413,2414,4,0),(17793,'33844',2415,2416,4,0),(17794,'33845',2417,2418,4,0),(17795,'33846',3129,3130,4,0),(17796,'33846',2419,2420,4,0),(17797,'33847',2421,2422,4,0),(17798,'33848',3131,3132,4,0),(17799,'33850',3133,3134,4,0),(17800,'33857',3135,3136,4,0),(17801,'33858',3137,3138,4,0),(17802,'33859',3139,3140,4,0),(17803,'33860',3141,3142,4,0),(17804,'33866',3143,3144,4,0),(17805,'33867',3145,3146,4,0),(17806,'33868',3147,3148,4,0),(17807,'33869',3149,3150,4,0),(17808,'33870',3275,3276,4,0),(17809,'33873',3277,3278,4,0),(17810,'33874',3321,3322,4,0),(17811,'33874',3279,3280,4,0),(17812,'33875',3281,3282,4,0),(17813,'33876',3283,3284,4,0),(17814,'33877',3285,3286,4,0),(17815,'33878',3287,3288,4,0),(17816,'33879',3289,3290,4,0),(17817,'33880',2327,2328,4,0),(17818,'33885',2329,2330,4,0),(17819,'33887',2331,2332,4,0),(17820,'33888',2333,2334,4,0),(17821,'33889',2335,2336,4,0),(17822,'33890',2337,2338,4,0),(17823,'33891',3151,3152,4,0),(17824,'33900',2757,2758,4,0),(17825,'33909',2759,2760,4,0),(17826,'33910',2981,2982,4,0),(17827,'33919',2983,2984,4,0),(17828,'33920',2761,2762,4,0),(17829,'33929',2763,2764,4,0),(17830,'33930',2765,2766,4,0),(17831,'33934',2767,2768,4,0),(17832,'33935',2769,2770,4,0),(17833,'33936',3223,3224,4,0),(17834,'33937',3225,3226,4,0),(17835,'33938',3227,3228,4,0),(17836,'33939',2771,2772,4,0),(17837,'33940',3159,3160,4,0),(17838,'33945',3161,3162,4,0),(17839,'33946',3163,3164,4,0),(17840,'33947',3165,3166,4,0),(17841,'33948',3167,3168,4,0),(17842,'33950',3169,3170,4,0),(17843,'33957',3171,3172,4,0),(17844,'33958',3173,3174,4,0),(17845,'33959',3175,3176,4,0),(17846,'33960',3177,3178,4,0),(17847,'33970',2785,2786,4,0),(17848,'33979',2787,2788,4,0),(17849,'33980',2789,2790,4,0),(17850,'33986',2791,2792,4,0),(17851,'33987',2793,2794,4,0),(17852,'33989',2795,2796,4,0),(17853,'33990',2527,2528,4,0),(17854,'33991',2797,2798,4,0),(17855,'33992',2799,2800,4,0),(17856,'33993',3231,3232,4,0),(17857,'33995',2529,2530,4,0),(17858,'33996',2531,2532,4,0),(17859,'34001',30799,30800,4,0),(17860,'34002',30801,30802,4,0),(17861,'34003',30803,30804,4,0),(17862,'34004',30805,30806,4,0),(17863,'34005',30807,30808,4,0),(17864,'34006',30809,30810,4,0),(17865,'34100',30941,30942,4,0),(17866,'34110',30851,30852,4,0),(17867,'34111',31149,31150,4,0),(17868,'34111',30883,30884,4,0),(17869,'34111',31249,31250,4,0),(17870,'34111',30853,30854,4,0),(17871,'34111',30943,30944,4,0),(17872,'34112',31151,31152,4,0),(17873,'34112',30991,30992,4,0),(17874,'34112',31251,31252,4,0),(17875,'34113',31153,31154,4,0),(17876,'34113',31201,31202,4,0),(17877,'34113',30835,30836,4,0),(17878,'34114',30899,30900,4,0),(17879,'34115',30945,30946,4,0),(17880,'34115',31063,31064,4,0),(17881,'34116',30467,30468,4,0),(17882,'34116',31203,31204,4,0),(17883,'34116',30837,30838,4,0),(17884,'34117',30947,30948,4,0),(17885,'34118',30709,30710,4,0),(17886,'34120',30491,30492,4,0),(17887,'34126',31173,31174,4,0),(17888,'34126',30909,30910,4,0),(17889,'34127',30711,30712,4,0),(17890,'34127',31055,31056,4,0),(17891,'34128',30773,30774,4,0),(17892,'34128',30901,30902,4,0),(17893,'34128',30687,30688,4,0),(17894,'34128',30713,30714,4,0),(17895,'34129',31219,31220,4,0),(17896,'34129',30471,30472,4,0),(17897,'34129',30479,30480,4,0),(17898,'34131',31245,31246,4,0),(17899,'34131',30493,30494,4,0),(17900,'34132',31211,31212,4,0),(17901,'34159',30365,30366,4,0),(17902,'34160',30367,30368,4,0),(17903,'34170',31223,31224,4,0),(17904,'34170',31157,31158,4,0),(17905,'34170',30739,30740,4,0),(17906,'34170',30831,30832,4,0),(17907,'34190',31181,31182,4,0),(17908,'34191',30369,30370,4,0),(17909,'34191',30981,30982,4,0),(17910,'34191',30811,30812,4,0),(17911,'34191',30393,30394,4,0),(17912,'34192',31225,31226,4,0),(17913,'34192',30625,30626,4,0),(17914,'34200',31085,31086,4,0),(17915,'34208',30589,30590,4,0),(17916,'34208',30905,30906,4,0),(17917,'34208',31087,31088,4,0),(17918,'34209',30659,30660,4,0),(17919,'34209',31035,31036,4,0),(17920,'34209',31015,31016,4,0),(17921,'34209',31069,31070,4,0),(17922,'34210',30591,30592,4,0),(17923,'34218',30541,30542,4,0),(17924,'34219',30357,30358,4,0),(17925,'34219',30865,30866,4,0),(17926,'34219',30573,30574,4,0),(17927,'34219',30513,30514,4,0),(17928,'34219',31091,31092,4,0),(17929,'34220',30723,30724,4,0),(17930,'34230',31039,31040,4,0),(17931,'34239',31059,31060,4,0),(17932,'34239',31161,31162,4,0),(17933,'34240',30405,30406,4,0),(17934,'34246',30509,30510,4,0),(17935,'34247',30545,30546,4,0),(17936,'34247',31105,31106,4,0),(17937,'34247',30643,30644,4,0),(17938,'34248',30379,30380,4,0),(17939,'34248',30553,30554,4,0),(17940,'34248',30595,30596,4,0),(17941,'34249',30407,30408,4,0),(17942,'34249',30663,30664,4,0),(17943,'34249',31229,31230,4,0),(17944,'34250',30895,30896,4,0),(17945,'34257',30815,30816,4,0),(17946,'34257',31023,31024,4,0),(17947,'34257',31241,31242,4,0),(17948,'34257',31119,31120,4,0),(17949,'34259',30569,30570,4,0),(17950,'34259',30655,30656,4,0),(17951,'34259',31129,31130,4,0),(17952,'34260',8961,8962,4,0),(17953,'34260',8469,8470,4,0),(17954,'34260',8855,8856,4,0),(17955,'34300',30823,30824,4,0),(17956,'34304',30435,30436,4,0),(17957,'34305',30411,30412,4,0),(17958,'34305',30751,30752,4,0),(17959,'34305',30483,30484,4,0),(17960,'34305',30445,30446,4,0),(17961,'34305',31233,31234,4,0),(17962,'34305',31043,31044,4,0),(17963,'34305',30521,30522,4,0),(17964,'34306',30639,30640,4,0),(17965,'34306',30497,30498,4,0),(17966,'34306',30743,30744,4,0),(17967,'34306',30605,30606,4,0),(17968,'34307',31073,31074,4,0),(17969,'34309',30525,30526,4,0),(17970,'34309',30487,30488,4,0),(17971,'34309',31177,31178,4,0),(17972,'34309',30937,30938,4,0),(17973,'34309',31185,31186,4,0),(17974,'34310',30841,30842,4,0),(17975,'34310',30431,30432,4,0),(17976,'34320',30549,30550,4,0),(17977,'34337',30617,30618,4,0),(17978,'34338',30397,30398,4,0),(17979,'34338',30325,30326,4,0),(17980,'34340',31109,31110,4,0),(17981,'34347',30695,30696,4,0),(17982,'34347',30887,30888,4,0),(17983,'34347',30705,30706,4,0),(17984,'34347',30977,30978,4,0),(17985,'34347',31141,31142,4,0),(17986,'34347',30857,30858,4,0),(17987,'34348',31099,31100,4,0),(17988,'34349',31101,31102,4,0),(17989,'34349',30697,30698,4,0),(17990,'34349',31111,31112,4,0),(17991,'34349',30765,30766,4,0),(17992,'34349',30449,30450,4,0),(17993,'34350',31207,31208,4,0),(17994,'34400',30647,30648,4,0),(17995,'34404',30577,30578,4,0),(17996,'34405',30985,30986,4,0),(17997,'34405',30599,30600,4,0),(17998,'34405',30649,30650,4,0),(17999,'34406',30651,30652,4,0),(18000,'34406',30557,30558,4,0),(18001,'34406',30427,30428,4,0),(18002,'34406',30585,30586,4,0),(18003,'34407',30777,30778,4,0),(18004,'34407',30819,30820,4,0),(18005,'34407',30929,30930,4,0),(18006,'34407',30559,30560,4,0),(18007,'34407',31019,31020,4,0),(18008,'34407',30475,30476,4,0),(18009,'34407',31165,31166,4,0),(18010,'34408',31167,31168,4,0),(18011,'34409',31169,31170,4,0),(18012,'34410',30759,30760,4,0),(18013,'34419',30621,30622,4,0),(18014,'34419',30761,30762,4,0),(18015,'34419',30667,30668,4,0),(18016,'34419',31145,31146,4,0),(18017,'34419',30373,30374,4,0),(18018,'34420',30375,30376,4,0),(18019,'34429',30727,30728,4,0),(18020,'34429',30731,30732,4,0),(18021,'34429',30843,30844,4,0),(18022,'34429',30361,30362,4,0),(18023,'34429',30933,30934,4,0),(18024,'34429',30959,30960,4,0),(18025,'34430',30847,30848,4,0),(18026,'34439',31031,31032,4,0),(18027,'34440',30613,30614,4,0),(18028,'34447',30925,30926,4,0),(18029,'34447',31197,31198,4,0),(18030,'34449',30861,30862,4,0),(18031,'34449',30383,30384,4,0),(18032,'34449',31137,31138,4,0),(18033,'34449',31255,31256,4,0),(18034,'34449',30719,30720,4,0),(18035,'34450',30387,30388,4,0),(18036,'34460',30793,30794,4,0),(18037,'34465',31051,31052,4,0),(18038,'34466',31237,31238,4,0),(18039,'34467',30747,30748,4,0),(18040,'34468',30701,30702,4,0),(18041,'34468',30453,30454,4,0),(18042,'34468',30789,30790,4,0),(18043,'34468',30671,30672,4,0),(18044,'34469',30795,30796,4,0),(18045,'34469',30735,30736,4,0),(18046,'34469',30913,30914,4,0),(18047,'34469',31123,31124,4,0),(18048,'34470',30461,30462,4,0),(18049,'34470',30683,30684,4,0),(18050,'34473',31027,31028,4,0),(18051,'34473',30401,30402,4,0),(18052,'34473',30463,30464,4,0),(18053,'34473',31065,31066,4,0),(18054,'34475',31215,31216,4,0),(18055,'34475',31115,31116,4,0),(18056,'34475',31095,31096,4,0),(18057,'34477',30415,30416,4,0),(18058,'34477',30715,30716,4,0),(18059,'34477',31189,31190,4,0),(18060,'34478',30517,30518,4,0),(18061,'34480',30349,30350,4,0),(18062,'34484',30579,30580,4,0),(18063,'34485',30755,30756,4,0),(18064,'34485',30781,30782,4,0),(18065,'34485',30691,30692,4,0),(18066,'34485',30827,30828,4,0),(18067,'34486',30529,30530,4,0),(18068,'34486',30783,30784,4,0),(18069,'34486',30891,30892,4,0),(18070,'34486',30995,30996,4,0),(18071,'34486',30333,30334,4,0),(18072,'34487',30785,30786,4,0),(18073,'34487',30351,30352,4,0),(18074,'34490',31011,31012,4,0),(18075,'34490',30389,30390,4,0),(18076,'34491',31193,31194,4,0),(18077,'34491',31125,31126,4,0),(18078,'34491',30987,30988,4,0),(18079,'34491',30969,30970,4,0),(18080,'34491',30329,30330,4,0),(18081,'34491',30601,30602,4,0),(18082,'34492',30353,30354,4,0),(18083,'34492',8651,8652,4,0),(18084,'34492',8437,8438,4,0),(18085,'34492',30335,30336,4,0),(18086,'34800',30337,30338,4,0),(18087,'34810',30339,30340,4,0),(18088,'34810',30951,30952,4,0),(18089,'34811',30341,30342,4,0),(18090,'34811',30873,30874,4,0),(18091,'34813',30343,30344,4,0),(18092,'34813',30875,30876,4,0),(18093,'34814',30439,30440,4,0),(18094,'34814',30877,30878,4,0),(18095,'34815',30879,30880,4,0),(18096,'34815',30345,30346,4,0),(18097,'34820',30419,30420,4,0),(18098,'34828',30963,30964,4,0),(18099,'34828',30421,30422,4,0),(18100,'34828',30953,30954,4,0),(18101,'34829',30457,30458,4,0),(18102,'34829',30423,30424,4,0),(18103,'34830',30973,30974,4,0),(18104,'34830',30955,30956,4,0),(18105,'34839',30965,30966,4,0),(18106,'34839',30531,30532,4,0),(18107,'34839',30769,30770,4,0),(18108,'34840',30533,30534,4,0),(18109,'34844',30535,30536,4,0),(18110,'34844',30581,30582,4,0),(18111,'34844',31047,31048,4,0),(18112,'34846',30869,30870,4,0),(18113,'34846',30537,30538,4,0),(18114,'34847',30675,30676,4,0),(18115,'34848',30677,30678,4,0),(18116,'34849',30679,30680,4,0),(18117,'34850',30501,30502,4,0),(18118,'34858',30503,30504,4,0),(18119,'34859',30505,30506,4,0),(18120,'34869',30999,31000,4,0),(18121,'34870',30917,30918,4,0),(18122,'34870',31001,31002,4,0),(18123,'34874',30919,30920,4,0),(18124,'34878',30921,30922,4,0),(18125,'34878',30563,30564,4,0),(18126,'34878',31003,31004,4,0),(18127,'34879',31005,31006,4,0),(18128,'34879',30629,30630,4,0),(18129,'34880',30631,30632,4,0),(18130,'34882',30565,30566,4,0),(18131,'34882',30633,30634,4,0),(18132,'34884',31007,31008,4,0),(18133,'34886',31077,31078,4,0),(18134,'34888',31079,31080,4,0),(18135,'34889',30609,30610,4,0),(18136,'34889',30635,30636,4,0),(18137,'34889',31081,31082,4,0),(18138,'34889',31133,31134,4,0),(18139,'36001',31861,31862,4,0),(18140,'36002',31863,31864,4,0),(18141,'36003',31865,31866,4,0),(18142,'36004',31867,31868,4,0),(18143,'36005',31795,31796,4,0),(18144,'36005',31869,31870,4,0),(18145,'36110',31449,31450,4,0),(18146,'36116',31475,31476,4,0),(18147,'36117',31451,31452,4,0),(18148,'36118',31453,31454,4,0),(18149,'36119',31455,31456,4,0),(18150,'36120',31477,31478,4,0),(18151,'36121',31479,31480,4,0),(18152,'36139',31481,31482,4,0),(18153,'36140',32173,32174,4,0),(18154,'36141',32175,32176,4,0),(18155,'36142',32177,32178,4,0),(18156,'36143',31871,31872,4,0),(18157,'36150',31873,31874,4,0),(18158,'36151',31875,31876,4,0),(18159,'36152',31877,31878,4,0),(18160,'36153',31879,31880,4,0),(18161,'36154',31881,31882,4,0),(18162,'36155',31883,31884,4,0),(18163,'36156',31885,31886,4,0),(18164,'36157',31887,31888,4,0),(18165,'36158',31889,31890,4,0),(18166,'36160',31891,31892,4,0),(18167,'36161',31893,31894,4,0),(18168,'36162',31895,31896,4,0),(18169,'36163',31797,31798,4,0),(18170,'36164',31897,31898,4,0),(18171,'36190',31399,31400,4,0),(18172,'36191',31401,31402,4,0),(18173,'36192',31659,31660,4,0),(18174,'36193',31905,31906,4,0),(18175,'36193',31403,31404,4,0),(18176,'36194',31405,31406,4,0),(18177,'36201',32091,32092,4,0),(18178,'36202',32093,32094,4,0),(18179,'36203',32095,32096,4,0),(18180,'36204',32097,32098,4,0),(18181,'36205',32099,32100,4,0),(18182,'36206',32101,32102,4,0),(18183,'36207',32103,32104,4,0),(18184,'36208',32105,32106,4,0),(18185,'36209',32107,32108,4,0),(18186,'36210',32109,32110,4,0),(18187,'36211',32111,32112,4,0),(18188,'36212',32113,32114,4,0),(18189,'36213',32115,32116,4,0),(18190,'36214',32117,32118,4,0),(18191,'36215',32119,32120,4,0),(18192,'36216',32121,32122,4,0),(18193,'36300',31387,31388,4,0),(18194,'36307',31389,31390,4,0),(18195,'36308',31391,31392,4,0),(18196,'36309',31773,31774,4,0),(18197,'36309',31393,31394,4,0),(18198,'36310',32123,32124,4,0),(18199,'36311',31709,31710,4,0),(18200,'36312',32125,32126,4,0),(18201,'36313',32127,32128,4,0),(18202,'36314',32129,32130,4,0),(18203,'36315',32131,32132,4,0),(18204,'36316',31585,31586,4,0),(18205,'36317',32133,32134,4,0),(18206,'36318',32135,32136,4,0),(18207,'36320',31913,31914,4,0),(18208,'36330',32137,32138,4,0),(18209,'36331',32139,32140,4,0),(18210,'36340',31723,31724,4,0),(18211,'36350',31725,31726,4,0),(18212,'36360',31727,31728,4,0),(18213,'36370',31729,31730,4,0),(18214,'36378',31587,31588,4,0),(18215,'36379',31731,31732,4,0),(18216,'36380',31589,31590,4,0),(18217,'36388',31591,31592,4,0),(18218,'36389',31593,31594,4,0),(18219,'36390',32141,32142,4,0),(18220,'36391',31733,31734,4,0),(18221,'36392',32143,32144,4,0),(18222,'36393',31395,31396,4,0),(18223,'36400',31747,31748,4,0),(18224,'36410',31749,31750,4,0),(18225,'36411',31751,31752,4,0),(18226,'36412',31753,31754,4,0),(18227,'36413',31755,31756,4,0),(18228,'36414',31757,31758,4,0),(18229,'36415',31711,31712,4,0),(18230,'36416',31713,31714,4,0),(18231,'36417',31715,31716,4,0),(18232,'36418',31759,31760,4,0),(18233,'36418',31717,31718,4,0),(18234,'36419',31719,31720,4,0),(18235,'36420',31511,31512,4,0),(18236,'36428',31513,31514,4,0),(18237,'36429',31515,31516,4,0),(18238,'36430',31359,31360,4,0),(18239,'36435',31361,31362,4,0),(18240,'36436',31363,31364,4,0),(18241,'36437',31365,31366,4,0),(18242,'36438',31367,31368,4,0),(18243,'36439',31369,31370,4,0),(18244,'36440',31375,31376,4,0),(18245,'36446',31377,31378,4,0),(18246,'36447',31379,31380,4,0),(18247,'36448',31381,31382,4,0),(18248,'36449',31383,31384,4,0),(18249,'36450',31975,31976,4,0),(18250,'36455',31977,31978,4,0),(18251,'36456',31979,31980,4,0),(18252,'36457',31981,31982,4,0),(18253,'36458',31983,31984,4,0),(18254,'36459',31985,31986,4,0),(18255,'36460',31959,31960,4,0),(18256,'36460',32061,32062,4,0),(18257,'36470',31961,31962,4,0),(18258,'36470',32035,32036,4,0),(18259,'36471',31963,31964,4,0),(18260,'36472',31965,31966,4,0),(18261,'36473',31967,31968,4,0),(18262,'36474',31969,31970,4,0),(18263,'36475',31971,31972,4,0),(18264,'36475',31761,31762,4,0),(18265,'36490',31517,31518,4,0),(18266,'36491',31519,31520,4,0),(18267,'36492',31521,31522,4,0),(18268,'36493',31523,31524,4,0),(18269,'36494',31371,31372,4,0),(18270,'36500',31605,31606,4,0),(18271,'36510',31607,31608,4,0),(18272,'36511',31609,31610,4,0),(18273,'36511',31947,31948,4,0),(18274,'36512',31611,31612,4,0),(18275,'36514',31613,31614,4,0),(18276,'36514',31341,31342,4,0),(18277,'36515',31615,31616,4,0),(18278,'36516',31541,31542,4,0),(18279,'36516',31617,31618,4,0),(18280,'36517',31619,31620,4,0),(18281,'36518',31621,31622,4,0),(18282,'36518',31543,31544,4,0),(18283,'36519',31623,31624,4,0),(18284,'36520',31343,31344,4,0),(18285,'36524',31345,31346,4,0),(18286,'36525',31347,31348,4,0),(18287,'36526',31349,31350,4,0),(18288,'36527',31351,31352,4,0),(18289,'36528',31353,31354,4,0),(18290,'36529',31355,31356,4,0),(18291,'36530',31949,31950,4,0),(18292,'36537',31951,31952,4,0),(18293,'36538',31953,31954,4,0),(18294,'36539',31955,31956,4,0),(18295,'36540',32003,32004,4,0),(18296,'36543',32005,32006,4,0),(18297,'36544',32007,32008,4,0),(18298,'36545',32009,32010,4,0),(18299,'36546',32011,32012,4,0),(18300,'36547',32013,32014,4,0),(18301,'36548',32015,32016,4,0),(18302,'36549',31547,31548,4,0),(18303,'36549',32017,32018,4,0),(18304,'36550',31549,31550,4,0),(18305,'36555',31551,31552,4,0),(18306,'36556',31553,31554,4,0),(18307,'36557',31555,31556,4,0),(18308,'36558',31557,31558,4,0),(18309,'36559',31279,31280,4,0),(18310,'36560',31559,31560,4,0),(18311,'36567',31561,31562,4,0),(18312,'36569',31563,31564,4,0),(18313,'36570',32019,32020,4,0),(18314,'36579',32021,32022,4,0),(18315,'36580',32147,32148,4,0),(18316,'36581',32149,32150,4,0),(18317,'36582',32151,32152,4,0),(18318,'36583',32153,32154,4,0),(18319,'36583',31625,31626,4,0),(18320,'36584',31281,31282,4,0),(18321,'36585',32155,32156,4,0),(18322,'36586',32157,32158,4,0),(18323,'36587',32023,32024,4,0),(18324,'36587',32159,32160,4,0),(18325,'36588',31283,31284,4,0),(18326,'36589',32025,32026,4,0),(18327,'36590',32161,32162,4,0),(18328,'36596',32163,32164,4,0),(18329,'36596',31627,31628,4,0),(18330,'36597',32165,32166,4,0),(18331,'36598',32167,32168,4,0),(18332,'36598',31629,31630,4,0),(18333,'36599',32169,32170,4,0),(18334,'36600',32181,32182,4,0),(18335,'36610',32183,32184,4,0),(18336,'36611',32185,32186,4,0),(18337,'36612',31471,31472,4,0),(18338,'36613',32187,32188,4,0),(18339,'36614',32199,32200,4,0),(18340,'36615',31421,31422,4,0),(18341,'36616',32201,32202,4,0),(18342,'36616',31661,31662,4,0),(18343,'36617',32189,32190,4,0),(18344,'36618',32191,32192,4,0),(18345,'36619',32193,32194,4,0),(18346,'36620',32203,32204,4,0),(18347,'36626',31319,31320,4,0),(18348,'36627',32205,32206,4,0),(18349,'36628',32207,32208,4,0),(18350,'36629',32209,32210,4,0),(18351,'36629',32195,32196,4,0),(18352,'36630',31437,31438,4,0),(18353,'36633',31439,31440,4,0),(18354,'36634',31441,31442,4,0),(18355,'36635',31443,31444,4,0),(18356,'36635',31939,31940,4,0),(18357,'36636',31941,31942,4,0),(18358,'36637',31663,31664,4,0),(18359,'36638',31649,31650,4,0),(18360,'36638',31943,31944,4,0),(18361,'36639',31445,31446,4,0),(18362,'36640',31855,31856,4,0),(18363,'36645',32083,32084,4,0),(18364,'36646',32085,32086,4,0),(18365,'36647',32087,32088,4,0),(18366,'36649',31857,31858,4,0),(18367,'36650',31423,31424,4,0),(18368,'36653',31425,31426,4,0),(18369,'36654',31427,31428,4,0),(18370,'36655',31429,31430,4,0),(18371,'36656',31431,31432,4,0),(18372,'36657',31907,31908,4,0),(18373,'36658',31285,31286,4,0),(18374,'36658',31909,31910,4,0),(18375,'36659',31433,31434,4,0),(18376,'36660',31701,31702,4,0),(18377,'36668',31703,31704,4,0),(18378,'36669',31705,31706,4,0),(18379,'36670',31529,31530,4,0),(18380,'36675',31531,31532,4,0),(18381,'36676',31287,31288,4,0),(18382,'36677',31533,31534,4,0),(18383,'36678',31535,31536,4,0),(18384,'36679',31537,31538,4,0),(18385,'36680',31289,31290,4,0),(18386,'36681',31291,31292,4,0),(18387,'36682',31293,31294,4,0),(18388,'36683',31295,31296,4,0),(18389,'36684',31297,31298,4,0),(18390,'36685',31299,31300,4,0),(18391,'36685',31823,31824,4,0),(18392,'36686',31301,31302,4,0),(18393,'36687',31303,31304,4,0),(18394,'36688',31305,31306,4,0),(18395,'36689',31307,31308,4,0),(18396,'36690',31899,31900,4,0),(18397,'36690',32029,32030,4,0),(18398,'36691',32031,32032,4,0),(18399,'36692',31407,31408,4,0),(18400,'36693',31915,31916,4,0),(18401,'36700',32063,32064,4,0),(18402,'36710',32065,32066,4,0),(18403,'36711',32067,32068,4,0),(18404,'36712',32069,32070,4,0),(18405,'36713',32071,32072,4,0),(18406,'36714',32073,32074,4,0),(18407,'36715',32075,32076,4,0),(18408,'36720',32077,32078,4,0),(18409,'36729',32079,32080,4,0),(18410,'36730',32037,32038,4,0),(18411,'36739',32039,32040,4,0),(18412,'36740',32041,32042,4,0),(18413,'36746',32043,32044,4,0),(18414,'36747',32045,32046,4,0),(18415,'36748',32047,32048,4,0),(18416,'36749',32049,32050,4,0),(18417,'36750',32051,32052,4,0),(18418,'36760',31765,31766,4,0),(18419,'36770',31767,31768,4,0),(18420,'36778',31769,31770,4,0),(18421,'36779',31775,31776,4,0),(18422,'36780',31311,31312,4,0),(18423,'36788',31313,31314,4,0),(18424,'36789',31315,31316,4,0),(18425,'36790',32053,32054,4,0),(18426,'36791',32055,32056,4,0),(18427,'36792',32057,32058,4,0),(18428,'36794',31777,31778,4,0),(18429,'36800',31917,31918,4,0),(18430,'36810',31919,31920,4,0),(18431,'36811',31921,31922,4,0),(18432,'36812',31923,31924,4,0),(18433,'36813',31925,31926,4,0),(18434,'36814',31927,31928,4,0),(18435,'36815',31929,31930,4,0),(18436,'36816',31931,31932,4,0),(18437,'36817',31781,31782,4,0),(18438,'36817',31933,31934,4,0),(18439,'36818',31935,31936,4,0),(18440,'36820',31807,31808,4,0),(18441,'36826',31809,31810,4,0),(18442,'36827',31811,31812,4,0),(18443,'36828',31813,31814,4,0),(18444,'36829',31815,31816,4,0),(18445,'36830',31323,31324,4,0),(18446,'36835',31325,31326,4,0),(18447,'36836',31327,31328,4,0),(18448,'36837',31329,31330,4,0),(18449,'36838',31331,31332,4,0),(18450,'36839',31333,31334,4,0),(18451,'36840',31783,31784,4,0),(18452,'36841',31785,31786,4,0),(18453,'36842',31787,31788,4,0),(18454,'36843',31789,31790,4,0),(18455,'36844',31791,31792,4,0),(18456,'36845',31567,31568,4,0),(18457,'36846',31569,31570,4,0),(18458,'36847',31571,31572,4,0),(18459,'36848',31573,31574,4,0),(18460,'36849',31575,31576,4,0),(18461,'36850',31335,31336,4,0),(18462,'36851',31577,31578,4,0),(18463,'36852',31579,31580,4,0),(18464,'36853',31817,31818,4,0),(18465,'36853',31337,31338,4,0),(18466,'36854',31483,31484,4,0),(18467,'36855',31485,31486,4,0),(18468,'36856',31487,31488,4,0),(18469,'36857',31819,31820,4,0),(18470,'36857',31489,31490,4,0),(18471,'36858',31491,31492,4,0),(18472,'36859',31493,31494,4,0),(18473,'36860',31825,31826,4,0),(18474,'36861',31827,31828,4,0),(18475,'36862',31829,31830,4,0),(18476,'36863',31831,31832,4,0),(18477,'36864',31833,31834,4,0),(18478,'36865',31835,31836,4,0),(18479,'36866',31837,31838,4,0),(18480,'36867',31839,31840,4,0),(18481,'36868',31841,31842,4,0),(18482,'36869',31843,31844,4,0),(18483,'36870',31681,31682,4,0),(18484,'36872',31497,31498,4,0),(18485,'36873',31499,31500,4,0),(18486,'36874',31683,31684,4,0),(18487,'36875',31685,31686,4,0),(18488,'36875',31581,31582,4,0),(18489,'36876',31687,31688,4,0),(18490,'36876',31501,31502,4,0),(18491,'36877',31689,31690,4,0),(18492,'36877',31503,31504,4,0),(18493,'36878',31691,31692,4,0),(18494,'36878',31505,31506,4,0),(18495,'36879',31693,31694,4,0),(18496,'36880',31261,31262,4,0),(18497,'36883',31263,31264,4,0),(18498,'36884',31265,31266,4,0),(18499,'36885',31525,31526,4,0),(18500,'36885',31267,31268,4,0),(18501,'36886',31269,31270,4,0),(18502,'36887',31271,31272,4,0),(18503,'36888',31273,31274,4,0),(18504,'36889',31275,31276,4,0),(18505,'36889',31507,31508,4,0),(18506,'36890',31697,31698,4,0),(18507,'36891',31845,31846,4,0),(18508,'36892',31847,31848,4,0),(18509,'36893',31849,31850,4,0),(18510,'36895',31851,31852,4,0),(18511,'36900',31633,31634,4,0),(18512,'36910',31901,31902,4,0),(18513,'36911',31635,31636,4,0),(18514,'36912',31637,31638,4,0),(18515,'36913',31639,31640,4,0),(18516,'36914',31641,31642,4,0),(18517,'36915',31643,31644,4,0),(18518,'36920',31645,31646,4,0),(18519,'36930',31411,31412,4,0),(18520,'36937',31413,31414,4,0),(18521,'36938',31415,31416,4,0),(18522,'36939',31417,31418,4,0),(18523,'36940',31459,31460,4,0),(18524,'36945',31461,31462,4,0),(18525,'36946',31463,31464,4,0),(18526,'36947',31465,31466,4,0),(18527,'36948',31467,31468,4,0),(18528,'36950',31667,31668,4,0),(18529,'36954',31669,31670,4,0),(18530,'36955',31671,31672,4,0),(18531,'36957',31673,31674,4,0),(18532,'36958',31675,31676,4,0),(18533,'36959',31677,31678,4,0),(18534,'36960',31989,31990,4,0),(18535,'36966',31991,31992,4,0),(18536,'36967',31651,31652,4,0),(18537,'36968',31653,31654,4,0),(18538,'36969',31993,31994,4,0),(18539,'36969',31655,31656,4,0),(18540,'36970',31995,31996,4,0),(18541,'36979',31997,31998,4,0),(18542,'36980',31737,31738,4,0),(18543,'36988',31739,31740,4,0),(18544,'36989',31741,31742,4,0),(18545,'36990',31999,32000,4,0),(18546,'36991',31743,31744,4,0),(18547,'36992',31799,31800,4,0),(18548,'36993',31801,31802,4,0),(18549,'36995',31803,31804,4,0),(18550,'37001',33481,33484,4,1),(18551,'37002',33485,33486,4,0),(18552,'37003',33487,33488,4,0),(18553,'37004',33489,33490,4,0),(18554,'37005',33491,33492,4,0),(18555,'37006',33493,33494,4,0),(18556,'37007',33495,33496,4,0),(18557,'37008',33497,33498,4,0),(18558,'37008',32515,32516,4,0),(18559,'37100',33081,33082,4,0),(18560,'37110',32671,32672,4,0),(18561,'37110',33955,33956,4,0),(18562,'37110',32281,32282,4,0),(18563,'37110',33625,33626,4,0),(18564,'37110',33719,33720,4,0),(18565,'37110',33567,33568,4,0),(18566,'37111',32339,32340,4,0),(18567,'37111',33083,33084,4,0),(18568,'37111',33299,33300,4,0),(18569,'37111',33569,33570,4,0),(18570,'37114',32867,32868,4,0),(18571,'37114',32737,32738,4,0),(18572,'37114',33901,33902,4,0),(18573,'37115',33803,33804,4,0),(18574,'37115',33789,33790,4,0),(18575,'37115',32325,32326,4,0),(18576,'37115',32941,32942,4,0),(18577,'37115',33881,33882,4,0),(18578,'37116',33085,33086,4,0),(18579,'37117',32659,32660,4,0),(18580,'37120',32529,32530,4,0),(18581,'37120',32661,32662,4,0),(18582,'37129',32777,32778,4,0),(18583,'37129',32827,32828,4,0),(18584,'37129',32531,32532,4,0),(18585,'37129',33311,33312,4,0),(18586,'37129',32663,32664,4,0),(18587,'37130',33883,33884,4,0),(18588,'37130',32651,32652,4,0),(18589,'37130',33005,33006,4,0),(18590,'37130',32491,32492,4,0),(18591,'37130',33467,33468,4,0),(18592,'37130',33671,33672,4,0),(18593,'37139',32653,32654,4,0),(18594,'37139',33007,33008,4,0),(18595,'37140',33905,33906,4,0),(18596,'37147',33851,33852,4,0),(18597,'37148',33907,33908,4,0),(18598,'37148',33853,33854,4,0),(18599,'37148',32765,32766,4,0),(18600,'37148',33727,33728,4,0),(18601,'37149',33909,33910,4,0),(18602,'37149',33087,33088,4,0),(18603,'37149',33729,33730,4,0),(18604,'37150',33911,33912,4,0),(18605,'37159',33439,33440,4,0),(18606,'37159',33913,33914,4,0),(18607,'37160',33873,33874,4,0),(18608,'37169',33875,33876,4,0),(18609,'37170',32871,32872,4,0),(18610,'37170',33885,33886,4,0),(18611,'37170',33959,33960,4,0),(18612,'37170',32721,32722,4,0),(18613,'37170',33805,33806,4,0),(18614,'37170',33563,33564,4,0),(18615,'37170',32615,32616,4,0),(18616,'37170',32533,32534,4,0),(18617,'37170',33009,33010,4,0),(18618,'37171',32705,32706,4,0),(18619,'37171',33183,33184,4,0),(18620,'37172',33629,33630,4,0),(18621,'37173',32227,32228,4,0),(18622,'37173',33723,33724,4,0),(18623,'37174',33877,33878,4,0),(18624,'37175',33391,33392,4,0),(18625,'37176',32329,32330,4,0),(18626,'37181',33351,33352,4,0),(18627,'37181',32465,32466,4,0),(18628,'37183',33211,33212,4,0),(18629,'37183',32347,32348,4,0),(18630,'37183',33549,33550,4,0),(18631,'37183',32297,32298,4,0),(18632,'37183',33231,33232,4,0),(18633,'37184',33861,33862,4,0),(18634,'37185',32561,32562,4,0),(18635,'37185',33825,33826,4,0),(18636,'37185',32655,32656,4,0),(18637,'37185',33791,33792,4,0),(18638,'37186',32299,32300,4,0),(18639,'37186',33233,33234,4,0),(18640,'37186',32379,32380,4,0),(18641,'37186',33551,33552,4,0),(18642,'37187',32301,32302,4,0),(18643,'37187',33159,33160,4,0),(18644,'37188',32349,32350,4,0),(18645,'37188',32517,32518,4,0),(18646,'37189',33863,33864,4,0),(18647,'37190',33703,33704,4,0),(18648,'37191',32519,32520,4,0),(18649,'37191',32469,32470,4,0),(18650,'37192',32535,32536,4,0),(18651,'37192',32303,32304,4,0),(18652,'37193',33553,33554,4,0),(18653,'37193',32455,32456,4,0),(18654,'37194',33605,33606,4,0),(18655,'37197',33235,33236,4,0),(18656,'37198',32521,32522,4,0),(18657,'37200',32989,32990,4,0),(18658,'37207',32991,32992,4,0),(18659,'37208',32993,32994,4,0),(18660,'37208',33543,33544,4,0),(18661,'37209',33355,33356,4,0),(18662,'37209',32695,32696,4,0),(18663,'37209',32437,32438,4,0),(18664,'37209',32861,32862,4,0),(18665,'37210',33941,33942,4,0),(18666,'37214',33051,33052,4,0),(18667,'37214',32447,32448,4,0),(18668,'37214',33023,33024,4,0),(18669,'37214',33779,33780,4,0),(18670,'37216',33415,33416,4,0),(18671,'37216',32609,32610,4,0),(18672,'37216',33223,33224,4,0),(18673,'37216',33383,33384,4,0),(18674,'37216',33387,33388,4,0),(18675,'37217',32389,32390,4,0),(18676,'37217',32933,32934,4,0),(18677,'37217',33889,33890,4,0),(18678,'37217',32433,32434,4,0),(18679,'37217',33575,33576,4,0),(18680,'37217',33857,33858,4,0),(18681,'37217',33781,33782,4,0),(18682,'37219',33457,33458,4,0),(18683,'37219',32879,32880,4,0),(18684,'37219',33225,33226,4,0),(18685,'37219',33947,33948,4,0),(18686,'37219',32457,32458,4,0),(18687,'37220',32985,32986,4,0),(18688,'37230',32913,32914,4,0),(18689,'37240',33103,33104,4,0),(18690,'37246',33659,33660,4,0),(18691,'37247',33027,33028,4,0),(18692,'37248',32223,32224,4,0),(18693,'37250',32261,32262,4,0),(18694,'37250',33943,33944,4,0),(18695,'37251',32263,32264,4,0),(18696,'37251',33141,33142,4,0),(18697,'37253',32587,32588,4,0),(18698,'37253',32265,32266,4,0),(18699,'37253',33055,33056,4,0),(18700,'37254',33155,33156,4,0),(18701,'37255',32393,32394,4,0),(18702,'37256',33761,33762,4,0),(18703,'37256',33893,33894,4,0),(18704,'37256',32709,32710,4,0),(18705,'37256',32751,32752,4,0),(18706,'37257',33633,33634,4,0),(18707,'37258',33937,33938,4,0),(18708,'37258',33227,33228,4,0),(18709,'37259',33501,33502,4,0),(18710,'37260',33925,33926,4,0),(18711,'37267',33869,33870,4,0),(18712,'37270',33521,33522,4,0),(18713,'37271',32375,32376,4,0),(18714,'37273',32591,32592,4,0),(18715,'37281',32697,32698,4,0),(18716,'37290',32421,32422,4,0),(18717,'37291',32425,32426,4,0),(18718,'37291',32409,32410,4,0),(18719,'37291',33287,33288,4,0),(18720,'37291',32593,32594,4,0),(18721,'37291',32801,32802,4,0),(18722,'37292',33289,33290,4,0),(18723,'37300',33375,33376,4,0),(18724,'37310',33111,33112,4,0),(18725,'37311',33611,33612,4,0),(18726,'37312',32231,32232,4,0),(18727,'37313',33119,33120,4,0),(18728,'37314',33505,33506,4,0),(18729,'37315',33123,33124,4,0),(18730,'37316',32429,32430,4,0),(18731,'37317',32683,32684,4,0),(18732,'37317',32293,32294,4,0),(18733,'37318',33321,33322,4,0),(18734,'37318',33453,33454,4,0),(18735,'37319',32511,32512,4,0),(18736,'37320',33841,33842,4,0),(18737,'37329',33809,33810,4,0),(18738,'37329',32249,32250,4,0),(18739,'37330',32371,32372,4,0),(18740,'37337',32639,32640,4,0),(18741,'37337',33215,33216,4,0),(18742,'37338',32929,32930,4,0),(18743,'37338',33933,33934,4,0),(18744,'37339',33929,33930,4,0),(18745,'37340',33539,33540,4,0),(18746,'37340',32285,32286,4,0),(18747,'37350',32269,32270,4,0),(18748,'37400',32503,32504,4,0),(18749,'37405',32507,32508,4,0),(18750,'37406',33303,33304,4,0),(18751,'37406',33813,33814,4,0),(18752,'37406',33411,33412,4,0),(18753,'37408',33963,33964,4,0),(18754,'37409',33687,33688,4,0),(18755,'37410',32717,32718,4,0),(18756,'37418',32343,32344,4,0),(18757,'37419',33317,33318,4,0),(18758,'37419',32773,32774,4,0),(18759,'37420',32875,32876,4,0),(18760,'37427',33047,33048,4,0),(18761,'37427',33347,33348,4,0),(18762,'37427',33017,33018,4,0),(18763,'37428',33293,33294,4,0),(18764,'37428',33019,33020,4,0),(18765,'37428',33921,33922,4,0),(18766,'37429',32357,32358,4,0),(18767,'37429',33691,33692,4,0),(18768,'37429',32273,32274,4,0),(18769,'37430',33219,33220,4,0),(18770,'37439',33513,33514,4,0),(18771,'37439',32557,32558,4,0),(18772,'37440',32473,32474,4,0),(18773,'37440',32381,32382,4,0),(18774,'37447',33473,33474,4,0),(18775,'37448',32493,32494,4,0),(18776,'37448',32475,32476,4,0),(18777,'37449',33313,33314,4,0),(18778,'37449',32537,32538,4,0),(18779,'37449',32829,32830,4,0),(18780,'37450',33145,33146,4,0),(18781,'37450',33071,33072,4,0),(18782,'37450',33795,33796,4,0),(18783,'37451',33821,33822,4,0),(18784,'37451',32539,32540,4,0),(18785,'37451',32543,32544,4,0),(18786,'37452',33241,33242,4,0),(18787,'37452',33073,33074,4,0),(18788,'37452',33797,33798,4,0),(18789,'37453',33799,33800,4,0),(18790,'37453',33147,33148,4,0),(18791,'37453',33555,33556,4,0),(18792,'37454',33075,33076,4,0),(18793,'37458',33337,33338,4,0),(18794,'37460',33593,33594,4,0),(18795,'37460',32313,32314,4,0),(18796,'37460',33673,33674,4,0),(18797,'37460',32863,32864,4,0),(18798,'37465',33035,33036,4,0),(18799,'37466',33579,33580,4,0),(18800,'37466',32315,32316,4,0),(18801,'37467',33595,33596,4,0),(18802,'37468',33601,33602,4,0),(18803,'37468',33597,33598,4,0),(18804,'37468',32611,32612,4,0),(18805,'37468',33897,33898,4,0),(18806,'37470',33587,33588,4,0),(18807,'37478',32319,32320,4,0),(18808,'37478',32245,32246,4,0),(18809,'37478',32647,32648,4,0),(18810,'37479',32569,32570,4,0),(18811,'37479',33589,33590,4,0),(18812,'37480',32813,32814,4,0),(18813,'37481',32815,32816,4,0),(18814,'37488',33845,33846,4,0),(18815,'37488',32969,32970,4,0),(18816,'37488',33557,33558,4,0),(18817,'37488',33449,33450,4,0),(18818,'37488',32253,32254,4,0),(18819,'37488',33837,33838,4,0),(18820,'37490',32451,32452,4,0),(18821,'37490',33403,33404,4,0),(18822,'37491',32495,32496,4,0),(18823,'37491',33675,33676,4,0),(18824,'37492',33469,33470,4,0),(18825,'37493',33357,33358,4,0),(18826,'37493',32995,32996,4,0),(18827,'37493',32439,32440,4,0),(18828,'37494',33131,33132,4,0),(18829,'37494',32575,32576,4,0),(18830,'37495',33459,33460,4,0),(18831,'37496',33133,33134,4,0),(18832,'37497',33847,33848,4,0),(18833,'37497',32945,32946,4,0),(18834,'37497',32525,32526,4,0),(18835,'37497',33833,33834,4,0),(18836,'37497',32769,32770,4,0),(18837,'37497',32843,32844,4,0),(18838,'37500',32617,32618,4,0),(18839,'37510',33127,33128,4,0),(18840,'37510',32897,32898,4,0),(18841,'37510',33325,33326,4,0),(18842,'37510',32219,32220,4,0),(18843,'37510',32725,32726,4,0),(18844,'37515',32981,32982,4,0),(18845,'37516',32899,32900,4,0),(18846,'37520',32675,32676,4,0),(18847,'37521',33463,33464,4,0),(18848,'37522',33917,33918,4,0),(18849,'37523',33371,33372,4,0),(18850,'37524',32713,32714,4,0),(18851,'37530',33651,33652,4,0),(18852,'37531',33645,33646,4,0),(18853,'37532',33187,33188,4,0),(18854,'37540',32797,32798,4,0),(18855,'37541',32553,32554,4,0),(18856,'37542',33279,33280,4,0),(18857,'37550',32483,32484,4,0),(18858,'37551',32937,32938,4,0),(18859,'37552',33419,33420,4,0),(18860,'37553',33421,33422,4,0),(18861,'37554',32949,32950,4,0),(18862,'37555',32957,32958,4,0),(18863,'37590',32619,32620,4,0),(18864,'37590',33699,33700,4,0),(18865,'37590',33647,33648,4,0),(18866,'37590',33207,33208,4,0),(18867,'37591',33951,33952,4,0),(18868,'37591',32621,32622,4,0),(18869,'37591',32961,32962,4,0),(18870,'37591',32305,32306,4,0),(18871,'37592',33477,33478,4,0),(18872,'37592',32571,32572,4,0),(18873,'37593',32623,32624,4,0),(18874,'37594',32625,32626,4,0),(18875,'37595',32627,32628,4,0),(18876,'37600',33679,33680,4,0),(18877,'37606',33429,33430,4,0),(18878,'37607',32385,32386,4,0),(18879,'37607',33695,33696,4,0),(18880,'37607',33031,33032,4,0),(18881,'37607',33275,33276,4,0),(18882,'37608',33681,33682,4,0),(18883,'37609',33077,33078,4,0),(18884,'37609',32413,32414,4,0),(18885,'37609',33559,33560,4,0),(18886,'37609',33683,33684,4,0),(18887,'37609',32545,32546,4,0),(18888,'37609',33243,33244,4,0),(18889,'37610',33167,33168,4,0),(18890,'37617',32903,32904,4,0),(18891,'37618',33175,33176,4,0),(18892,'37619',33115,33116,4,0),(18893,'37619',32905,32906,4,0),(18894,'37621',32583,32584,4,0),(18895,'37621',32277,32278,4,0),(18896,'37621',32679,32680,4,0),(18897,'37621',32605,32606,4,0),(18898,'37621',32965,32966,4,0),(18899,'37621',32701,32702,4,0),(18900,'37624',32953,32954,4,0),(18901,'37630',32461,32462,4,0),(18902,'37638',33637,33638,4,0),(18903,'37638',32921,32922,4,0),(18904,'37639',32321,32322,4,0),(18905,'37640',33545,33546,4,0),(18906,'37640',32215,32216,4,0),(18907,'37650',33641,33642,4,0),(18908,'37656',32579,32580,4,0),(18909,'37657',33667,33668,4,0),(18910,'37658',32851,32852,4,0),(18911,'37658',33829,33830,4,0),(18912,'37659',33251,33252,4,0),(18913,'37659',33525,33526,4,0),(18914,'37659',33533,33534,4,0),(18915,'37659',33067,33068,4,0),(18916,'37660',33163,33164,4,0),(18917,'37670',33619,33620,4,0),(18918,'37671',33517,33518,4,0),(18919,'37680',33737,33738,4,0),(18920,'37682',33621,33622,4,0),(18921,'37683',33171,33172,4,0),(18922,'37684',32643,32644,4,0),(18923,'37690',32997,32998,4,0),(18924,'37694',33535,33536,4,0),(18925,'37700',32397,32398,4,0),(18926,'37700',32887,32888,4,0),(18927,'37710',32487,32488,4,0),(18928,'37711',32635,32636,4,0),(18929,'37712',33399,33400,4,0),(18930,'37712',32917,32918,4,0),(18931,'37713',33741,33742,4,0),(18932,'37714',32977,32978,4,0),(18933,'37716',33001,33002,4,0),(18934,'37716',32499,32500,4,0),(18935,'37716',33259,33260,4,0),(18936,'37717',33775,33776,4,0),(18937,'37717',32399,32400,4,0),(18938,'37718',32257,32258,4,0),(18939,'37720',33443,33444,4,0),(18940,'37720',32687,32688,4,0),(18941,'37724',33749,33750,4,0),(18942,'37724',32689,32690,4,0),(18943,'37724',33059,33060,4,0),(18944,'37726',32691,32692,4,0),(18945,'37727',33195,33196,4,0),(18946,'37727',33367,33368,4,0),(18947,'37729',33445,33446,4,0),(18948,'37730',33091,33092,4,0),(18949,'37740',33615,33616,4,0),(18950,'37748',33433,33434,4,0),(18951,'37749',32729,32730,4,0),(18952,'37749',33271,33272,4,0),(18953,'37750',32597,32598,4,0),(18954,'37750',33435,33436,4,0),(18955,'37751',32847,32848,4,0),(18956,'37752',33043,33044,4,0),(18957,'37753',32361,32362,4,0),(18958,'37754',32363,32364,4,0),(18959,'37755',32365,32366,4,0),(18960,'37756',32367,32368,4,0),(18961,'37760',33095,33096,4,0),(18962,'37762',32909,32910,4,0),(18963,'37762',32761,32762,4,0),(18964,'37762',33039,33040,4,0),(18965,'37763',33529,33530,4,0),(18966,'37764',33771,33772,4,0),(18967,'37765',32755,32756,4,0),(18968,'37765',32733,32734,4,0),(18969,'37765',33179,33180,4,0),(18970,'37766',33339,33340,4,0),(18971,'37766',32757,32758,4,0),(18972,'37766',32785,32786,4,0),(18973,'37766',33151,33152,4,0),(18974,'37767',32549,32550,4,0),(18975,'37768',32805,32806,4,0),(18976,'37768',33099,33100,4,0),(18977,'37770',32889,32890,4,0),(18978,'37774',32883,32884,4,0),(18979,'37775',32789,32790,4,0),(18980,'37776',33247,33248,4,0),(18981,'37777',33663,33664,4,0),(18982,'37777',32973,32974,4,0),(18983,'37778',32891,32892,4,0),(18984,'37779',33509,33510,4,0),(18985,'37779',32309,32310,4,0),(18986,'37780',33013,33014,4,0),(18987,'37785',32833,32834,4,0),(18988,'37786',32835,32836,4,0),(18989,'37787',33361,33362,4,0),(18990,'37788',33341,33342,4,0),(18991,'37788',33203,33204,4,0),(18992,'37789',32443,32444,4,0),(18993,'37789',32405,32406,4,0),(18994,'37789',32793,32794,4,0),(18995,'37790',32809,32810,4,0),(18996,'37791',33395,33396,4,0),(18997,'37791',33785,33786,4,0),(18998,'37791',33425,33426,4,0),(18999,'37791',33745,33746,4,0),(19000,'37792',33343,33344,4,0),(19001,'37793',32351,32352,4,0),(19002,'37793',32401,32402,4,0),(19003,'37794',33267,33268,4,0),(19004,'37794',33583,33584,4,0),(19005,'37795',33191,33192,4,0),(19006,'37795',32893,32894,4,0),(19007,'37795',32417,32418,4,0),(19008,'37795',33407,33408,4,0),(19009,'37796',33237,33238,4,0),(19010,'37796',32353,32354,4,0),(19011,'37797',32479,32480,4,0),(19012,'37797',32563,32564,4,0),(19013,'37798',33865,33866,4,0),(19014,'37798',33765,33766,4,0),(19015,'37798',32565,32566,4,0),(19016,'37798',33199,33200,4,0),(19017,'37799',33711,33712,4,0),(19018,'37799',33571,33572,4,0),(19019,'37799',32781,32782,4,0),(19020,'37799',33283,33284,4,0),(19021,'37799',33767,33768,4,0),(19022,'37799',33307,33308,4,0),(19023,'37799',33753,33754,4,0),(19024,'37800',32235,32236,4,0),(19025,'37810',32855,32856,4,0),(19026,'37820',33379,33380,4,0),(19027,'37830',32631,32632,4,0),(19028,'37840',33715,33716,4,0),(19029,'37850',33255,33256,4,0),(19030,'37860',32923,32924,4,0),(19031,'37861',32601,32602,4,0),(19032,'37862',32925,32926,4,0),(19033,'37863',32333,32334,4,0),(19034,'37864',32335,32336,4,0),(19035,'37865',33063,33064,4,0),(19036,'37870',32289,32290,4,0),(19037,'37871',33333,33334,4,0),(19038,'37872',32819,32820,4,0),(19039,'37873',32821,32822,4,0),(19040,'37874',32823,32824,4,0),(19041,'37874',32741,32742,4,0),(19042,'37874',32857,32858,4,0),(19043,'37881',33733,33734,4,0),(19044,'37882',33263,33264,4,0),(19045,'37882',33705,33706,4,0),(19046,'37882',33329,33330,4,0),(19047,'37890',32237,32238,4,0),(19048,'37891',32667,32668,4,0),(19049,'37891',33757,33758,4,0),(19050,'37891',33137,33138,4,0),(19051,'37891',33363,33364,4,0),(19052,'37891',32839,32840,4,0),(19053,'37892',33655,33656,4,0),(19054,'37892',32239,32240,4,0),(19055,'37892',32747,32748,4,0),(19056,'37893',32241,32242,4,0),(19057,'37893',33107,33108,4,0),(19058,'37893',32743,32744,4,0),(19059,'37893',33707,33708,4,0),(19060,'37893',33817,33818,4,0),(19061,'37900',33607,33608,4,0),(19062,'39001',11037,11038,4,0),(19063,'39002',11039,11040,4,0),(19064,'39003',11041,11042,4,0),(19065,'39004',11043,11044,4,0),(19066,'39005',11045,11046,4,0),(19067,'39006',11047,11048,4,0),(19068,'39007',11049,11050,4,0),(19069,'39008',11051,11052,4,0),(19070,'39009',11053,11054,4,0),(19071,'39010',11055,11056,4,0),(19072,'39011',11057,11058,4,0),(19073,'39012',11059,11060,4,0),(19074,'39100',11017,11018,4,0),(19075,'39108',11019,11020,4,0),(19076,'39110',11021,11022,4,0),(19077,'39120',10871,10872,4,0),(19078,'39130',10791,10792,4,0),(19079,'39140',10939,10940,4,0),(19080,'39146',10941,10942,4,0),(19081,'39150',10943,10944,4,0),(19082,'39160',10945,10946,4,0),(19083,'39170',10527,10528,4,0),(19084,'39180',10849,10850,4,0),(19085,'39190',10529,10530,4,0),(19086,'39191',10531,10532,4,0),(19087,'39192',10819,10820,4,0),(19088,'39193',10501,10502,4,0),(19089,'39193',10687,10688,4,0),(19090,'39195',10503,10504,4,0),(19091,'39197',10497,10498,4,0),(19092,'39197',11089,11090,4,0),(19093,'39200',10923,10924,4,0),(19094,'39200',10587,10588,4,0),(19095,'39210',10715,10716,4,0),(19096,'39211',10717,10718,4,0),(19097,'39212',10589,10590,4,0),(19098,'39212',10719,10720,4,0),(19099,'39213',10591,10592,4,0),(19100,'39213',10721,10722,4,0),(19101,'39220',11191,11192,4,0),(19102,'39229',11193,11194,4,0),(19103,'39230',11195,11196,4,0),(19104,'39232',11197,11198,4,0),(19105,'39232',7295,7296,4,0),(19106,'39248',11183,11184,4,0),(19107,'39250',11199,11200,4,0),(19108,'39250',30441,30442,4,0),(19109,'39290',10599,10600,4,0),(19110,'39291',10601,10602,4,0),(19111,'39291',10593,10594,4,0),(19112,'39292',10603,10604,4,0),(19113,'39293',10605,10606,4,0),(19114,'39294',10607,10608,4,0),(19115,'39300',11135,11136,4,0),(19116,'39310',10823,10824,4,0),(19117,'39311',10611,10612,4,0),(19118,'39312',10891,10892,4,0),(19119,'39312',10825,10826,4,0),(19120,'39313',10893,10894,4,0),(19121,'39314',11063,11064,4,0),(19122,'39315',11137,11138,4,0),(19123,'39316',11139,11140,4,0),(19124,'39317',11141,11142,4,0),(19125,'39318',10827,10828,4,0),(19126,'39320',10465,10466,4,0),(19127,'39329',10467,10468,4,0),(19128,'39330',11065,11066,4,0),(19129,'39340',11127,11128,4,0),(19130,'39350',11129,11130,4,0),(19131,'39360',11067,11068,4,0),(19132,'39360',11131,11132,4,0),(19133,'39390',11069,11070,4,0),(19134,'39400',10769,10770,4,0),(19135,'39407',27613,27614,4,0),(19136,'39408',10771,10772,4,0),(19137,'39409',10987,10988,4,0),(19138,'39410',11177,11178,4,0),(19139,'39416',10745,10746,4,0),(19140,'39417',11185,11186,4,0),(19141,'39417',10747,10748,4,0),(19142,'39418',11179,11180,4,0),(19143,'39419',11201,11202,4,0),(19144,'39419',11187,11188,4,0),(19145,'39420',10839,10840,4,0),(19146,'39420',10523,10524,4,0),(19147,'39430',10841,10842,4,0),(19148,'39438',10843,10844,4,0),(19149,'39439',10845,10846,4,0),(19150,'39450',10491,10492,4,0),(19151,'39451',10487,10488,4,0),(19152,'39451',10493,10494,4,0),(19153,'39460',10613,10614,4,0),(19154,'39460',10773,10774,4,0),(19155,'39470',10873,10874,4,0),(19156,'39477',10875,10876,4,0),(19157,'39478',10877,10878,4,0),(19158,'39479',10879,10880,4,0),(19159,'39490',11075,11076,4,0),(19160,'39491',10867,10868,4,0),(19161,'39491',11077,11078,4,0),(19162,'39491',10991,10992,4,0),(19163,'39491',10595,10596,4,0),(19164,'39500',10535,10536,4,0),(19165,'39506',10537,10538,4,0),(19166,'39507',11153,11154,4,0),(19167,'39507',10539,10540,4,0),(19168,'39509',10541,10542,4,0),(19169,'39509',10801,10802,4,0),(19170,'39510',10969,10970,4,0),(19171,'39510',10557,10558,4,0),(19172,'39511',10559,10560,4,0),(19173,'39513',10971,10972,4,0),(19174,'39517',10777,10778,4,0),(19175,'39518',10779,10780,4,0),(19176,'39518',10561,10562,4,0),(19177,'39520',10655,10656,4,0),(19178,'39525',10469,10470,4,0),(19179,'39526',10471,10472,4,0),(19180,'39527',10983,10984,4,0),(19181,'39528',11169,11170,4,0),(19182,'39528',10657,10658,4,0),(19183,'39530',10927,10928,4,0),(19184,'39530',11071,11072,4,0),(19185,'39538',10929,10930,4,0),(19186,'39539',10931,10932,4,0),(19187,'39539',10473,10474,4,0),(19188,'39540',11007,11008,4,0),(19189,'39547',11009,11010,4,0),(19190,'39548',11011,11012,4,0),(19191,'39548',11157,11158,4,0),(19192,'39549',10725,10726,4,0),(19193,'39549',11013,11014,4,0),(19194,'39549',11159,11160,4,0),(19195,'39550',10727,10728,4,0),(19196,'39550',10735,10736,4,0),(19197,'39551',10729,10730,4,0),(19198,'39553',10955,10956,4,0),(19199,'39554',10957,10958,4,0),(19200,'39555',11149,11150,4,0),(19201,'39556',10885,10886,4,0),(19202,'39557',10887,10888,4,0),(19203,'39558',10563,10564,4,0),(19204,'39559',10959,10960,4,0),(19205,'39560',11161,11162,4,0),(19206,'39569',11163,11164,4,0),(19207,'39570',10897,10898,4,0),(19208,'39571',10549,10550,4,0),(19209,'39572',10861,10862,4,0),(19210,'39573',10551,10552,4,0),(19211,'39574',10553,10554,4,0),(19212,'39574',10863,10864,4,0),(19213,'39575',11209,11210,4,0),(19214,'39577',11211,11212,4,0),(19215,'39580',10641,10642,4,0),(19216,'39580',10857,10858,4,0),(19217,'39580',11145,11146,4,0),(19218,'39582',10567,10568,4,0),(19219,'39583',10643,10644,4,0),(19220,'39584',10645,10646,4,0),(19221,'39585',10647,10648,4,0),(19222,'39586',10569,10570,4,0),(19223,'39587',10571,10572,4,0),(19224,'39588',10573,10574,4,0),(19225,'39589',10575,10576,4,0),(19226,'39590',10933,10934,4,0),(19227,'39590',10475,10476,4,0),(19228,'39591',10543,10544,4,0),(19229,'39591',10935,10936,4,0),(19230,'39592',10545,10546,4,0),(19231,'39592',11171,11172,4,0),(19232,'39592',10803,10804,4,0),(19233,'39593',11173,11174,4,0),(19234,'39594',11165,11166,4,0),(19235,'39594',10731,10732,4,0),(19236,'39600',10579,10580,4,0),(19237,'39608',10581,10582,4,0),(19238,'39609',10583,10584,4,0),(19239,'39610',10671,10672,4,0),(19240,'39611',10673,10674,4,0),(19241,'39612',10881,10882,4,0),(19242,'39613',10675,10676,4,0),(19243,'39618',10793,10794,4,0),(19244,'39619',10807,10808,4,0),(19245,'39620',11025,11026,4,0),(19246,'39626',11027,11028,4,0),(19247,'39627',10853,10854,4,0),(19248,'39627',11029,11030,4,0),(19249,'39630',11233,11234,4,0),(19250,'39638',11235,11236,4,0),(19251,'39639',11223,11224,4,0),(19252,'39639',11097,11098,4,0),(19253,'39640',11225,11226,4,0),(19254,'39649',11227,11228,4,0),(19255,'39650',11031,11032,4,0),(19256,'39650',10617,10618,4,0),(19257,'39660',10619,10620,4,0),(19258,'39670',10901,10902,4,0),(19259,'39679',10903,10904,4,0),(19260,'39680',10661,10662,4,0),(19261,'39682',10663,10664,4,0),(19262,'39682',10783,10784,4,0),(19263,'39682',11215,11216,4,0),(19264,'39683',10995,10996,4,0),(19265,'39683',11217,11218,4,0),(19266,'39685',11219,11220,4,0),(19267,'39686',10997,10998,4,0),(19268,'39687',10785,10786,4,0),(19269,'39688',10787,10788,4,0),(19270,'39689',11081,11082,4,0),(19271,'39691',11083,11084,4,0),(19272,'39694',11033,11034,4,0),(19273,'39696',11101,11102,4,0),(19274,'39697',10665,10666,4,0),(19275,'39698',11085,11086,4,0),(19276,'39699',10667,10668,4,0),(19277,'39700',10623,10624,4,0),(19278,'39706',10625,10626,4,0),(19279,'39707',10627,10628,4,0),(19280,'39708',10629,10630,4,0),(19281,'39709',10631,10632,4,0),(19282,'39710',10809,10810,4,0),(19283,'39715',10679,10680,4,0),(19284,'39716',10681,10682,4,0),(19285,'39717',11119,11120,4,0),(19286,'39718',10811,10812,4,0),(19287,'39718',10755,10756,4,0),(19288,'39719',10795,10796,4,0),(19289,'39719',10683,10684,4,0),(19290,'39720',10963,10964,4,0),(19291,'39722',10757,10758,4,0),(19292,'39723',10831,10832,4,0),(19293,'39723',10965,10966,4,0),(19294,'39724',10813,10814,4,0),(19295,'39725',10833,10834,4,0),(19296,'39726',11001,11002,4,0),(19297,'39727',10759,10760,4,0),(19298,'39728',11105,11106,4,0),(19299,'39728',10975,10976,4,0),(19300,'39728',10835,10836,4,0),(19301,'39728',11003,11004,4,0),(19302,'39730',10707,10708,4,0),(19303,'39738',11121,11122,4,0),(19304,'39738',10709,10710,4,0),(19305,'39739',10711,10712,4,0),(19306,'39740',11091,11092,4,0),(19307,'39749',11093,11094,4,0),(19308,'39750',10651,10652,4,0),(19309,'39760',10511,10512,4,0),(19310,'39761',11239,11240,4,0),(19311,'39761',10513,10514,4,0),(19312,'39762',11241,11242,4,0),(19313,'39764',11243,11244,4,0),(19314,'39766',11245,11246,4,0),(19315,'39770',10739,10740,4,0),(19316,'39776',10751,10752,4,0),(19317,'39777',10741,10742,4,0),(19318,'39778',10763,10764,4,0),(19319,'39778',10693,10694,4,0),(19320,'39780',10633,10634,4,0),(19321,'39780',10695,10696,4,0),(19322,'39786',10697,10698,4,0),(19323,'39787',10699,10700,4,0),(19324,'39788',10701,10702,4,0),(19325,'39790',10515,10516,4,0),(19326,'39791',11123,11124,4,0),(19327,'39791',10517,10518,4,0),(19328,'39792',10797,10798,4,0),(19329,'39792',10815,10816,4,0),(19330,'39793',10949,10950,4,0),(19331,'39794',10951,10952,4,0),(19332,'39795',10689,10690,4,0),(19333,'39796',10519,10520,4,0),(19334,'39798',10635,10636,4,0),(19335,'39800',10907,10908,4,0),(19336,'39805',11107,11108,4,0),(19337,'39805',10909,10910,4,0),(19338,'39806',11109,11110,4,0),(19339,'39807',11111,11112,4,0),(19340,'39808',11113,11114,4,0),(19341,'39809',10911,10912,4,0),(19342,'39811',10913,10914,4,0),(19343,'39812',10977,10978,4,0),(19344,'39813',10507,10508,4,0),(19345,'39813',11115,11116,4,0),(19346,'39815',10979,10980,4,0),(19347,'39815',10915,10916,4,0),(19348,'39820',10765,10766,4,0),(19349,'39840',10479,10480,4,0),(19350,'39849',10481,10482,4,0),(19351,'39850',10483,10484,4,0),(19352,'39860',10919,10920,4,0),(19353,'39880',10703,10704,4,0),(19354,'39880',11205,11206,4,0),(19355,'40001',34773,34774,4,0),(19356,'40002',34775,34776,4,0),(19357,'40003',34777,34778,4,0),(19358,'40004',34779,34780,4,0),(19359,'40005',34781,34782,4,0),(19360,'40006',34783,34784,4,0),(19361,'40100',34633,34634,4,0),(19362,'40109',34635,34636,4,0),(19363,'40120',34369,34370,4,0),(19364,'40121',34031,34032,4,0),(19365,'40122',34721,34722,4,0),(19366,'40123',34723,34724,4,0),(19367,'40130',34453,34454,4,0),(19368,'40131',34397,34398,4,0),(19369,'40132',34445,34446,4,0),(19370,'40133',34449,34450,4,0),(19371,'40134',34715,34716,4,0),(19372,'40135',34725,34726,4,0),(19373,'40136',34727,34728,4,0),(19374,'40140',34903,34904,4,0),(19375,'40141',34743,34744,4,0),(19376,'40141',33969,33970,4,0),(19377,'40142',34497,34498,4,0),(19378,'40142',34433,34434,4,0),(19379,'40142',34465,34466,4,0),(19380,'40144',34717,34718,4,0),(19381,'40144',34081,34082,4,0),(19382,'40145',34509,34510,4,0),(19383,'40146',34417,34418,4,0),(19384,'40150',34919,34920,4,0),(19385,'40151',34393,34394,4,0),(19386,'40152',34941,34942,4,0),(19387,'40153',34785,34786,4,0),(19388,'40154',34787,34788,4,0),(19389,'40156',34311,34312,4,0),(19390,'40160',34837,34838,4,0),(19391,'40161',34523,34524,4,0),(19392,'40162',34365,34366,4,0),(19393,'40162',33997,33998,4,0),(19394,'40163',34473,34474,4,0),(19395,'40164',34045,34046,4,0),(19396,'40165',34619,34620,4,0),(19397,'40165',34915,34916,4,0),(19398,'40170',34601,34602,4,0),(19399,'40170',34215,34216,4,0),(19400,'40170',34817,34818,4,0),(19401,'40171',34745,34746,4,0),(19402,'40171',34829,34830,4,0),(19403,'40172',34595,34596,4,0),(19404,'40173',34597,34598,4,0),(19405,'40173',34747,34748,4,0),(19406,'40173',34039,34040,4,0),(19407,'40174',34885,34886,4,0),(19408,'40175',34413,34414,4,0),(19409,'40176',34571,34572,4,0),(19410,'40176',34889,34890,4,0),(19411,'40180',34603,34604,4,0),(19412,'40180',34077,34078,4,0),(19413,'40180',34755,34756,4,0),(19414,'40180',34103,34104,4,0),(19415,'40181',34855,34856,4,0),(19416,'40182',34107,34108,4,0),(19417,'40183',34513,34514,4,0),(19418,'40184',34625,34626,4,0),(19419,'40184',34041,34042,4,0),(19420,'40184',34641,34642,4,0),(19421,'40185',34049,34050,4,0),(19422,'40185',34869,34870,4,0),(19423,'40185',34873,34874,4,0),(19424,'40185',34231,34232,4,0),(19425,'40190',34093,34094,4,0),(19426,'40191',34053,34054,4,0),(19427,'40191',34303,34304,4,0),(19428,'40192',34845,34846,4,0),(19429,'40192',33973,33974,4,0),(19430,'40194',34851,34852,4,0),(19431,'40194',34591,34592,4,0),(19432,'40195',34789,34790,4,0),(19433,'40196',34405,34406,4,0),(19434,'40196',34791,34792,4,0),(19435,'40197',34695,34696,4,0),(19436,'40200',34235,34236,4,0),(19437,'40210',34237,34238,4,0),(19438,'40211',34239,34240,4,0),(19439,'40212',34687,34688,4,0),(19440,'40213',34881,34882,4,0),(19441,'40214',34469,34470,4,0),(19442,'40214',34061,34062,4,0),(19443,'40215',34241,34242,4,0),(19444,'40216',34191,34192,4,0),(19445,'40216',34645,34646,4,0),(19446,'40217',34307,34308,4,0),(19447,'40218',34337,34338,4,0),(19448,'40219',34923,34924,4,0),(19449,'40220',34565,34566,4,0),(19450,'40230',34243,34244,4,0),(19451,'40231',34245,34246,4,0),(19452,'40232',34247,34248,4,0),(19453,'40233',34567,34568,4,0),(19454,'40234',34481,34482,4,0),(19455,'40235',34013,34014,4,0),(19456,'40236',34421,34422,4,0),(19457,'40237',34677,34678,4,0),(19458,'40238',34897,34898,4,0),(19459,'40239',34255,34256,4,0),(19460,'40240',34373,34374,4,0),(19461,'40241',34249,34250,4,0),(19462,'40242',34251,34252,4,0),(19463,'40250',34505,34506,4,0),(19464,'40260',34341,34342,4,0),(19465,'40270',34147,34148,4,0),(19466,'40280',34531,34532,4,0),(19467,'40290',34673,34674,4,0),(19468,'40291',34293,34294,4,0),(19469,'40291',34821,34822,4,0),(19470,'40292',33989,33990,4,0),(19471,'40293',34945,34946,4,0),(19472,'40294',34615,34616,4,0),(19473,'40295',34699,34700,4,0),(19474,'40296',34611,34612,4,0),(19475,'40297',34711,34712,4,0),(19476,'40298',34325,34326,4,0),(19477,'40300',34795,34796,4,0),(19478,'40310',34797,34798,4,0),(19479,'40310',34739,34740,4,0),(19480,'40311',34813,34814,4,0),(19481,'40311',34799,34800,4,0),(19482,'40312',34801,34802,4,0),(19483,'40312',34267,34268,4,0),(19484,'40313',34833,34834,4,0),(19485,'40314',34899,34900,4,0),(19486,'40314',34357,34358,4,0),(19487,'40315',34163,34164,4,0),(19488,'40315',34167,34168,4,0),(19489,'40316',34175,34176,4,0),(19490,'40317',34861,34862,4,0),(19491,'40317',34803,34804,4,0),(19492,'40318',34621,34622,4,0),(19493,'40318',34219,34220,4,0),(19494,'40318',34171,34172,4,0),(19495,'40320',34131,34132,4,0),(19496,'40330',34349,34350,4,0),(19497,'40331',34527,34528,4,0),(19498,'40331',34877,34878,4,0),(19499,'40331',34151,34152,4,0),(19500,'40332',34703,34704,4,0),(19501,'40332',34199,34200,4,0),(19502,'40340',34767,34768,4,0),(19503,'40340',33981,33982,4,0),(19504,'40350',34289,34290,4,0),(19505,'40351',34763,34764,4,0),(19506,'40352',34429,34430,4,0),(19507,'40353',34385,34386,4,0),(19508,'40354',33977,33978,4,0),(19509,'40354',34607,34608,4,0),(19510,'40354',34227,34228,4,0),(19511,'40355',34353,34354,4,0),(19512,'40356',34119,34120,4,0),(19513,'40357',34361,34362,4,0),(19514,'40358',34345,34346,4,0),(19515,'40359',34841,34842,4,0),(19516,'40359',34333,34334,4,0),(19517,'40360',34139,34140,4,0),(19518,'40370',34857,34858,4,0),(19519,'40380',34133,34134,4,0),(19520,'40380',34769,34770,4,0),(19521,'40389',34135,34136,4,0),(19522,'40389',34707,34708,4,0),(19523,'40389',33993,33994,4,0),(19524,'40389',34805,34806,4,0),(19525,'40390',34893,34894,4,0),(19526,'40391',34285,34286,4,0),(19527,'40392',34111,34112,4,0),(19528,'40392',34297,34298,4,0),(19529,'40393',34299,34300,4,0),(19530,'40394',34847,34848,4,0),(19531,'40395',34907,34908,4,0),(19532,'40396',34115,34116,4,0),(19533,'40400',34271,34272,4,0),(19534,'40408',34557,34558,4,0),(19535,'40410',34273,34274,4,0),(19536,'40418',34313,34314,4,0),(19537,'40419',34275,34276,4,0),(19538,'40420',34637,34638,4,0),(19539,'40420',34553,34554,4,0),(19540,'40420',34409,34410,4,0),(19541,'40421',34579,34580,4,0),(19542,'40422',34583,34584,4,0),(19543,'40423',34911,34912,4,0),(19544,'40423',34865,34866,4,0),(19545,'40424',34277,34278,4,0),(19546,'40430',34089,34090,4,0),(19547,'40440',34729,34730,4,0),(19548,'40441',34485,34486,4,0),(19549,'40442',34681,34682,4,0),(19550,'40443',34683,34684,4,0),(19551,'40444',34477,34478,4,0),(19552,'40445',34401,34402,4,0),(19553,'40446',34461,34462,4,0),(19554,'40447',34561,34562,4,0),(19555,'40448',34731,34732,4,0),(19556,'40449',34733,34734,4,0),(19557,'40450',34517,34518,4,0),(19558,'40460',34751,34752,4,0),(19559,'40461',34519,34520,4,0),(19560,'40462',34009,34010,4,0),(19561,'40462',34021,34022,4,0),(19562,'40463',34209,34210,4,0),(19563,'40464',34211,34212,4,0),(19564,'40465',34691,34692,4,0),(19565,'40466',34457,34458,4,0),(19566,'40466',34629,34630,4,0),(19567,'40467',34825,34826,4,0),(19568,'40468',34489,34490,4,0),(19569,'40469',34263,34264,4,0),(19570,'40470',34549,34550,4,0),(19571,'40480',34203,34204,4,0),(19572,'40490',34389,34390,4,0),(19573,'40490',34437,34438,4,0),(19574,'40491',34055,34056,4,0),(19575,'40492',34035,34036,4,0),(19576,'40493',34937,34938,4,0),(19577,'40494',34057,34058,4,0),(19578,'40494',34735,34736,4,0),(19579,'40495',34575,34576,4,0),(19580,'40495',34259,34260,4,0),(19581,'40496',34933,34934,4,0),(19582,'40496',34329,34330,4,0),(19583,'40496',34205,34206,4,0),(19584,'40500',34653,34654,4,0),(19585,'40510',34655,34656,4,0),(19586,'40511',34657,34658,4,0),(19587,'40512',34659,34660,4,0),(19588,'40512',34063,34064,4,0),(19589,'40513',34665,34666,4,0),(19590,'40514',34065,34066,4,0),(19591,'40515',34669,34670,4,0),(19592,'40516',34315,34316,4,0),(19593,'40517',34809,34810,4,0),(19594,'40517',34661,34662,4,0),(19595,'40518',34317,34318,4,0),(19596,'40520',34067,34068,4,0),(19597,'40529',34649,34650,4,0),(19598,'40529',33985,33986,4,0),(19599,'40529',34223,34224,4,0),(19600,'40530',34025,34026,4,0),(19601,'40530',34073,34074,4,0),(19602,'40531',34027,34028,4,0),(19603,'40531',34535,34536,4,0),(19604,'40531',34281,34282,4,0),(19605,'40532',34541,34542,4,0),(19606,'40532',34005,34006,4,0),(19607,'40532',34545,34546,4,0),(19608,'40533',34017,34018,4,0),(19609,'40540',34143,34144,4,0),(19610,'40540',34321,34322,4,0),(19611,'40541',34381,34382,4,0),(19612,'40541',34927,34928,4,0),(19613,'40542',34493,34494,4,0),(19614,'40542',34929,34930,4,0),(19615,'40542',34501,34502,4,0),(19616,'40550',34179,34180,4,0),(19617,'40550',34085,34086,4,0),(19618,'40551',34195,34196,4,0),(19619,'40551',34123,34124,4,0),(19620,'40552',34125,34126,4,0),(19621,'40553',34127,34128,4,0),(19622,'40554',34441,34442,4,0),(19623,'40555',34001,34002,4,0),(19624,'40556',34425,34426,4,0),(19625,'40560',34097,34098,4,0),(19626,'40561',34537,34538,4,0),(19627,'40567',34587,34588,4,0),(19628,'40568',34099,34100,4,0),(19629,'40569',34377,34378,4,0),(19630,'40590',34759,34760,4,0),(19631,'40590',34155,34156,4,0),(19632,'40591',34183,34184,4,0),(19633,'40592',34187,34188,4,0),(19634,'40593',34159,34160,4,0),(19635,'40594',34069,34070,4,0),(19636,'41001',35413,35414,4,0),(19637,'41002',35415,35416,4,0),(19638,'41003',35417,35418,4,0),(19639,'41004',35419,35420,4,0),(19640,'41005',35421,35422,4,0),(19641,'41006',35423,35424,4,0),(19642,'41007',35425,35426,4,0),(19643,'41008',35427,35428,4,0),(19644,'41009',35429,35430,4,0),(19645,'41010',35431,35432,4,0),(19646,'41011',35433,35434,4,0),(19647,'41012',35435,35436,4,0),(19648,'41013',35437,35438,4,0),(19649,'41014',35439,35440,4,0),(19650,'41015',35441,35442,4,0),(19651,'41016',35443,35444,4,0),(19652,'41017',35445,35446,4,0),(19653,'41018',35447,35448,4,0),(19654,'41019',35449,35450,4,0),(19655,'41020',35451,35452,4,0),(19656,'41073',35101,35102,4,0),(19657,'41089',35103,35104,4,0),(19658,'41092',35453,35454,4,0),(19659,'41100',35091,35092,4,0),(19660,'41110',35019,35020,4,0),(19661,'41111',34991,34992,4,0),(19662,'41120',35197,35198,4,0),(19663,'41130',35267,35268,4,0),(19664,'41140',35235,35236,4,0),(19665,'41150',35237,35238,4,0),(19666,'41200',34969,34970,4,0),(19667,'41200',35031,35032,4,0),(19668,'41209',34971,34972,4,0),(19669,'41210',35219,35220,4,0),(19670,'41218',35221,35222,4,0),(19671,'41219',35223,35224,4,0),(19672,'41220',35033,35034,4,0),(19673,'41220',35199,35200,4,0),(19674,'41230',35065,35066,4,0),(19675,'41240',34987,34988,4,0),(19676,'41250',35161,35162,4,0),(19677,'41300',35271,35272,4,0),(19678,'41309',35273,35274,4,0),(19679,'41310',35027,35028,4,0),(19680,'41318',35509,35510,4,0),(19681,'41319',34973,34974,4,0),(19682,'41320',35047,35048,4,0),(19683,'41330',35457,35458,4,0),(19684,'41330',35501,35502,4,0),(19685,'41339',35051,35052,4,0),(19686,'41340',35459,35460,4,0),(19687,'41350',35503,35504,4,0),(19688,'41359',35505,35506,4,0),(19689,'41360',35157,35158,4,0),(19690,'41370',35081,35082,4,0),(19691,'41380',34955,34956,4,0),(19692,'41388',35397,35398,4,0),(19693,'41389',35399,35400,4,0),(19694,'41390',35215,35216,4,0),(19695,'41400',35119,35120,4,0),(19696,'41409',35121,35122,4,0),(19697,'41410',35053,35054,4,0),(19698,'41420',35191,35192,4,0),(19699,'41429',35247,35248,4,0),(19700,'41430',35251,35252,4,0),(19701,'41439',35253,35254,4,0),(19702,'41439',35193,35194,4,0),(19703,'41439',35043,35044,4,0),(19704,'41440',35305,35306,4,0),(19705,'41440',34977,34978,4,0),(19706,'41449',34979,34980,4,0),(19707,'41450',35087,35088,4,0),(19708,'41460',35293,35294,4,0),(19709,'41470',35261,35262,4,0),(19710,'41470',35377,35378,4,0),(19711,'41471',35471,35472,4,0),(19712,'41479',35263,35264,4,0),(19713,'41489',34999,35000,4,0),(19714,'41500',34963,34964,4,0),(19715,'41510',35325,35326,4,0),(19716,'41520',34965,34966,4,0),(19717,'41520',35179,35180,4,0),(19718,'41530',35353,35354,4,0),(19719,'41540',35257,35258,4,0),(19720,'41550',34951,34952,4,0),(19721,'41560',35187,35188,4,0),(19722,'41563',35123,35124,4,0),(19723,'41564',35301,35302,4,0),(19724,'41565',35207,35208,4,0),(19725,'41566',35373,35374,4,0),(19726,'41567',35227,35228,4,0),(19727,'41567',35125,35126,4,0),(19728,'41568',35169,35170,4,0),(19729,'41569',35341,35342,4,0),(19730,'41570',35009,35010,4,0),(19731,'41580',35061,35062,4,0),(19732,'41590',35277,35278,4,0),(19733,'41599',35279,35280,4,0),(19734,'41599',35011,35012,4,0),(19735,'41600',34995,34996,4,0),(19736,'41610',35369,35370,4,0),(19737,'41620',35337,35338,4,0),(19738,'41630',35283,35284,4,0),(19739,'41640',35361,35362,4,0),(19740,'41650',35173,35174,4,0),(19741,'41657',35309,35310,4,0),(19742,'41658',35345,35346,4,0),(19743,'41659',35175,35176,4,0),(19744,'41660',35493,35494,4,0),(19745,'41661',34983,34984,4,0),(19746,'41670',35385,35386,4,0),(19747,'41700',35105,35106,4,0),(19748,'41701',35107,35108,4,0),(19749,'41702',35109,35110,4,0),(19750,'41703',35111,35112,4,0),(19751,'41704',35113,35114,4,0),(19752,'41710',35473,35474,4,0),(19753,'41719',35475,35476,4,0),(19754,'41720',35317,35318,4,0),(19755,'41720',35477,35478,4,0),(19756,'41727',35319,35320,4,0),(19757,'41727',35479,35480,4,0),(19758,'41728',35481,35482,4,0),(19759,'41728',35115,35116,4,0),(19760,'41728',35321,35322,4,0),(19761,'41729',35287,35288,4,0),(19762,'41730',35289,35290,4,0),(19763,'41730',35083,35084,4,0),(19764,'41740',35297,35298,4,0),(19765,'41749',35143,35144,4,0),(19766,'41750',35313,35314,4,0),(19767,'41760',35139,35140,4,0),(19768,'41770',35349,35350,4,0),(19769,'41780',35095,35096,4,0),(19770,'41800',35405,35406,4,0),(19771,'41804',35357,35358,4,0),(19772,'41805',35015,35016,4,0),(19773,'41806',35467,35468,4,0),(19774,'41807',35183,35184,4,0),(19775,'41808',35497,35498,4,0),(19776,'41809',34959,34960,4,0),(19777,'41810',35077,35078,4,0),(19778,'41820',35057,35058,4,0),(19779,'41830',35231,35232,4,0),(19780,'41840',35381,35382,4,0),(19781,'41849',35001,35002,4,0),(19782,'41850',35489,35490,4,0),(19783,'41860',35203,35204,4,0),(19784,'41870',35005,35006,4,0),(19785,'41880',35165,35166,4,0),(19786,'41888',35147,35148,4,0),(19787,'41888',35401,35402,4,0),(19788,'41889',35129,35130,4,0),(19789,'41890',35131,35132,4,0),(19790,'41897',35151,35152,4,0),(19791,'41898',35133,35134,4,0),(19792,'41898',35153,35154,4,0),(19793,'41899',35135,35136,4,0),(19794,'41900',35037,35038,4,0),(19795,'41907',35485,35486,4,0),(19796,'41908',35069,35070,4,0),(19797,'41909',35389,35390,4,0),(19798,'41910',35039,35040,4,0),(19799,'41920',35393,35394,4,0),(19800,'41926',35329,35330,4,0),(19801,'41927',35331,35332,4,0),(19802,'41928',35365,35366,4,0),(19803,'41929',35333,35334,4,0),(19804,'41930',35023,35024,4,0),(19805,'41940',35463,35464,4,0),(19806,'41950',35073,35074,4,0),(19807,'41960',35211,35212,4,0),(19808,'41970',35409,35410,4,0),(19809,'41980',35241,35242,4,0),(19810,'41989',35243,35244,4,0),(19811,'42001',36267,36268,4,0),(19812,'42002',36269,36270,4,0),(19813,'42003',36271,36272,4,0),(19814,'42004',36273,36274,4,0),(19815,'42005',36275,36276,4,0),(19816,'42100',35523,35524,4,0),(19817,'42107',35677,35678,4,0),(19818,'42107',35525,35526,4,0),(19819,'42107',35851,35852,4,0),(19820,'42108',36127,36128,4,0),(19821,'42108',35527,35528,4,0),(19822,'42108',35855,35856,4,0),(19823,'42108',35793,35794,4,0),(19824,'42109',36445,36446,4,0),(19825,'42110',36129,36130,4,0),(19826,'42111',36351,36352,4,0),(19827,'42111',35619,35620,4,0),(19828,'42111',35553,35554,4,0),(19829,'42112',35973,35974,4,0),(19830,'42112',36145,36146,4,0),(19831,'42112',36293,36294,4,0),(19832,'42112',36137,36138,4,0),(19833,'42112',36415,36416,4,0),(19834,'42113',35795,35796,4,0),(19835,'42113',35935,35936,4,0),(19836,'42113',36355,36356,4,0),(19837,'42113',36335,36336,4,0),(19838,'42113',36027,36028,4,0),(19839,'42114',35813,35814,4,0),(19840,'42114',36373,36374,4,0),(19841,'42114',36229,36230,4,0),(19842,'42120',35957,35958,4,0),(19843,'42124',36121,36122,4,0),(19844,'42124',35915,35916,4,0),(19845,'42124',35755,35756,4,0),(19846,'42124',36321,36322,4,0),(19847,'42125',35859,35860,4,0),(19848,'42126',35817,35818,4,0),(19849,'42126',35861,35862,4,0),(19850,'42126',35601,35602,4,0),(19851,'42127',36083,36084,4,0),(19852,'42127',36257,36258,4,0),(19853,'42127',35959,35960,4,0),(19854,'42127',35603,35604,4,0),(19855,'42128',35695,35696,4,0),(19856,'42128',36315,36316,4,0),(19857,'42129',35961,35962,4,0),(19858,'42129',35569,35570,4,0),(19859,'42129',35707,35708,4,0),(19860,'42129',36431,36432,4,0),(19861,'42130',35607,35608,4,0),(19862,'42131',35609,35610,4,0),(19863,'42132',36123,36124,4,0),(19864,'42133',35531,35532,4,0),(19865,'42134',36183,36184,4,0),(19866,'42134',35759,35760,4,0),(19867,'42135',35545,35546,4,0),(19868,'42135',35737,35738,4,0),(19869,'42136',36331,36332,4,0),(19870,'42136',36141,36142,4,0),(19871,'42137',36197,36198,4,0),(19872,'42137',36149,36150,4,0),(19873,'42137',35763,35764,4,0),(19874,'42138',35611,35612,4,0),(19875,'42138',35821,35822,4,0),(19876,'42138',35703,35704,4,0),(19877,'42140',36233,36234,4,0),(19878,'42141',36253,36254,4,0),(19879,'42141',35879,35880,4,0),(19880,'42142',35885,35886,4,0),(19881,'42142',35881,35882,4,0),(19882,'42143',36101,36102,4,0),(19883,'42143',35901,35902,4,0),(19884,'42144',35969,35970,4,0),(19885,'42144',35781,35782,4,0),(19886,'42144',36343,36344,4,0),(19887,'42145',35809,35810,4,0),(19888,'42146',35515,35516,4,0),(19889,'42146',35741,35742,4,0),(19890,'42147',35743,35744,4,0),(19891,'42148',36097,36098,4,0),(19892,'42148',35841,35842,4,0),(19893,'42148',36301,36302,4,0),(19894,'42149',36109,36110,4,0),(19895,'42150',36435,36436,4,0),(19896,'42151',36437,36438,4,0),(19897,'42152',36277,36278,4,0),(19898,'42153',35869,35870,4,0),(19899,'42155',36055,36056,4,0),(19900,'42156',36209,36210,4,0),(19901,'42156',36057,36058,4,0),(19902,'42157',35837,35838,4,0),(19903,'42158',35865,35866,4,0),(19904,'42159',35871,35872,4,0),(19905,'42160',35583,35584,4,0),(19906,'42161',35585,35586,4,0),(19907,'42161',35643,35644,4,0),(19908,'42162',35711,35712,4,0),(19909,'42162',35911,35912,4,0),(19910,'42162',35939,35940,4,0),(19911,'42162',35919,35920,4,0),(19912,'42163',35941,35942,4,0),(19913,'42164',35587,35588,4,0),(19914,'42165',36283,36284,4,0),(19915,'42165',36205,36206,4,0),(19916,'42165',36411,36412,4,0),(19917,'42165',36347,36348,4,0),(19918,'42166',36285,36286,4,0),(19919,'42167',35589,35590,4,0),(19920,'42169',35591,35592,4,0),(19921,'42169',35981,35982,4,0),(19922,'42170',35921,35922,4,0),(19923,'42171',35647,35648,4,0),(19924,'42171',35889,35890,4,0),(19925,'42171',36013,36014,4,0),(19926,'42171',35549,35550,4,0),(19927,'42171',35785,35786,4,0),(19928,'42172',36133,36134,4,0),(19929,'42172',36449,36450,4,0),(19930,'42173',35997,35998,4,0),(19931,'42173',36441,36442,4,0),(19932,'42173',36243,36244,4,0),(19933,'42174',36419,36420,4,0),(19934,'42174',35999,36000,4,0),(19935,'42174',36237,36238,4,0),(19936,'42175',36375,36376,4,0),(19937,'42175',35803,35804,4,0),(19938,'42175',36239,36240,4,0),(19939,'42176',36245,36246,4,0),(19940,'42176',36421,36422,4,0),(19941,'42177',36423,36424,4,0),(19942,'42177',36451,36452,4,0),(19943,'42180',35573,35574,4,0),(19944,'42180',35557,35558,4,0),(19945,'42180',35775,35776,4,0),(19946,'42180',35825,35826,4,0),(19947,'42180',36015,36016,4,0),(19948,'42181',35977,35978,4,0),(19949,'42181',35931,35932,4,0),(19950,'42181',36019,36020,4,0),(19951,'42181',35777,35778,4,0),(19952,'42181',36383,36384,4,0),(19953,'42181',35805,35806,4,0),(19954,'42182',35561,35562,4,0),(19955,'42182',35621,35622,4,0),(19956,'42189',36105,36106,4,0),(19957,'42189',36289,36290,4,0),(19958,'42189',36185,36186,4,0),(19959,'42189',36391,36392,4,0),(19960,'42190',35945,35946,4,0),(19961,'42190',36279,36280,4,0),(19962,'42191',36007,36008,4,0),(19963,'42191',35845,35846,4,0),(19964,'42192',36403,36404,4,0),(19965,'42192',35947,35948,4,0),(19966,'42193',35949,35950,4,0),(19967,'42193',35747,35748,4,0),(19968,'42193',35691,35692,4,0),(19969,'42193',36365,36366,4,0),(19970,'42193',36093,36094,4,0),(19971,'42193',36325,36326,4,0),(19972,'42194',36327,36328,4,0),(19973,'42194',36201,36202,4,0),(19974,'42195',35715,35716,4,0),(19975,'42196',35717,35718,4,0),(19976,'42196',36367,36368,4,0),(19977,'42200',35595,35596,4,0),(19978,'42210',35661,35662,4,0),(19979,'42211',35799,35800,4,0),(19980,'42211',36031,36032,4,0),(19981,'42212',35597,35598,4,0),(19982,'42213',35651,35652,4,0),(19983,'42213',35615,35616,4,0),(19984,'42214',35653,35654,4,0),(19985,'42214',36427,36428,4,0),(19986,'42215',35893,35894,4,0),(19987,'42216',36311,36312,4,0),(19988,'42216',35519,35520,4,0),(19989,'42216',35655,35656,4,0),(19990,'42216',36087,36088,4,0),(19991,'42216',35829,35830,4,0),(19992,'42217',35831,35832,4,0),(19993,'42218',36399,36400,4,0),(19994,'42218',35699,35700,4,0),(19995,'42218',36317,36318,4,0),(19996,'42218',36113,36114,4,0),(19997,'42220',36065,36066,4,0),(19998,'42221',44305,44306,4,0),(19999,'42222',35577,35578,4,0),(20000,'42223',35833,35834,4,0),(20001,'42223',36261,36262,4,0),(20002,'42223',36089,36090,4,0),(20003,'42224',35875,35876,4,0),(20004,'42224',36263,36264,4,0),(20005,'42224',36117,36118,4,0),(20006,'42225',36395,36396,4,0),(20007,'42225',36061,36062,4,0),(20008,'42225',36023,36024,4,0),(20009,'42225',35565,35566,4,0),(20010,'42230',36455,36456,4,0),(20011,'42230',36045,36046,4,0),(20012,'42230',36035,36036,4,0),(20013,'42240',36037,36038,4,0),(20014,'42248',36039,36040,4,0),(20015,'42249',36041,36042,4,0),(20016,'42249',35625,35626,4,0),(20017,'42250',35627,35628,4,0),(20018,'42257',35629,35630,4,0),(20019,'42258',35631,35632,4,0),(20020,'42258',35579,35580,4,0),(20021,'42259',35633,35634,4,0),(20022,'42260',36249,36250,4,0),(20023,'42269',44133,44134,4,0),(20024,'42269',43465,43466,4,0),(20025,'42269',35635,35636,4,0),(20026,'42269',44495,44496,4,0),(20027,'42290',35951,35952,4,0),(20028,'42290',36009,36010,4,0),(20029,'42290',35847,35848,4,0),(20030,'42291',36153,36154,4,0),(20031,'42292',36155,36156,4,0),(20032,'42293',36379,36380,4,0),(20033,'42293',35925,35926,4,0),(20034,'42293',36157,36158,4,0),(20035,'42294',36307,36308,4,0),(20036,'42294',35953,35954,4,0),(20037,'42294',35927,35928,4,0),(20038,'42294',36159,36160,4,0),(20039,'42295',35541,35542,4,0),(20040,'42295',35657,35658,4,0),(20041,'42296',36457,36458,4,0),(20042,'42296',36047,36048,4,0),(20043,'42300',35719,35720,4,0),(20044,'42310',35721,35722,4,0),(20045,'42311',35767,35768,4,0),(20046,'42311',35771,35772,4,0),(20047,'42311',36069,36070,4,0),(20048,'42311',35723,35724,4,0),(20049,'42312',35725,35726,4,0),(20050,'42312',35897,35898,4,0),(20051,'42312',36407,36408,4,0),(20052,'42313',36369,36370,4,0),(20053,'42313',36163,36164,4,0),(20054,'42313',35727,35728,4,0),(20055,'42313',36171,36172,4,0),(20056,'42313',35965,35966,4,0),(20057,'42314',36173,36174,4,0),(20058,'42315',36175,36176,4,0),(20059,'42315',36189,36190,4,0),(20060,'42315',36071,36072,4,0),(20061,'42316',36191,36192,4,0),(20062,'42317',36303,36304,4,0),(20063,'42317',36359,36360,4,0),(20064,'42317',36339,36340,4,0),(20065,'42318',35729,35730,4,0),(20066,'42318',36361,36362,4,0),(20067,'42320',36213,36214,4,0),(20068,'42320',35989,35990,4,0),(20069,'42328',35789,35790,4,0),(20070,'42328',35991,35992,4,0),(20071,'42328',36051,36052,4,0),(20072,'42329',35993,35994,4,0),(20073,'42330',36215,36216,4,0),(20074,'42339',35907,35908,4,0),(20075,'42340',36217,36218,4,0),(20076,'42341',36073,36074,4,0),(20077,'42341',36003,36004,4,0),(20078,'42342',36075,36076,4,0),(20079,'42342',36219,36220,4,0),(20080,'42343',36077,36078,4,0),(20081,'42344',36079,36080,4,0),(20082,'42344',36193,36194,4,0),(20083,'42345',36221,36222,4,0),(20084,'42351',35535,35536,4,0),(20085,'42351',35731,35732,4,0),(20086,'42351',35903,35904,4,0),(20087,'42351',36223,36224,4,0),(20088,'42353',35537,35538,4,0),(20089,'42360',35681,35682,4,0),(20090,'42366',35669,35670,4,0),(20091,'42366',35673,35674,4,0),(20092,'42366',36297,36298,4,0),(20093,'42366',35683,35684,4,0),(20094,'42367',35751,35752,4,0),(20095,'42367',35685,35686,4,0),(20096,'42368',35665,35666,4,0),(20097,'42368',36179,36180,4,0),(20098,'42368',35985,35986,4,0),(20099,'42368',35639,35640,4,0),(20100,'42369',35687,35688,4,0),(20101,'42391',36225,36226,4,0),(20102,'42391',35733,35734,4,0),(20103,'42392',36387,36388,4,0),(20104,'43001',37187,37188,4,0),(20105,'43002',37189,37190,4,0),(20106,'43003',37191,37192,4,0),(20107,'43004',37193,37194,4,0),(20108,'43005',37195,37196,4,0),(20109,'43006',37197,37198,4,0),(20110,'43007',37199,37200,4,0),(20111,'43008',37201,37202,4,0),(20112,'43100',36823,36824,4,0),(20113,'43100',37203,37204,4,0),(20114,'43110',36825,36826,4,0),(20115,'43120',36633,36634,4,0),(20116,'43130',37205,37206,4,0),(20117,'43140',36863,36864,4,0),(20118,'43141',37303,37304,4,0),(20119,'43142',36717,36718,4,0),(20120,'43143',36845,36846,4,0),(20121,'43143',36679,36680,4,0),(20122,'43144',37261,37262,4,0),(20123,'43150',36665,36666,4,0),(20124,'43151',36735,36736,4,0),(20125,'43152',37021,37022,4,0),(20126,'43153',36727,36728,4,0),(20127,'43154',36883,36884,4,0),(20128,'43155',37023,37024,4,0),(20129,'43201',37079,37080,4,0),(20130,'43202',37081,37082,4,0),(20131,'43203',37083,37084,4,0),(20132,'43204',37085,37086,4,0),(20133,'43205',37087,37088,4,0),(20134,'43205',36685,36686,4,0),(20135,'43206',37089,37090,4,0),(20136,'43206',37287,37288,4,0),(20137,'43300',36971,36972,4,0),(20138,'43310',36623,36624,4,0),(20139,'43311',37307,37308,4,0),(20140,'43312',37309,37310,4,0),(20141,'43320',37213,37214,4,0),(20142,'43320',37055,37056,4,0),(20143,'43330',37105,37106,4,0),(20144,'43340',36991,36992,4,0),(20145,'43350',36913,36914,4,0),(20146,'43360',36641,36642,4,0),(20147,'43361',36849,36850,4,0),(20148,'43362',36643,36644,4,0),(20149,'43363',37249,37250,4,0),(20150,'43364',36965,36966,4,0),(20151,'43364',37047,37048,4,0),(20152,'43364',36833,36834,4,0),(20153,'43364',36607,36608,4,0),(20154,'43365',36493,36494,4,0),(20155,'43365',36517,36518,4,0),(20156,'43370',36859,36860,4,0),(20157,'43371',36939,36940,4,0),(20158,'43372',36815,36816,4,0),(20159,'43373',36583,36584,4,0),(20160,'43374',36909,36910,4,0),(20161,'43375',36905,36906,4,0),(20162,'43376',37031,37032,4,0),(20163,'43379',36851,36852,4,0),(20164,'43380',37317,37318,4,0),(20165,'43381',36791,36792,4,0),(20166,'43382',36957,36958,4,0),(20167,'43390',37101,37102,4,0),(20168,'43391',37337,37338,4,0),(20169,'43392',36619,36620,4,0),(20170,'43393',36501,36502,4,0),(20171,'43400',36979,36980,4,0),(20172,'43410',36981,36982,4,0),(20173,'43411',36563,36564,4,0),(20174,'43412',37183,37184,4,0),(20175,'43413',37011,37012,4,0),(20176,'43414',36983,36984,4,0),(20177,'43415',36985,36986,4,0),(20178,'43420',37155,37156,4,0),(20179,'43421',5929,5930,4,0),(20180,'43421',37035,37036,4,0),(20181,'43422',36535,36536,4,0),(20182,'43423',37027,37028,4,0),(20183,'43424',37167,37168,4,0),(20184,'43425',37169,37170,4,0),(20185,'43425',37013,37014,4,0),(20186,'43425',36751,36752,4,0),(20187,'43426',37109,37110,4,0),(20188,'43427',36627,36628,4,0),(20189,'43427',37175,37176,4,0),(20190,'43427',37257,37258,4,0),(20191,'43427',36923,36924,4,0),(20192,'43428',37171,37172,4,0),(20193,'43428',36629,36630,4,0),(20194,'43428',36917,36918,4,0),(20195,'43429',37157,37158,4,0),(20196,'43429',36919,36920,4,0),(20197,'43429',36537,36538,4,0),(20198,'43430',37325,37326,4,0),(20199,'43439',37253,37254,4,0),(20200,'43439',37313,37314,4,0),(20201,'43440',36811,36812,4,0),(20202,'43442',36539,36540,4,0),(20203,'43448',37327,37328,4,0),(20204,'43449',37179,37180,4,0),(20205,'43449',37329,37330,4,0),(20206,'43450',36875,36876,4,0),(20207,'43459',36967,36968,4,0),(20208,'43459',36987,36988,4,0),(20209,'43460',36481,36482,4,0),(20210,'43470',36889,36890,4,0),(20211,'43479',36783,36784,4,0),(20212,'43480',37289,37290,4,0),(20213,'43481',37291,37292,4,0),(20214,'43490',37321,37322,4,0),(20215,'43491',37265,37266,4,0),(20216,'43500',37227,37228,4,0),(20217,'43510',37229,37230,4,0),(20218,'43511',37209,37210,4,0),(20219,'43512',36555,36556,4,0),(20220,'43513',37071,37072,4,0),(20221,'43514',36943,36944,4,0),(20222,'43515',36841,36842,4,0),(20223,'43516',36771,36772,4,0),(20224,'43517',37231,37232,4,0),(20225,'43519',36701,36702,4,0),(20226,'43520',37121,37122,4,0),(20227,'43527',37233,37234,4,0),(20228,'43528',36489,36490,4,0),(20229,'43529',37123,37124,4,0),(20230,'43530',36475,36476,4,0),(20231,'43539',36647,36648,4,0),(20232,'43540',37135,37136,4,0),(20233,'43548',37137,37138,4,0),(20234,'43549',36509,36510,4,0),(20235,'43550',37241,37242,4,0),(20236,'43558',36755,36756,4,0),(20237,'43558',37243,37244,4,0),(20238,'43559',37245,37246,4,0),(20239,'43560',36893,36894,4,0),(20240,'43569',36477,36478,4,0),(20241,'43570',37151,37152,4,0),(20242,'43580',36657,36658,4,0),(20243,'43590',37235,37236,4,0),(20244,'43591',36485,36486,4,0),(20245,'43592',37341,37342,4,0),(20246,'43593',37017,37018,4,0),(20247,'43594',36705,36706,4,0),(20248,'43595',37051,37052,4,0),(20249,'43596',36779,36780,4,0),(20250,'43597',36521,36522,4,0),(20251,'43700',36721,36722,4,0),(20252,'43710',37161,37162,4,0),(20253,'43711',36529,36530,4,0),(20254,'43712',36927,36928,4,0),(20255,'43713',37147,37148,4,0),(20256,'43714',36463,36464,4,0),(20257,'43714',36687,36688,4,0),(20258,'43715',36929,36930,4,0),(20259,'43715',36531,36532,4,0),(20260,'43715',36689,36690,4,0),(20261,'43715',37065,37066,4,0),(20262,'43716',36469,36470,4,0),(20263,'43717',36819,36820,4,0),(20264,'43718',36953,36954,4,0),(20265,'43718',37163,37164,4,0),(20266,'43718',36471,36472,4,0),(20267,'43718',36691,36692,4,0),(20268,'43719',36551,36552,4,0),(20269,'43720',36803,36804,4,0),(20270,'43730',36739,36740,4,0),(20271,'43730',36933,36934,4,0),(20272,'43736',26051,26052,4,0),(20273,'43736',36837,36838,4,0),(20274,'43736',36675,36676,4,0),(20275,'43737',36775,36776,4,0),(20276,'43737',36671,36672,4,0),(20277,'43737',37223,37224,4,0),(20278,'43738',36547,36548,4,0),(20279,'43739',37039,37040,4,0),(20280,'43740',36999,37000,4,0),(20281,'43746',37215,37216,4,0),(20282,'43747',36961,36962,4,0),(20283,'43747',36559,36560,4,0),(20284,'43748',36767,36768,4,0),(20285,'43749',36763,36764,4,0),(20286,'43750',36747,36748,4,0),(20287,'43760',36697,36698,4,0),(20288,'43761',36871,36872,4,0),(20289,'43762',36879,36880,4,0),(20290,'43763',37279,37280,4,0),(20291,'43763',36855,36856,4,0),(20292,'43764',36667,36668,4,0),(20293,'43765',36885,36886,4,0),(20294,'43770',37003,37004,4,0),(20295,'43771',37097,37098,4,0),(20296,'43772',36575,36576,4,0),(20297,'43773',36807,36808,4,0),(20298,'43773',36661,36662,4,0),(20299,'43774',37043,37044,4,0),(20300,'43774',36897,36898,4,0),(20301,'43775',36935,36936,4,0),(20302,'43776',36611,36612,4,0),(20303,'43777',36731,36732,4,0),(20304,'43780',36759,36760,4,0),(20305,'43781',36829,36830,4,0),(20306,'43782',37299,37300,4,0),(20307,'43783',36867,36868,4,0),(20308,'43784',36637,36638,4,0),(20309,'43785',36571,36572,4,0),(20310,'43786',36543,36544,4,0),(20311,'43787',36615,36616,4,0),(20312,'43790',37093,37094,4,0),(20313,'43791',36525,36526,4,0),(20314,'43792',36901,36902,4,0),(20315,'43792',37333,37334,4,0),(20316,'43800',37267,37268,4,0),(20317,'43810',36709,36710,4,0),(20318,'43811',36587,36588,4,0),(20319,'43811',36743,36744,4,0),(20320,'43812',36693,36694,4,0),(20321,'43812',36995,36996,4,0),(20322,'43812',37117,37118,4,0),(20323,'43812',36579,36580,4,0),(20324,'43812',37061,37062,4,0),(20325,'43813',36497,36498,4,0),(20326,'43813',37269,37270,4,0),(20327,'43814',37283,37284,4,0),(20328,'43815',36465,36466,4,0),(20329,'43815',36973,36974,4,0),(20330,'43816',37067,37068,4,0),(20331,'43817',36713,36714,4,0),(20332,'43820',36591,36592,4,0),(20333,'43830',37219,37220,4,0),(20334,'43839',36649,36650,4,0),(20335,'43840',37131,37132,4,0),(20336,'43850',36603,36604,4,0),(20337,'43860',36795,36796,4,0),(20338,'43870',36511,36512,4,0),(20339,'43877',37141,37142,4,0),(20340,'43878',36947,36948,4,0),(20341,'43879',36949,36950,4,0),(20342,'43879',36513,36514,4,0),(20343,'43879',37143,37144,4,0),(20344,'43880',36723,36724,4,0),(20345,'43881',36653,36654,4,0),(20346,'43882',36593,36594,4,0),(20347,'43883',37113,37114,4,0),(20348,'43884',36567,36568,4,0),(20349,'43885',37127,37128,4,0),(20350,'43886',37295,37296,4,0),(20351,'43886',37075,37076,4,0),(20352,'43887',37007,37008,4,0),(20353,'43890',37273,37274,4,0),(20354,'43891',37057,37058,4,0),(20355,'43891',37275,37276,4,0),(20356,'43892',36975,36976,4,0),(20357,'43893',36505,36506,4,0),(20358,'43894',36599,36600,4,0),(20359,'43895',36799,36800,4,0),(20360,'43896',36787,36788,4,0),(20361,'43897',37237,37238,4,0),(20362,'43900',14865,14866,4,0),(20363,'44001',38199,38200,4,0),(20364,'44002',38201,38202,4,0),(20365,'44003',38203,38204,4,0),(20366,'44100',37379,37380,4,0),(20367,'44110',37795,37796,4,0),(20368,'44111',38273,38274,4,0),(20369,'44112',38295,38296,4,0),(20370,'44113',38023,38024,4,0),(20371,'44114',37799,37800,4,0),(20372,'44114',38363,38364,4,0),(20373,'44115',37803,37804,4,0),(20374,'44120',38195,38196,4,0),(20375,'44121',37381,37382,4,0),(20376,'44121',38205,38206,4,0),(20377,'44121',38137,38138,4,0),(20378,'44121',37515,37516,4,0),(20379,'44122',38327,38328,4,0),(20380,'44122',38153,38154,4,0),(20381,'44122',37825,37826,4,0),(20382,'44123',37711,37712,4,0),(20383,'44123',37383,37384,4,0),(20384,'44123',38223,38224,4,0),(20385,'44123',37827,37828,4,0),(20386,'44124',38011,38012,4,0),(20387,'44125',38133,38134,4,0),(20388,'44126',37763,37764,4,0),(20389,'44126',37575,37576,4,0),(20390,'44130',38383,38384,4,0),(20391,'44131',38387,38388,4,0),(20392,'44132',37913,37914,4,0),(20393,'44132',38289,38290,4,0),(20394,'44133',38125,38126,4,0),(20395,'44133',38291,38292,4,0),(20396,'44134',38227,38228,4,0),(20397,'44134',38347,38348,4,0),(20398,'44134',37703,37704,4,0),(20399,'44134',37443,37444,4,0),(20400,'44140',37599,37600,4,0),(20401,'44140',37611,37612,4,0),(20402,'44141',37859,37860,4,0),(20403,'44141',38299,38300,4,0),(20404,'44141',37969,37970,4,0),(20405,'44142',37875,37876,4,0),(20406,'44143',37755,37756,4,0),(20407,'44144',38379,38380,4,0),(20408,'44145',37427,37428,4,0),(20409,'44146',37999,38000,4,0),(20410,'44147',37645,37646,4,0),(20411,'44150',37419,37420,4,0),(20412,'44155',37589,37590,4,0),(20413,'44155',37707,37708,4,0),(20414,'44155',37347,37348,4,0),(20415,'44156',37363,37364,4,0),(20416,'44156',37839,37840,4,0),(20417,'44157',37815,37816,4,0),(20418,'44157',37421,37422,4,0),(20419,'44158',37423,37424,4,0),(20420,'44159',37973,37974,4,0),(20421,'44160',37415,37416,4,0),(20422,'44161',37715,37716,4,0),(20423,'44161',38063,38064,4,0),(20424,'44161',38089,38090,4,0),(20425,'44162',38085,38086,4,0),(20426,'44162',37691,37692,4,0),(20427,'44162',38207,38208,4,0),(20428,'44163',38091,38092,4,0),(20429,'44164',38395,38396,4,0),(20430,'44164',37917,37918,4,0),(20431,'44165',37467,37468,4,0),(20432,'44166',38141,38142,4,0),(20433,'44167',37579,37580,4,0),(20434,'44168',37603,37604,4,0),(20435,'44168',37787,37788,4,0),(20436,'44169',37831,37832,4,0),(20437,'44169',37965,37966,4,0),(20438,'44169',37687,37688,4,0),(20439,'44190',38209,38210,4,0),(20440,'44191',37583,37584,4,0),(20441,'44191',37679,37680,4,0),(20442,'44191',37615,37616,4,0),(20443,'44191',38315,38316,4,0),(20444,'44192',38211,38212,4,0),(20445,'44193',37657,37658,4,0),(20446,'44193',38213,38214,4,0),(20447,'44194',37649,37650,4,0),(20448,'44195',38215,38216,4,0),(20449,'44200',37551,37552,4,0),(20450,'44210',37553,37554,4,0),(20451,'44211',37555,37556,4,0),(20452,'44212',37819,37820,4,0),(20453,'44212',37451,37452,4,0),(20454,'44212',37933,37934,4,0),(20455,'44213',38099,38100,4,0),(20456,'44213',37821,37822,4,0),(20457,'44220',37557,37558,4,0),(20458,'44220',37491,37492,4,0),(20459,'44221',38259,38260,4,0),(20460,'44222',38261,38262,4,0),(20461,'44223',38359,38360,4,0),(20462,'44230',38231,38232,4,0),(20463,'44231',37619,37620,4,0),(20464,'44232',37503,37504,4,0),(20465,'44233',38039,38040,4,0),(20466,'44300',37985,37986,4,0),(20467,'44310',38129,38130,4,0),(20468,'44311',38367,38368,4,0),(20469,'44312',38043,38044,4,0),(20470,'44313',38045,38046,4,0),(20471,'44314',37519,37520,4,0),(20472,'44315',38107,38108,4,0),(20473,'44320',37483,37484,4,0),(20474,'44330',37539,37540,4,0),(20475,'44340',37775,37776,4,0),(20476,'44350',37593,37594,4,0),(20477,'44357',37487,37488,4,0),(20478,'44357',37559,37560,4,0),(20479,'44358',37665,37666,4,0),(20480,'44358',38251,38252,4,0),(20481,'44359',38235,38236,4,0),(20482,'44359',37595,37596,4,0),(20483,'44360',38173,38174,4,0),(20484,'44366',38059,38060,4,0),(20485,'44367',37531,37532,4,0),(20486,'44368',38103,38104,4,0),(20487,'44368',38003,38004,4,0),(20488,'44369',37439,37440,4,0),(20489,'44369',38081,38082,4,0),(20490,'44370',37653,37654,4,0),(20491,'44380',38375,38376,4,0),(20492,'44381',38269,38270,4,0),(20493,'44382',37355,37356,4,0),(20494,'44382',38265,38266,4,0),(20495,'44382',38191,38192,4,0),(20496,'44390',38165,38166,4,0),(20497,'44391',37561,37562,4,0),(20498,'44392',37563,37564,4,0),(20499,'44393',38285,38286,4,0),(20500,'44394',38351,38352,4,0),(20501,'44394',37535,37536,4,0),(20502,'44395',37371,37372,4,0),(20503,'44396',38217,38218,4,0),(20504,'44397',38219,38220,4,0),(20505,'44400',38007,38008,4,0),(20506,'44409',37699,37700,4,0),(20507,'44409',37543,37544,4,0),(20508,'44410',38015,38016,4,0),(20509,'44411',38111,38112,4,0),(20510,'44412',37921,37922,4,0),(20511,'44413',38331,38332,4,0),(20512,'44414',38031,38032,4,0),(20513,'44415',37779,37780,4,0),(20514,'44415',38145,38146,4,0),(20515,'44420',37943,37944,4,0),(20516,'44421',38281,38282,4,0),(20517,'44421',37459,37460,4,0),(20518,'44422',37945,37946,4,0),(20519,'44422',37351,37352,4,0),(20520,'44423',37947,37948,4,0),(20521,'44424',38177,38178,4,0),(20522,'44424',37387,37388,4,0),(20523,'44430',38319,38320,4,0),(20524,'44431',37397,37398,4,0),(20525,'44432',37399,37400,4,0),(20526,'44433',37807,37808,4,0),(20527,'44440',37745,37746,4,0),(20528,'44441',37747,37748,4,0),(20529,'44450',37893,37894,4,0),(20530,'44459',37585,37586,4,0),(20531,'44460',38179,38180,4,0),(20532,'44477',37389,37390,4,0),(20533,'44478',38049,38050,4,0),(20534,'44479',38051,38052,4,0),(20535,'44480',38161,38162,4,0),(20536,'44490',37729,37730,4,0),(20537,'44491',37683,37684,4,0),(20538,'44491',37479,37480,4,0),(20539,'44491',37905,37906,4,0),(20540,'44492',37495,37496,4,0),(20541,'44492',37435,37436,4,0),(20542,'44492',37901,37902,4,0),(20543,'44493',37981,37982,4,0),(20544,'44493',37935,37936,4,0),(20545,'44493',38027,38028,4,0),(20546,'44494',38355,38356,4,0),(20547,'44495',37565,37566,4,0),(20548,'44496',37567,37568,4,0),(20549,'44497',38169,38170,4,0),(20550,'44500',37455,37456,4,0),(20551,'44509',37431,37432,4,0),(20552,'44510',37887,37888,4,0),(20553,'44511',37889,37890,4,0),(20554,'44520',38157,38158,4,0),(20555,'44530',37811,37812,4,0),(20556,'44540',37375,37376,4,0),(20557,'44547',37471,37472,4,0),(20558,'44548',38055,38056,4,0),(20559,'44549',37367,37368,4,0),(20560,'44550',37411,37412,4,0),(20561,'44555',38095,38096,4,0),(20562,'44556',37511,37512,4,0),(20563,'44556',37977,37978,4,0),(20564,'44557',37879,37880,4,0),(20565,'44557',37929,37930,4,0),(20566,'44557',37675,37676,4,0),(20567,'44558',37725,37726,4,0),(20568,'44558',37791,37792,4,0),(20569,'44559',38371,38372,4,0),(20570,'44559',37695,37696,4,0),(20571,'44560',37627,37628,4,0),(20572,'44561',38187,38188,4,0),(20573,'44562',37629,37630,4,0),(20574,'44563',37527,37528,4,0),(20575,'44563',37631,37632,4,0),(20576,'44564',37957,37958,4,0),(20577,'44565',37633,37634,4,0),(20578,'44566',37359,37360,4,0),(20579,'44566',37909,37910,4,0),(20580,'44570',37571,37572,4,0),(20581,'44579',37759,37760,4,0),(20582,'44580',38339,38340,4,0),(20583,'44586',38077,38078,4,0),(20584,'44587',37783,37784,4,0),(20585,'44588',37499,37500,4,0),(20586,'44589',37883,37884,4,0),(20587,'44589',38115,38116,4,0),(20588,'44590',37475,37476,4,0),(20589,'44591',43489,43490,4,0),(20590,'44591',38391,38392,4,0),(20591,'44592',37637,37638,4,0),(20592,'44592',37835,37836,4,0),(20593,'44593',38303,38304,4,0),(20594,'44594',38323,38324,4,0),(20595,'44595',38343,38344,4,0),(20596,'44596',37863,37864,4,0),(20597,'44597',38247,38248,4,0),(20598,'44600',37403,37404,4,0),(20599,'44610',37547,37548,4,0),(20600,'44620',38335,38336,4,0),(20601,'44621',37961,37962,4,0),(20602,'44622',37463,37464,4,0),(20603,'44623',37671,37672,4,0),(20604,'44624',37925,37926,4,0),(20605,'44630',39865,39866,4,0),(20606,'44630',37641,37642,4,0),(20607,'44640',38255,38256,4,0),(20608,'44640',37855,37856,4,0),(20609,'44641',38277,38278,4,0),(20610,'44642',37507,37508,4,0),(20611,'44643',37867,37868,4,0),(20612,'44643',37847,37848,4,0),(20613,'44650',37751,37752,4,0),(20614,'44651',37851,37852,4,0),(20615,'44652',37989,37990,4,0),(20616,'44653',38239,38240,4,0),(20617,'44660',37405,37406,4,0),(20618,'44661',37407,37408,4,0),(20619,'44700',37993,37994,4,0),(20620,'44706',37623,37624,4,0),(20621,'44707',37897,37898,4,0),(20622,'44707',37607,37608,4,0),(20623,'44708',38067,38068,4,0),(20624,'44709',38243,38244,4,0),(20625,'44709',37995,37996,4,0),(20626,'44710',38119,38120,4,0),(20627,'44711',37771,37772,4,0),(20628,'44712',38121,38122,4,0),(20629,'44720',38071,38072,4,0),(20630,'44721',37667,37668,4,0),(20631,'44721',37447,37448,4,0),(20632,'44730',38073,38074,4,0),(20633,'44730',37951,37952,4,0),(20634,'44740',38399,38400,4,0),(20635,'44741',37767,37768,4,0),(20636,'44742',38401,38402,4,0),(20637,'44750',37953,37954,4,0),(20638,'44760',38307,38308,4,0),(20639,'44761',38309,38310,4,0),(20640,'44769',38311,38312,4,0),(20641,'44770',37719,37720,4,0),(20642,'44779',37721,37722,4,0),(20643,'44780',38019,38020,4,0),(20644,'44790',37523,37524,4,0),(20645,'44791',37871,37872,4,0),(20646,'44791',37661,37662,4,0),(20647,'44791',37939,37940,4,0),(20648,'44792',38035,38036,4,0),(20649,'44792',37843,37844,4,0),(20650,'44792',37393,37394,4,0),(20651,'44793',38149,38150,4,0),(20652,'44793',38183,38184,4,0),(20653,'45001',39177,39178,4,0),(20654,'45002',39179,39180,4,0),(20655,'45003',39181,39182,4,0),(20656,'45004',39183,39184,4,0),(20657,'45005',39185,39186,4,0),(20658,'45006',39187,39188,4,0),(20659,'45007',39189,39190,4,0),(20660,'45008',39191,39192,4,0),(20661,'45100',39153,39154,4,0),(20662,'45109',39155,39156,4,0),(20663,'45109',38991,38992,4,0),(20664,'45110',38407,38408,4,0),(20665,'45111',38605,38606,4,0),(20666,'45112',38497,38498,4,0),(20667,'45113',38593,38594,4,0),(20668,'45114',38875,38876,4,0),(20669,'45120',39099,39100,4,0),(20670,'45120',38887,38888,4,0),(20671,'45121',38889,38890,4,0),(20672,'45122',38467,38468,4,0),(20673,'45123',38803,38804,4,0),(20674,'45123',39137,39138,4,0),(20675,'45124',38565,38566,4,0),(20676,'45125',39045,39046,4,0),(20677,'45126',38617,38618,4,0),(20678,'45126',38877,38878,4,0),(20679,'45127',38791,38792,4,0),(20680,'45128',38891,38892,4,0),(20681,'45130',38823,38824,4,0),(20682,'45138',38825,38826,4,0),(20683,'45139',38827,38828,4,0),(20684,'45140',38819,38820,4,0),(20685,'45150',38937,38938,4,0),(20686,'45159',38939,38940,4,0),(20687,'45159',38713,38714,4,0),(20688,'45160',38701,38702,4,0),(20689,'45161',39033,39034,4,0),(20690,'45162',38959,38960,4,0),(20691,'45163',39211,39212,4,0),(20692,'45164',38689,38690,4,0),(20693,'45165',39091,39092,4,0),(20694,'45170',39095,39096,4,0),(20695,'45179',39273,39274,4,0),(20696,'45180',38533,38534,4,0),(20697,'45181',38537,38538,4,0),(20698,'45182',38463,38464,4,0),(20699,'45183',38795,38796,4,0),(20700,'45190',38931,38932,4,0),(20701,'45191',38933,38934,4,0),(20702,'45200',38733,38734,4,0),(20703,'45210',39313,39314,4,0),(20704,'45211',39063,39064,4,0),(20705,'45212',38811,38812,4,0),(20706,'45213',39009,39010,4,0),(20707,'45214',38581,38582,4,0),(20708,'45215',38659,38660,4,0),(20709,'45216',38553,38554,4,0),(20710,'45217',39219,39220,4,0),(20711,'45220',39297,39298,4,0),(20712,'45221',38679,38680,4,0),(20713,'45222',38489,38490,4,0),(20714,'45223',39139,39140,4,0),(20715,'45224',39141,39142,4,0),(20716,'45225',38475,38476,4,0),(20717,'45230',38971,38972,4,0),(20718,'45240',38411,38412,4,0),(20719,'45250',38459,38460,4,0),(20720,'45260',39283,39284,4,0),(20721,'45270',38909,38910,4,0),(20722,'45276',38913,38914,4,0),(20723,'45280',38983,38984,4,0),(20724,'45290',39013,39014,4,0),(20725,'45291',38601,38602,4,0),(20726,'45292',39285,39286,4,0),(20727,'45300',38761,38762,4,0),(20728,'45300',38979,38980,4,0),(20729,'45310',39293,39294,4,0),(20730,'45311',38625,38626,4,0),(20731,'45312',38509,38510,4,0),(20732,'45313',39301,39302,4,0),(20733,'45314',38597,38598,4,0),(20734,'45340',38987,38988,4,0),(20735,'45350',38955,38956,4,0),(20736,'45360',39277,39278,4,0),(20737,'45370',39279,39280,4,0),(20738,'45370',39111,39112,4,0),(20739,'45400',38927,38928,4,0),(20740,'45400',39053,39054,4,0),(20741,'45410',39269,39270,4,0),(20742,'45420',38451,38452,4,0),(20743,'45430',38871,38872,4,0),(20744,'45440',39257,39258,4,0),(20745,'45450',38993,38994,4,0),(20746,'45460',38645,38646,4,0),(20747,'45460',38855,38856,4,0),(20748,'45470',38831,38832,4,0),(20749,'45479',38863,38864,4,0),(20750,'45480',39223,39224,4,0),(20751,'45480',38833,38834,4,0),(20752,'45500',39207,39208,4,0),(20753,'45510',38683,38684,4,0),(20754,'45511',38721,38722,4,0),(20755,'45512',39037,39038,4,0),(20756,'45513',39115,39116,4,0),(20757,'45514',39059,39060,4,0),(20758,'45515',38859,38860,4,0),(20759,'45516',38763,38764,4,0),(20760,'45517',38671,38672,4,0),(20761,'45518',38697,38698,4,0),(20762,'45519',38967,38968,4,0),(20763,'45520',39249,39250,4,0),(20764,'45521',38501,38502,4,0),(20765,'45522',38415,38416,4,0),(20766,'45523',38419,38420,4,0),(20767,'45524',39071,39072,4,0),(20768,'45525',38477,38478,4,0),(20769,'45526',39125,39126,4,0),(20770,'45529',39305,39306,4,0),(20771,'45530',39121,39122,4,0),(20772,'45530',38903,38904,4,0),(20773,'45531',38549,38550,4,0),(20774,'45532',38557,38558,4,0),(20775,'45533',38633,38634,4,0),(20776,'45534',38749,38750,4,0),(20777,'45540',38663,38664,4,0),(20778,'45540',38685,38686,4,0),(20779,'45541',38899,38900,4,0),(20780,'45542',38637,38638,4,0),(20781,'45543',39005,39006,4,0),(20782,'45544',38621,38622,4,0),(20783,'45551',38729,38730,4,0),(20784,'45560',38997,38998,4,0),(20785,'45567',38781,38782,4,0),(20786,'45568',38799,38800,4,0),(20787,'45569',39195,39196,4,0),(20788,'45569',38999,39000,4,0),(20789,'45570',38641,38642,4,0),(20790,'45571',38471,38472,4,0),(20791,'45571',38431,38432,4,0),(20792,'45572',39227,39228,4,0),(20793,'45572',39203,39204,4,0),(20794,'45573',38947,38948,4,0),(20795,'45574',38737,38738,4,0),(20796,'45575',38443,38444,4,0),(20797,'45576',38915,38916,4,0),(20798,'45577',39041,39042,4,0),(20799,'45578',38629,38630,4,0),(20800,'45580',38529,38530,4,0),(20801,'45588',38705,38706,4,0),(20802,'45589',38525,38526,4,0),(20803,'45590',38845,38846,4,0),(20804,'45591',39309,39310,4,0),(20805,'45592',38505,38506,4,0),(20806,'45593',38481,38482,4,0),(20807,'45594',39253,39254,4,0),(20808,'45600',39163,39164,4,0),(20809,'45600',39001,39002,4,0),(20810,'45610',38943,38944,4,0),(20811,'45611',39021,39022,4,0),(20812,'45612',39235,39236,4,0),(20813,'45613',39165,39166,4,0),(20814,'45614',39167,39168,4,0),(20815,'45620',38923,38924,4,0),(20816,'45621',39133,39134,4,0),(20817,'45622',38881,38882,4,0),(20818,'45630',38951,38952,4,0),(20819,'45631',38447,38448,4,0),(20820,'45632',39129,39130,4,0),(20821,'45633',38745,38746,4,0),(20822,'45634',38493,38494,4,0),(20823,'45635',39159,39160,4,0),(20824,'45636',38867,38868,4,0),(20825,'45637',38585,38586,4,0),(20826,'45638',39029,39030,4,0),(20827,'45640',38647,38648,4,0),(20828,'45641',38569,38570,4,0),(20829,'45642',38545,38546,4,0),(20830,'45643',38693,38694,4,0),(20831,'45644',38975,38976,4,0),(20832,'45645',38709,38710,4,0),(20833,'45646',39103,39104,4,0),(20834,'45650',38675,38676,4,0),(20835,'45651',39199,39200,4,0),(20836,'45652',39067,39068,4,0),(20837,'45653',39107,39108,4,0),(20838,'45654',39087,39088,4,0),(20839,'45660',38485,38486,4,0),(20840,'45661',38439,38440,4,0),(20841,'45662',38427,38428,4,0),(20842,'45662',38883,38884,4,0),(20843,'45663',38785,38786,4,0),(20844,'45664',38787,38788,4,0),(20845,'45670',38753,38754,4,0),(20846,'45671',39145,39146,4,0),(20847,'45672',39147,39148,4,0),(20848,'45673',39149,39150,4,0),(20849,'45674',39075,39076,4,0),(20850,'45675',39077,39078,4,0),(20851,'45676',39079,39080,4,0),(20852,'45677',39081,39082,4,0),(20853,'45678',39083,39084,4,0),(20854,'45680',38577,38578,4,0),(20855,'45680',39239,39240,4,0),(20856,'45682',38815,38816,4,0),(20857,'45683',38573,38574,4,0),(20858,'45684',38837,38838,4,0),(20859,'45685',38919,38920,4,0),(20860,'45686',38519,38520,4,0),(20861,'45687',38423,38424,4,0),(20862,'45690',38767,38768,4,0),(20863,'45691',38769,38770,4,0),(20864,'45692',38849,38850,4,0),(20865,'45693',38851,38852,4,0),(20866,'45694',39169,39170,4,0),(20867,'45695',38521,38522,4,0),(20868,'45700',38609,38610,4,0),(20869,'45710',38841,38842,4,0),(20870,'45720',38541,38542,4,0),(20871,'45730',39245,39246,4,0),(20872,'45740',39289,39290,4,0),(20873,'45749',39261,39262,4,0),(20874,'45750',38725,38726,4,0),(20875,'45750',38511,38512,4,0),(20876,'45760',38741,38742,4,0),(20877,'45770',38651,38652,4,0),(20878,'45780',39173,39174,4,0),(20879,'45789',39215,39216,4,0),(20880,'45790',39049,39050,4,0),(20881,'45800',39055,39056,4,0),(20882,'45810',39265,39266,4,0),(20883,'45820',38655,38656,4,0),(20884,'45830',38905,38906,4,0),(20885,'45840',38757,38758,4,0),(20886,'45850',38777,38778,4,0),(20887,'45860',39241,39242,4,0),(20888,'45870',38807,38808,4,0),(20889,'45880',38613,38614,4,0),(20890,'45890',38515,38516,4,0),(20891,'45900',38455,38456,4,0),(20892,'45908',39017,39018,4,0),(20893,'45908',38435,38436,4,0),(20894,'45909',39117,39118,4,0),(20895,'45910',38667,38668,4,0),(20896,'45917',38963,38964,4,0),(20897,'45918',39025,39026,4,0),(20898,'45919',38717,38718,4,0),(20899,'45920',38773,38774,4,0),(20900,'45930',38895,38896,4,0),(20901,'45940',39231,39232,4,0),(20902,'45950',38561,38562,4,0),(20903,'45960',38589,38590,4,0),(20904,'46001',40427,40428,4,0),(20905,'46002',40429,40430,4,0),(20906,'46003',40431,40432,4,0),(20907,'46004',40433,40434,4,0),(20908,'46005',40435,40436,4,0),(20909,'46006',40437,40438,4,0),(20910,'46007',40439,40440,4,0),(20911,'46008',40441,40442,4,0),(20912,'46009',40443,40444,4,0),(20913,'46010',40445,40446,4,0),(20914,'46011',40447,40448,4,0),(20915,'46012',40449,40450,4,0),(20916,'46013',40451,40452,4,0),(20917,'46014',40533,40534,4,0),(20918,'46014',40453,40454,4,0),(20919,'46015',40455,40456,4,0),(20920,'46016',40457,40458,4,0),(20921,'46016',40369,40370,4,0),(20922,'46017',40459,40460,4,0),(20923,'46018',40461,40462,4,0),(20924,'46019',40463,40464,4,0),(20925,'46020',40465,40466,4,0),(20926,'46021',40467,40468,4,0),(20927,'46022',40469,40470,4,0),(20928,'46023',40471,40472,4,0),(20929,'46024',40473,40474,4,0),(20930,'46025',40475,40476,4,0),(20931,'46026',40477,40478,4,0),(20932,'46035',40479,40480,4,0),(20933,'46100',39639,39640,4,0),(20934,'46109',39739,39740,4,0),(20935,'46110',39909,39910,4,0),(20936,'46111',40265,40266,4,0),(20937,'46112',40481,40482,4,0),(20938,'46113',40067,40068,4,0),(20939,'46114',40529,40530,4,0),(20940,'46115',39409,39410,4,0),(20941,'46117',39607,39608,4,0),(20942,'46118',40323,40324,4,0),(20943,'46119',40095,40096,4,0),(20944,'46120',39367,39368,4,0),(20945,'46128',39369,39370,4,0),(20946,'46129',39371,39372,4,0),(20947,'46130',40039,40040,4,0),(20948,'46131',39623,39624,4,0),(20949,'46131',40483,40484,4,0),(20950,'46132',39441,39442,4,0),(20951,'46133',40047,40048,4,0),(20952,'46134',39849,39850,4,0),(20953,'46135',39351,39352,4,0),(20954,'46135',39819,39820,4,0),(20955,'46135',40485,40486,4,0),(20956,'46136',40091,40092,4,0),(20957,'46137',40187,40188,4,0),(20958,'46138',40213,40214,4,0),(20959,'46139',40189,40190,4,0),(20960,'46140',40193,40194,4,0),(20961,'46140',39319,39320,4,0),(20962,'46141',39705,39706,4,0),(20963,'46143',40391,40392,4,0),(20964,'46145',40493,40494,4,0),(20965,'46146',39687,39688,4,0),(20966,'46147',39683,39684,4,0),(20967,'46148',39433,39434,4,0),(20968,'46149',39905,39906,4,0),(20969,'46160',39975,39976,4,0),(20970,'46162',39929,39930,4,0),(20971,'46163',40027,40028,4,0),(20972,'46164',40151,40152,4,0),(20973,'46165',39631,39632,4,0),(20974,'46166',39901,39902,4,0),(20975,'46167',39749,39750,4,0),(20976,'46168',40351,40352,4,0),(20977,'46169',39889,39890,4,0),(20978,'46169',40117,40118,4,0),(20979,'46170',40519,40520,4,0),(20980,'46170',39473,39474,4,0),(20981,'46171',39691,39692,4,0),(20982,'46172',39389,39390,4,0),(20983,'46173',39521,39522,4,0),(20984,'46173',39995,39996,4,0),(20985,'46174',39797,39798,4,0),(20986,'46175',39643,39644,4,0),(20987,'46176',39729,39730,4,0),(20988,'46177',40409,40410,4,0),(20989,'46178',39971,39972,4,0),(20990,'46178',39457,39458,4,0),(20991,'46178',40387,40388,4,0),(20992,'46179',39485,39486,4,0),(20993,'46180',39525,39526,4,0),(20994,'46181',39595,39596,4,0),(20995,'46181',40107,40108,4,0),(20996,'46182',40141,40142,4,0),(20997,'46183',39959,39960,4,0),(20998,'46184',40295,40296,4,0),(20999,'46185',14867,14868,4,0),(21000,'46185',40197,40198,4,0),(21001,'46190',40257,40258,4,0),(21002,'46191',40511,40512,4,0),(21003,'46192',40087,40088,4,0),(21004,'46193',40083,40084,4,0),(21005,'46194',40229,40230,4,0),(21006,'46195',39987,39988,4,0),(21007,'46196',39709,39710,4,0),(21008,'46197',39413,39414,4,0),(21009,'46198',39801,39802,4,0),(21010,'46199',40051,40052,4,0),(21011,'46199',40233,40234,4,0),(21012,'46199',39761,39762,4,0),(21013,'46200',40129,40130,4,0),(21014,'46210',40159,40160,4,0),(21015,'46220',40163,40164,4,0),(21016,'46220',39379,39380,4,0),(21017,'46230',39437,39438,4,0),(21018,'46240',39675,39676,4,0),(21019,'46250',40281,40282,4,0),(21020,'46250',39955,39956,4,0),(21021,'46260',39359,39360,4,0),(21022,'46266',39481,39482,4,0),(21023,'46267',39893,39894,4,0),(21024,'46268',39465,39466,4,0),(21025,'46269',40405,40406,4,0),(21026,'46270',40515,40516,4,0),(21027,'46290',39381,39382,4,0),(21028,'46291',39577,39578,4,0),(21029,'46292',40031,40032,4,0),(21030,'46293',39385,39386,4,0),(21031,'46293',39533,39534,4,0),(21032,'46294',39671,39672,4,0),(21033,'46294',39765,39766,4,0),(21034,'46295',40311,40312,4,0),(21035,'46295',40365,40366,4,0),(21036,'46300',40417,40418,4,0),(21037,'46310',40501,40502,4,0),(21038,'46311',40503,40504,4,0),(21039,'46312',40419,40420,4,0),(21040,'46313',40421,40422,4,0),(21041,'46314',39871,39872,4,0),(21042,'46315',39717,39718,4,0),(21043,'46317',40523,40524,4,0),(21044,'46318',40525,40526,4,0),(21045,'46320',40341,40342,4,0),(21046,'46321',40423,40424,4,0),(21047,'46330',39647,39648,4,0),(21048,'46340',40235,40236,4,0),(21049,'46350',39735,39736,4,0),(21050,'46351',39731,39732,4,0),(21051,'46351',40237,40238,4,0),(21052,'46352',40239,40240,4,0),(21053,'46353',40241,40242,4,0),(21054,'46354',40243,40244,4,0),(21055,'46355',40245,40246,4,0),(21056,'46356',40247,40248,4,0),(21057,'46357',40249,40250,4,0),(21058,'46360',39635,39636,4,0),(21059,'46367',40539,40540,4,0),(21060,'46368',40015,40016,4,0),(21061,'46369',39363,39364,4,0),(21062,'46370',39745,39746,4,0),(21063,'46380',39741,39742,4,0),(21064,'46388',39913,39914,4,0),(21065,'46389',40413,40414,4,0),(21066,'46390',40251,40252,4,0),(21067,'46391',40253,40254,4,0),(21068,'46392',40327,40328,4,0),(21069,'46393',39991,39992,4,0),(21070,'46400',39785,39786,4,0),(21071,'46408',39787,39788,4,0),(21072,'46409',39789,39790,4,0),(21073,'46410',40357,40358,4,0),(21074,'46417',40261,40262,4,0),(21075,'46418',39857,39858,4,0),(21076,'46419',40359,40360,4,0),(21077,'46420',40361,40362,4,0),(21078,'46430',40345,40346,4,0),(21079,'46439',40347,40348,4,0),(21080,'46440',39453,39454,4,0),(21081,'46450',39809,39810,4,0),(21082,'46450',39565,39566,4,0),(21083,'46460',40333,40334,4,0),(21084,'46469',39585,39586,4,0),(21085,'46470',39713,39714,4,0),(21086,'46470',40377,40378,4,0),(21087,'46470',39343,39344,4,0),(21088,'46470',40043,40044,4,0),(21089,'46480',14869,14870,4,0),(21090,'46500',40283,40284,4,0),(21091,'46501',40155,40156,4,0),(21092,'46510',39777,39778,4,0),(21093,'46511',39561,39562,4,0),(21094,'46512',39841,39842,4,0),(21095,'46514',39529,39530,4,0),(21096,'46515',39769,39770,4,0),(21097,'46520',40285,40286,4,0),(21098,'46529',39659,39660,4,0),(21099,'46530',40183,40184,4,0),(21100,'46530',40287,40288,4,0),(21101,'46540',39811,39812,4,0),(21102,'46550',39375,39376,4,0),(21103,'46560',40035,40036,4,0),(21104,'46590',39833,39834,4,0),(21105,'46591',39355,39356,4,0),(21106,'46592',40307,40308,4,0),(21107,'46593',39425,39426,4,0),(21108,'46594',39405,39406,4,0),(21109,'46595',40401,40402,4,0),(21110,'46600',39467,39468,4,0),(21111,'46600',40329,40330,4,0),(21112,'46610',39921,39922,4,0),(21113,'46611',39581,39582,4,0),(21114,'46612',39757,39758,4,0),(21115,'46613',39983,39984,4,0),(21116,'46614',39845,39846,4,0),(21117,'46620',39497,39498,4,0),(21118,'46621',40543,40544,4,0),(21119,'46622',40379,40380,4,0),(21120,'46623',39941,39942,4,0),(21121,'46624',39933,39934,4,0),(21122,'46625',39753,39754,4,0),(21123,'46630',39867,39868,4,0),(21124,'46635',39853,39854,4,0),(21125,'46640',40063,40064,4,0),(21126,'46650',39651,39652,4,0),(21127,'46659',39653,39654,4,0),(21128,'46660',40023,40024,4,0),(21129,'46661',39829,39830,4,0),(21130,'46666',40221,40222,4,0),(21131,'46667',39501,39502,4,0),(21132,'46668',39945,39946,4,0),(21133,'46668',40003,40004,4,0),(21134,'46669',40319,40320,4,0),(21135,'46669',40299,40300,4,0),(21136,'46670',40205,40206,4,0),(21137,'46680',39429,39430,4,0),(21138,'46687',39347,39348,4,0),(21139,'46688',40175,40176,4,0),(21140,'46689',39553,39554,4,0),(21141,'46690',39393,39394,4,0),(21142,'46691',40489,40490,4,0),(21143,'46692',40075,40076,4,0),(21144,'46701',39875,39876,4,0),(21145,'46702',39877,39878,4,0),(21146,'46703',39591,39592,4,0),(21147,'46710',39793,39794,4,0),(21148,'46711',40055,40056,4,0),(21149,'46711',39925,39926,4,0),(21150,'46712',40167,40168,4,0),(21151,'46713',39513,39514,4,0),(21152,'46714',40137,40138,4,0),(21153,'46715',39461,39462,4,0),(21154,'46716',40217,40218,4,0),(21155,'46717',39861,39862,4,0),(21156,'46717',39693,39694,4,0),(21157,'46720',40507,40508,4,0),(21158,'46721',40179,40180,4,0),(21159,'46722',39569,39570,4,0),(21160,'46722',39541,39542,4,0),(21161,'46723',39449,39450,4,0),(21162,'46724',40133,40134,4,0),(21163,'46725',39421,39422,4,0),(21164,'46725',40273,40274,4,0),(21165,'46726',40011,40012,4,0),(21166,'46726',39701,39702,4,0),(21167,'46726',39445,39446,4,0),(21168,'46727',39815,39816,4,0),(21169,'46728',39879,39880,4,0),(21170,'46729',39323,39324,4,0),(21171,'46730',39881,39882,4,0),(21172,'46740',39663,39664,4,0),(21173,'46749',39665,39666,4,0),(21174,'46750',40337,40338,4,0),(21175,'46758',39505,39506,4,0),(21176,'46760',40373,40374,4,0),(21177,'46760',39883,39884,4,0),(21178,'46770',39937,39938,4,0),(21179,'46780',40109,40110,4,0),(21180,'46790',39951,39952,4,0),(21181,'46791',39557,39558,4,0),(21182,'46792',39667,39668,4,0),(21183,'46792',39469,39470,4,0),(21184,'46800',39947,39948,4,0),(21185,'46810',39823,39824,4,0),(21186,'46811',39825,39826,4,0),(21187,'46812',39489,39490,4,0),(21188,'46813',39721,39722,4,0),(21189,'46813',39655,39656,4,0),(21190,'46814',40395,40396,4,0),(21191,'46814',39979,39980,4,0),(21192,'46814',39963,39964,4,0),(21193,'46815',39967,39968,4,0),(21194,'46816',40269,40270,4,0),(21195,'46817',39837,39838,4,0),(21196,'46818',40497,40498,4,0),(21197,'46819',40103,40104,4,0),(21198,'46820',39477,39478,4,0),(21199,'46821',39725,39726,4,0),(21200,'46822',39619,39620,4,0),(21201,'46823',40099,40100,4,0),(21202,'46824',40209,40210,4,0),(21203,'46825',39611,39612,4,0),(21204,'46830',39573,39574,4,0),(21205,'46837',39781,39782,4,0),(21206,'46838',39549,39550,4,0),(21207,'46838',40171,40172,4,0),(21208,'46838',39999,40000,4,0),(21209,'46839',39517,39518,4,0),(21210,'46839',39603,39604,4,0),(21211,'46839',40315,40316,4,0),(21212,'46839',39917,39918,4,0),(21213,'46840',40201,40202,4,0),(21214,'46840',14871,14872,4,0),(21215,'46841',39697,39698,4,0),(21216,'46842',40353,40354,4,0),(21217,'46842',39493,39494,4,0),(21218,'46842',40079,40080,4,0),(21219,'46842',40383,40384,4,0),(21220,'46842',40277,40278,4,0),(21221,'46843',40291,40292,4,0),(21222,'46843',40225,40226,4,0),(21223,'46844',40125,40126,4,0),(21224,'46844',39545,39546,4,0),(21225,'46850',40113,40114,4,0),(21226,'46860',39339,39340,4,0),(21227,'46868',39509,39510,4,0),(21228,'46869',39599,39600,4,0),(21229,'46869',39327,39328,4,0),(21230,'46869',39679,39680,4,0),(21231,'46870',40121,40122,4,0),(21232,'46880',39615,39616,4,0),(21233,'46890',39331,39332,4,0),(21234,'46891',39627,39628,4,0),(21235,'46891',39805,39806,4,0),(21236,'46892',40071,40072,4,0),(21237,'46893',39417,39418,4,0),(21238,'46894',39897,39898,4,0),(21239,'46900',14873,14874,4,0),(21240,'46901',14875,14876,4,0),(21241,'46910',40303,40304,4,0),(21242,'46910',40007,40008,4,0),(21243,'46910',39401,39402,4,0),(21244,'46910',39537,39538,4,0),(21245,'46920',40059,40060,4,0),(21246,'46930',39773,39774,4,0),(21247,'46940',40019,40020,4,0),(21248,'46950',40535,40536,4,0),(21249,'46960',39397,39398,4,0),(21250,'46970',39335,39336,4,0),(21251,'46980',40143,40144,4,0),(21252,'46988',40145,40146,4,0),(21253,'46989',40147,40148,4,0),(21254,'47001',41315,41316,4,0),(21255,'47002',41317,41318,4,0),(21256,'47003',41319,41320,4,0),(21257,'47004',41321,41322,4,0),(21258,'47005',41323,41324,4,0),(21259,'47006',41325,41326,4,0),(21260,'47007',41327,41328,4,0),(21261,'47008',41329,41330,4,0),(21262,'47009',41331,41332,4,0),(21263,'47010',41333,41334,4,0),(21264,'47011',41335,41336,4,0),(21265,'47012',41337,41338,4,0),(21266,'47013',41339,41340,4,0),(21267,'47014',41341,41342,4,0),(21268,'47015',41343,41344,4,0),(21269,'47016',41345,41346,4,0),(21270,'47017',41347,41348,4,0),(21271,'47018',41349,41350,4,0),(21272,'47100',41233,41234,4,0),(21273,'47110',40687,40688,4,0),(21274,'47111',41453,41454,4,0),(21275,'47112',41013,41014,4,0),(21276,'47113',41235,41236,4,0),(21277,'47113',41465,41466,4,0),(21278,'47114',40903,40904,4,0),(21279,'47114',41385,41386,4,0),(21280,'47114',41251,41252,4,0),(21281,'47115',40615,40616,4,0),(21282,'47115',40619,40620,4,0),(21283,'47116',41059,41060,4,0),(21284,'47120',40967,40968,4,0),(21285,'47129',40603,40604,4,0),(21286,'47129',41143,41144,4,0),(21287,'47129',41171,41172,4,0),(21288,'47129',41259,41260,4,0),(21289,'47129',40549,40550,4,0),(21290,'47130',41217,41218,4,0),(21291,'47131',41115,41116,4,0),(21292,'47131',41477,41478,4,0),(21293,'47131',40831,40832,4,0),(21294,'47131',41389,41390,4,0),(21295,'47132',41237,41238,4,0),(21296,'47132',41159,41160,4,0),(21297,'47133',41377,41378,4,0),(21298,'47133',40893,40894,4,0),(21299,'47134',41511,41512,4,0),(21300,'47134',41263,41264,4,0),(21301,'47134',41179,41180,4,0),(21302,'47134',40823,40824,4,0),(21303,'47140',40871,40872,4,0),(21304,'47140',41351,41352,4,0),(21305,'47150',41397,41398,4,0),(21306,'47151',40639,40640,4,0),(21307,'47152',41353,41354,4,0),(21308,'47153',41355,41356,4,0),(21309,'47155',41201,41202,4,0),(21310,'47160',41063,41064,4,0),(21311,'47160',40569,40570,4,0),(21312,'47161',41279,41280,4,0),(21313,'47162',40573,40574,4,0),(21314,'47164',41155,41156,4,0),(21315,'47165',40671,40672,4,0),(21316,'47166',41531,41532,4,0),(21317,'47169',40575,40576,4,0),(21318,'47169',41281,41282,4,0),(21319,'47169',40873,40874,4,0),(21320,'47170',41107,41108,4,0),(21321,'47171',40719,40720,4,0),(21322,'47172',41507,41508,4,0),(21323,'47173',40997,40998,4,0),(21324,'47175',41047,41048,4,0),(21325,'47176',40791,40792,4,0),(21326,'47177',40583,40584,4,0),(21327,'47180',41437,41438,4,0),(21328,'47181',41421,41422,4,0),(21329,'47182',40731,40732,4,0),(21330,'47183',41241,41242,4,0),(21331,'47184',40795,40796,4,0),(21332,'47185',40679,40680,4,0),(21333,'47186',40945,40946,4,0),(21334,'47186',40787,40788,4,0),(21335,'47190',41535,41536,4,0),(21336,'47191',40747,40748,4,0),(21337,'47192',40707,40708,4,0),(21338,'47193',40751,40752,4,0),(21339,'47194',40971,40972,4,0),(21340,'47194',40811,40812,4,0),(21341,'47195',40587,40588,4,0),(21342,'47196',40855,40856,4,0),(21343,'47197',41357,41358,4,0),(21344,'47198',41359,41360,4,0),(21345,'47200',41365,41366,4,0),(21346,'47209',41151,41152,4,0),(21347,'47210',40591,40592,4,0),(21348,'47219',41163,41164,4,0),(21349,'47219',41139,41140,4,0),(21350,'47219',40975,40976,4,0),(21351,'47220',41071,41072,4,0),(21352,'47230',40897,40898,4,0),(21353,'47238',40899,40900,4,0),(21354,'47238',40839,40840,4,0),(21355,'47238',40565,40566,4,0),(21356,'47239',41209,41210,4,0),(21357,'47239',41485,41486,4,0),(21358,'47239',41393,41394,4,0),(21359,'47240',41307,41308,4,0),(21360,'47250',40937,40938,4,0),(21361,'47260',40655,40656,4,0),(21362,'47270',40743,40744,4,0),(21363,'47280',40763,40764,4,0),(21364,'47281',40765,40766,4,0),(21365,'47282',41275,41276,4,0),(21366,'47283',41091,41092,4,0),(21367,'47290',40773,40774,4,0),(21368,'47300',41017,41018,4,0),(21369,'47310',40667,40668,4,0),(21370,'47311',40675,40676,4,0),(21371,'47311',40799,40800,4,0),(21372,'47312',40595,40596,4,0),(21373,'47313',41245,41246,4,0),(21374,'47313',40759,40760,4,0),(21375,'47313',41019,41020,4,0),(21376,'47313',41267,41268,4,0),(21377,'47314',40877,40878,4,0),(21378,'47314',40889,40890,4,0),(21379,'47314',41021,41022,4,0),(21380,'47315',41043,41044,4,0),(21381,'47316',41119,41120,4,0),(21382,'47316',40781,40782,4,0),(21383,'47316',41051,41052,4,0),(21384,'47316',41055,41056,4,0),(21385,'47317',41299,41300,4,0),(21386,'47317',40635,40636,4,0),(21387,'47317',41147,41148,4,0),(21388,'47317',40769,40770,4,0),(21389,'47318',41001,41002,4,0),(21390,'47318',40695,40696,4,0),(21391,'47318',41023,41024,4,0),(21392,'47319',41247,41248,4,0),(21393,'47319',41099,41100,4,0),(21394,'47320',40951,40952,4,0),(21395,'47320',41283,41284,4,0),(21396,'47328',40851,40852,4,0),(21397,'47329',40699,40700,4,0),(21398,'47329',41401,41402,4,0),(21399,'47329',41515,41516,4,0),(21400,'47330',41195,41196,4,0),(21401,'47330',41271,41272,4,0),(21402,'47331',41197,41198,4,0),(21403,'47340',41205,41206,4,0),(21404,'47350',41087,41088,4,0),(21405,'47359',41295,41296,4,0),(21406,'47359',40987,40988,4,0),(21407,'47360',41083,41084,4,0),(21408,'47400',40917,40918,4,0),(21409,'47410',40991,40992,4,0),(21410,'47418',40553,40554,4,0),(21411,'47418',40881,40882,4,0),(21412,'47418',40819,40820,4,0),(21413,'47419',40579,40580,4,0),(21414,'47419',40631,40632,4,0),(21415,'47419',41079,41080,4,0),(21416,'47420',40843,40844,4,0),(21417,'47428',33295,33296,4,0),(21418,'47430',41009,41010,4,0),(21419,'47440',40755,40756,4,0),(21420,'47440',40925,40926,4,0),(21421,'47450',41067,41068,4,0),(21422,'47451',40993,40994,4,0),(21423,'47453',41103,41104,4,0),(21424,'47454',40959,40960,4,0),(21425,'47460',17903,17904,4,0),(21426,'47461',40647,40648,4,0),(21427,'47462',40627,40628,4,0),(21428,'47463',41381,41382,4,0),(21429,'47464',40983,40984,4,0),(21430,'47465',41523,41524,4,0),(21431,'47470',40683,40684,4,0),(21432,'47480',40807,40808,4,0),(21433,'47490',41127,41128,4,0),(21434,'47491',40859,40860,4,0),(21435,'47492',40919,40920,4,0),(21436,'47492',41129,41130,4,0),(21437,'47493',41183,41184,4,0),(21438,'47493',40921,40922,4,0),(21439,'47494',40885,40886,4,0),(21440,'47494',41123,41124,4,0),(21441,'47494',40815,40816,4,0),(21442,'47494',40739,40740,4,0),(21443,'47500',40979,40980,4,0),(21444,'47509',41131,41132,4,0),(21445,'47510',40561,40562,4,0),(21446,'47511',41213,41214,4,0),(21447,'47512',40691,40692,4,0),(21448,'47513',41255,41256,4,0),(21449,'47520',40723,40724,4,0),(21450,'47529',41429,41430,4,0),(21451,'47530',41175,41176,4,0),(21452,'47600',41469,41470,4,0),(21453,'47606',40827,40828,4,0),(21454,'47606',41425,41426,4,0),(21455,'47607',40835,40836,4,0),(21456,'47607',41417,41418,4,0),(21457,'47608',41489,41490,4,0),(21458,'47608',41445,41446,4,0),(21459,'47608',40651,40652,4,0),(21460,'47609',40803,40804,4,0),(21461,'47609',41191,41192,4,0),(21462,'47609',41413,41414,4,0),(21463,'47609',41373,41374,4,0),(21464,'47610',41539,41540,4,0),(21465,'47620',41481,41482,4,0),(21466,'47630',40847,40848,4,0),(21467,'47639',41461,41462,4,0),(21468,'47640',41039,41040,4,0),(21469,'47641',40715,40716,4,0),(21470,'47650',40777,40778,4,0),(21471,'47664',40727,40728,4,0),(21472,'47670',40607,40608,4,0),(21473,'47670',40863,40864,4,0),(21474,'47671',41287,41288,4,0),(21475,'47672',41311,41312,4,0),(21476,'47673',41095,41096,4,0),(21477,'47673',41111,41112,4,0),(21478,'47674',40599,40600,4,0),(21479,'47675',41449,41450,4,0),(21480,'47675',40643,40644,4,0),(21481,'47676',41527,41528,4,0),(21482,'47680',40907,40908,4,0),(21483,'47686',40933,40934,4,0),(21484,'47687',40929,40930,4,0),(21485,'47688',40941,40942,4,0),(21486,'47689',41135,41136,4,0),(21487,'47689',40703,40704,4,0),(21488,'47689',40659,40660,4,0),(21489,'47689',41457,41458,4,0),(21490,'47690',41369,41370,4,0),(21491,'47691',40955,40956,4,0),(21492,'47692',40735,40736,4,0),(21493,'47800',40911,40912,4,0),(21494,'47801',41361,41362,4,0),(21495,'47810',41433,41434,4,0),(21496,'47811',40963,40964,4,0),(21497,'47811',41187,41188,4,0),(21498,'47812',41005,41006,4,0),(21499,'47813',40623,40624,4,0),(21500,'47813',41499,41500,4,0),(21501,'47814',40557,40558,4,0),(21502,'47814',41473,41474,4,0),(21503,'47815',41405,41406,4,0),(21504,'47815',41221,41222,4,0),(21505,'47816',40913,40914,4,0),(21506,'47816',40947,40948,4,0),(21507,'47816',41303,41304,4,0),(21508,'47820',41409,41410,4,0),(21509,'47830',41229,41230,4,0),(21510,'47831',41075,41076,4,0),(21511,'47832',40663,40664,4,0),(21512,'47840',41441,41442,4,0),(21513,'47850',41493,41494,4,0),(21514,'47851',41167,41168,4,0),(21515,'47860',41503,41504,4,0),(21516,'47862',41291,41292,4,0),(21517,'47870',41225,41226,4,0),(21518,'47880',40611,40612,4,0),(21519,'47882',40711,40712,4,0),(21520,'47883',41519,41520,4,0),(21521,'48001',41673,41674,4,0),(21522,'48002',41675,41676,4,0),(21523,'48003',41603,41604,4,0),(21524,'48003',41677,41678,4,0),(21525,'48004',41679,41680,4,0),(21526,'48005',41681,41682,4,0),(21527,'48006',41683,41684,4,0),(21528,'48007',41685,41686,4,0),(21529,'48008',41687,41688,4,0),(21530,'48009',41689,41690,4,0),(21531,'48010',41691,41692,4,0),(21532,'48011',41693,41694,4,0),(21533,'48012',41695,41696,4,0),(21534,'48013',41697,41698,4,0),(21535,'48014',41699,41700,4,0),(21536,'48015',41701,41702,4,0),(21537,'48100',41939,41940,4,0),(21538,'48110',41785,41786,4,0),(21539,'48111',41871,41872,4,0),(21540,'48112',41915,41916,4,0),(21541,'48113',41777,41778,4,0),(21542,'48114',41599,41600,4,0),(21543,'48115',41931,41932,4,0),(21544,'48116',41765,41766,4,0),(21545,'48120',41919,41920,4,0),(21546,'48120',41941,41942,4,0),(21547,'48130',41627,41628,4,0),(21548,'48140',41577,41578,4,0),(21549,'48140',41837,41838,4,0),(21550,'48141',41715,41716,4,0),(21551,'48142',41609,41610,4,0),(21552,'48143',41581,41582,4,0),(21553,'48144',42073,42074,4,0),(21554,'48145',42027,42028,4,0),(21555,'48150',42001,42002,4,0),(21556,'48160',42035,42036,4,0),(21557,'48160',41709,41710,4,0),(21558,'48170',42065,42066,4,0),(21559,'48170',41711,41712,4,0),(21560,'48180',41895,41896,4,0),(21561,'48190',42009,42010,4,0),(21562,'48191',41773,41774,4,0),(21563,'48191',42011,42012,4,0),(21564,'48192',41813,41814,4,0),(21565,'48194',41815,41816,4,0),(21566,'48195',41867,41868,4,0),(21567,'48196',41891,41892,4,0),(21568,'48200',41781,41782,4,0),(21569,'48200',41719,41720,4,0),(21570,'48210',41981,41982,4,0),(21571,'48212',41903,41904,4,0),(21572,'48213',41849,41850,4,0),(21573,'48215',41845,41846,4,0),(21574,'48220',41545,41546,4,0),(21575,'48230',41733,41734,4,0),(21576,'48240',41667,41668,4,0),(21577,'48249',41669,41670,4,0),(21578,'48250',42053,42054,4,0),(21579,'48260',41745,41746,4,0),(21580,'48269',41899,41900,4,0),(21581,'48270',41907,41908,4,0),(21582,'48276',41909,41910,4,0),(21583,'48277',41757,41758,4,0),(21584,'48278',42085,42086,4,0),(21585,'48278',41911,41912,4,0),(21586,'48280',41879,41880,4,0),(21587,'48287',41723,41724,4,0),(21588,'48288',41841,41842,4,0),(21589,'48289',41569,41570,4,0),(21590,'48289',41927,41928,4,0),(21591,'48289',41809,41810,4,0),(21592,'48291',41617,41618,4,0),(21593,'48292',41619,41620,4,0),(21594,'48300',41793,41794,4,0),(21595,'48309',41749,41750,4,0),(21596,'48310',41729,41730,4,0),(21597,'48311',41725,41726,4,0),(21598,'48311',41833,41834,4,0),(21599,'48312',41963,41964,4,0),(21600,'48313',41741,41742,4,0),(21601,'48314',41789,41790,4,0),(21602,'48315',41859,41860,4,0),(21603,'48320',41555,41556,4,0),(21604,'48330',41883,41884,4,0),(21605,'48340',41563,41564,4,0),(21606,'48348',41565,41566,4,0),(21607,'48350',41705,41706,4,0),(21608,'48360',41935,41936,4,0),(21609,'48370',41659,41660,4,0),(21610,'48380',41623,41624,4,0),(21611,'48381',41945,41946,4,0),(21612,'48382',41923,41924,4,0),(21613,'48383',41591,41592,4,0),(21614,'48390',41593,41594,4,0),(21615,'48390',41651,41652,4,0),(21616,'48391',41595,41596,4,0),(21617,'48391',41957,41958,4,0),(21618,'48392',41959,41960,4,0),(21619,'48393',41761,41762,4,0),(21620,'48394',41949,41950,4,0),(21621,'48395',42019,42020,4,0),(21622,'48410',41971,41972,4,0),(21623,'48419',41973,41974,4,0),(21624,'48450',41753,41754,4,0),(21625,'48460',42041,42042,4,0),(21626,'48480',42069,42070,4,0),(21627,'48480',41605,41606,4,0),(21628,'48490',42031,42032,4,0),(21629,'48498',41585,41586,4,0),(21630,'48498',41573,41574,4,0),(21631,'48498',42043,42044,4,0),(21632,'48499',41587,41588,4,0),(21633,'48499',42077,42078,4,0),(21634,'48500',41549,41550,4,0),(21635,'48508',42081,42082,4,0),(21636,'48510',42047,42048,4,0),(21637,'48520',42049,42050,4,0),(21638,'48530',41977,41978,4,0),(21639,'48540',41551,41552,4,0),(21640,'48550',41953,41954,4,0),(21641,'48600',42005,42006,4,0),(21642,'48610',42037,42038,4,0),(21643,'48620',41985,41986,4,0),(21644,'48620',41819,41820,4,0),(21645,'48620',41887,41888,4,0),(21646,'48630',41821,41822,4,0),(21647,'48640',41655,41656,4,0),(21648,'48650',41643,41644,4,0),(21649,'48700',41967,41968,4,0),(21650,'48710',41663,41664,4,0),(21651,'48800',41631,41632,4,0),(21652,'48810',41559,41560,4,0),(21653,'48820',41825,41826,4,0),(21654,'48830',41827,41828,4,0),(21655,'48840',41829,41830,4,0),(21656,'48850',42057,42058,4,0),(21657,'48860',42059,42060,4,0),(21658,'48869',42013,42014,4,0),(21659,'48869',42061,42062,4,0),(21660,'48870',42015,42016,4,0),(21661,'48879',41613,41614,4,0),(21662,'48880',42023,42024,4,0),(21663,'48890',41853,41854,4,0),(21664,'48891',41855,41856,4,0),(21665,'48895',41863,41864,4,0),(21666,'48901',41635,41636,4,0),(21667,'48902',41637,41638,4,0),(21668,'48903',41639,41640,4,0),(21669,'48910',41997,41998,4,0),(21670,'48920',41989,41990,4,0),(21671,'48930',41797,41798,4,0),(21672,'48940',41875,41876,4,0),(21673,'48950',41737,41738,4,0),(21674,'48960',41769,41770,4,0),(21675,'48970',41647,41648,4,0),(21676,'48980',41993,41994,4,0),(21677,'48990',41799,41800,4,0),(21678,'48991',41801,41802,4,0),(21679,'48992',41803,41804,4,0),(21680,'48993',41805,41806,4,0),(21681,'49001',43337,43338,4,0),(21682,'49002',43339,43340,4,0),(21683,'49003',43341,43342,4,0),(21684,'49004',43343,43344,4,0),(21685,'49005',43345,43346,4,0),(21686,'49006',43347,43348,4,0),(21687,'49007',43349,43350,4,0),(21688,'49008',43351,43352,4,0),(21689,'49009',43353,43354,4,0),(21690,'49010',43355,43356,4,0),(21691,'49011',43357,43358,4,0),(21692,'49012',43359,43360,4,0),(21693,'49013',43361,43362,4,0),(21694,'49014',43363,43364,4,0),(21695,'49015',43365,43366,4,0),(21696,'49016',43367,43368,4,0),(21697,'49017',43369,43370,4,0),(21698,'49018',43371,43372,4,0),(21699,'49019',43373,43374,4,0),(21700,'49020',43375,43376,4,0),(21701,'49021',43377,43378,4,0),(21702,'49022',43379,43380,4,0),(21703,'49023',43381,43382,4,0),(21704,'49024',43383,43384,4,0),(21705,'49025',43385,43386,4,0),(21706,'49026',43387,43388,4,0),(21707,'49027',43389,43390,4,0),(21708,'49028',43391,43392,4,0),(21709,'49029',43393,43394,4,0),(21710,'49030',43395,43396,4,0),(21711,'49031',43397,43398,4,0),(21712,'49032',43399,43400,4,0),(21713,'49100',43269,43270,4,0),(21714,'49110',42279,42280,4,0),(21715,'49120',42631,42632,4,0),(21716,'49121',42639,42640,4,0),(21717,'49121',42647,42648,4,0),(21718,'49122',43101,43102,4,0),(21719,'49123',42185,42186,4,0),(21720,'49124',42155,42156,4,0),(21721,'49125',42291,42292,4,0),(21722,'49126',43215,43216,4,0),(21723,'49126',42147,42148,4,0),(21724,'49127',42819,42820,4,0),(21725,'49127',42275,42276,4,0),(21726,'49128',42247,42248,4,0),(21727,'49129',43301,43302,4,0),(21728,'49129',42989,42990,4,0),(21729,'49130',42581,42582,4,0),(21730,'49131',43239,43240,4,0),(21731,'49132',43273,43274,4,0),(21732,'49133',43153,43154,4,0),(21733,'49134',43223,43224,4,0),(21734,'49135',42961,42962,4,0),(21735,'49135',43169,43170,4,0),(21736,'49135',42905,42906,4,0),(21737,'49136',43197,43198,4,0),(21738,'49137',43309,43310,4,0),(21739,'49137',43199,43200,4,0),(21740,'49140',43079,43080,4,0),(21741,'49141',42379,42380,4,0),(21742,'49142',42735,42736,4,0),(21743,'49143',42807,42808,4,0),(21744,'49144',42965,42966,4,0),(21745,'49145',42797,42798,4,0),(21746,'49145',43039,43040,4,0),(21747,'49146',42721,42722,4,0),(21748,'49147',42723,42724,4,0),(21749,'49148',42847,42848,4,0),(21750,'49148',42693,42694,4,0),(21751,'49149',42651,42652,4,0),(21752,'49150',42663,42664,4,0),(21753,'49151',42131,42132,4,0),(21754,'49151',42263,42264,4,0),(21755,'49151',42491,42492,4,0),(21756,'49152',43075,43076,4,0),(21757,'49153',43161,43162,4,0),(21758,'49154',42347,42348,4,0),(21759,'49155',42527,42528,4,0),(21760,'49156',42507,42508,4,0),(21761,'49157',42561,42562,4,0),(21762,'49158',43211,43212,4,0),(21763,'49159',43287,43288,4,0),(21764,'49160',42251,42252,4,0),(21765,'49161',43041,43042,4,0),(21766,'49162',42747,42748,4,0),(21767,'49162',42127,42128,4,0),(21768,'49163',42603,42604,4,0),(21769,'49164',42705,42706,4,0),(21770,'49164',43173,43174,4,0),(21771,'49165',42707,42708,4,0),(21772,'49165',43175,43176,4,0),(21773,'49166',43219,43220,4,0),(21774,'49167',42709,42710,4,0),(21775,'49170',42351,42352,4,0),(21776,'49171',42777,42778,4,0),(21777,'49172',42779,42780,4,0),(21778,'49173',42781,42782,4,0),(21779,'49174',42783,42784,4,0),(21780,'49174',42427,42428,4,0),(21781,'49176',42765,42766,4,0),(21782,'49177',42109,42110,4,0),(21783,'49177',42659,42660,4,0),(21784,'49177',42767,42768,4,0),(21785,'49177',42121,42122,4,0),(21786,'49178',42769,42770,4,0),(21787,'49180',42117,42118,4,0),(21788,'49181',43313,43314,4,0),(21789,'49182',43005,43006,4,0),(21790,'49183',43007,43008,4,0),(21791,'49190',42679,42680,4,0),(21792,'49191',42283,42284,4,0),(21793,'49191',42517,42518,4,0),(21794,'49191',42761,42762,4,0),(21795,'49191',42681,42682,4,0),(21796,'49192',42531,42532,4,0),(21797,'49192',42923,42924,4,0),(21798,'49192',43129,43130,4,0),(21799,'49193',43401,43402,4,0),(21800,'49200',42189,42190,4,0),(21801,'49210',42123,42124,4,0),(21802,'49211',42191,42192,4,0),(21803,'49211',42255,42256,4,0),(21804,'49211',42953,42954,4,0),(21805,'49211',42937,42938,4,0),(21806,'49212',42713,42714,4,0),(21807,'49213',42383,42384,4,0),(21808,'49214',42385,42386,4,0),(21809,'49215',42193,42194,4,0),(21810,'49215',42557,42558,4,0),(21811,'49216',42195,42196,4,0),(21812,'49216',42429,42430,4,0),(21813,'49220',42389,42390,4,0),(21814,'49230',43277,43278,4,0),(21815,'49231',43279,43280,4,0),(21816,'49232',43281,43282,4,0),(21817,'49240',43283,43284,4,0),(21818,'49250',43297,43298,4,0),(21819,'49250',43189,43190,4,0),(21820,'49251',42139,42140,4,0),(21821,'49251',42487,42488,4,0),(21822,'49252',43097,43098,4,0),(21823,'49253',42685,42686,4,0),(21824,'49254',42655,42656,4,0),(21825,'49255',42197,42198,4,0),(21826,'49260',42199,42200,4,0),(21827,'49270',42785,42786,4,0),(21828,'49271',42787,42788,4,0),(21829,'49272',42789,42790,4,0),(21830,'49280',42791,42792,4,0),(21831,'49281',42793,42794,4,0),(21832,'49300',42855,42856,4,0),(21833,'49310',42641,42642,4,0),(21834,'49317',42295,42296,4,0),(21835,'49317',42597,42598,4,0),(21836,'49318',42773,42774,4,0),(21837,'49318',42915,42916,4,0),(21838,'49318',42643,42644,4,0),(21839,'49319',42599,42600,4,0),(21840,'49319',42697,42698,4,0),(21841,'49320',42739,42740,4,0),(21842,'49320',42927,42928,4,0),(21843,'49321',42741,42742,4,0),(21844,'49321',42929,42930,4,0),(21845,'49322',42941,42942,4,0),(21846,'49322',42743,42744,4,0),(21847,'49323',42943,42944,4,0),(21848,'49324',42159,42160,4,0),(21849,'49324',42945,42946,4,0),(21850,'49325',42161,42162,4,0),(21851,'49325',42297,42298,4,0),(21852,'49326',42917,42918,4,0),(21853,'49327',42635,42636,4,0),(21854,'49327',42331,42332,4,0),(21855,'49327',43121,43122,4,0),(21856,'49330',42919,42920,4,0),(21857,'49330',43145,43146,4,0),(21858,'49331',42231,42232,4,0),(21859,'49331',43147,43148,4,0),(21860,'49332',42235,42236,4,0),(21861,'49332',43149,43150,4,0),(21862,'49333',43049,43050,4,0),(21863,'49333',42863,42864,4,0),(21864,'49333',43265,43266,4,0),(21865,'49334',42393,42394,4,0),(21866,'49335',42395,42396,4,0),(21867,'49335',42399,42400,4,0),(21868,'49336',42729,42730,4,0),(21869,'49337',42731,42732,4,0),(21870,'49337',42401,42402,4,0),(21871,'49340',42521,42522,4,0),(21872,'49341',42367,42368,4,0),(21873,'49341',42699,42700,4,0),(21874,'49342',42369,42370,4,0),(21875,'49342',42947,42948,4,0),(21876,'49343',42523,42524,4,0),(21877,'49344',42701,42702,4,0),(21878,'49345',42371,42372,4,0),(21879,'49346',42373,42374,4,0),(21880,'49347',42375,42376,4,0),(21881,'49348',42163,42164,4,0),(21882,'49349',42949,42950,4,0),(21883,'49350',42461,42462,4,0),(21884,'49352',42463,42464,4,0),(21885,'49357',42931,42932,4,0),(21886,'49357',42981,42982,4,0),(21887,'49358',43115,43116,4,0),(21888,'49358',42983,42984,4,0),(21889,'49359',43117,43118,4,0),(21890,'49359',42985,42986,4,0),(21891,'49360',42465,42466,4,0),(21892,'49361',42467,42468,4,0),(21893,'49362',42469,42470,4,0),(21894,'49390',42933,42934,4,0),(21895,'49390',42857,42858,4,0),(21896,'49391',42751,42752,4,0),(21897,'49392',42753,42754,4,0),(21898,'49393',42859,42860,4,0),(21899,'49394',42301,42302,4,0),(21900,'49394',42901,42902,4,0),(21901,'49395',42303,42304,4,0),(21902,'49395',42471,42472,4,0),(21903,'49396',42305,42306,4,0),(21904,'49400',42449,42450,4,0),(21905,'49410',42441,42442,4,0),(21906,'49419',42267,42268,4,0),(21907,'49420',43125,43126,4,0),(21908,'49430',43193,43194,4,0),(21909,'49440',42243,42244,4,0),(21910,'49450',43141,43142,4,0),(21911,'49500',42095,42096,4,0),(21912,'49510',37733,37734,4,0),(21913,'49511',37735,37736,4,0),(21914,'49512',37737,37738,4,0),(21915,'49512',42479,42480,4,0),(21916,'49512',42887,42888,4,0),(21917,'49513',37739,37740,4,0),(21918,'49513',42957,42958,4,0),(21919,'49514',37741,37742,4,0),(21920,'49514',42097,42098,4,0),(21921,'49514',42815,42816,4,0),(21922,'49515',43329,43330,4,0),(21923,'49515',42893,42894,4,0),(21924,'49516',43105,43106,4,0),(21925,'49517',43107,43108,4,0),(21926,'49517',43331,43332,4,0),(21927,'49517',42099,42100,4,0),(21928,'49518',42101,42102,4,0),(21929,'49518',42895,42896,4,0),(21930,'49518',43109,43110,4,0),(21931,'49519',43111,43112,4,0),(21932,'49519',42889,42890,4,0),(21933,'49520',42411,42412,4,0),(21934,'49521',42413,42414,4,0),(21935,'49522',42565,42566,4,0),(21936,'49523',43015,43016,4,0),(21937,'49524',43017,43018,4,0),(21938,'49524',43333,43334,4,0),(21939,'49525',42897,42898,4,0),(21940,'49525',43019,43020,4,0),(21941,'49530',42313,42314,4,0),(21942,'49539',42475,42476,4,0),(21943,'49539',43235,43236,4,0),(21944,'49539',42113,42114,4,0),(21945,'49540',42405,42406,4,0),(21946,'49540',42545,42546,4,0),(21947,'49540',42725,42726,4,0),(21948,'49541',42539,42540,4,0),(21949,'49542',43157,43158,4,0),(21950,'49542',42481,42482,4,0),(21951,'49543',42541,42542,4,0),(21952,'49550',42407,42408,4,0),(21953,'49559',42483,42484,4,0),(21954,'49560',42567,42568,4,0),(21955,'49561',42569,42570,4,0),(21956,'49562',43291,43292,4,0),(21957,'49563',43293,43294,4,0),(21958,'49570',42549,42550,4,0),(21959,'49571',42511,42512,4,0),(21960,'49572',42513,42514,4,0),(21961,'49573',42551,42552,4,0),(21962,'49574',42553,42554,4,0),(21963,'49580',42801,42802,4,0),(21964,'49582',42803,42804,4,0),(21965,'49583',42827,42828,4,0),(21966,'49590',42611,42612,4,0),(21967,'49590',42423,42424,4,0),(21968,'49591',42909,42910,4,0),(21969,'49592',43011,43012,4,0),(21970,'49592',42911,42912,4,0),(21971,'49593',42591,42592,4,0),(21972,'49594',42593,42594,4,0),(21973,'49600',42181,42182,4,0),(21974,'49610',43059,43060,4,0),(21975,'49610',42167,42168,4,0),(21976,'49618',42437,42438,4,0),(21977,'49618',43207,43208,4,0),(21978,'49618',43061,43062,4,0),(21979,'49619',42169,42170,4,0),(21980,'49619',43063,43064,4,0),(21981,'49620',43031,43032,4,0),(21982,'49621',42501,42502,4,0),(21983,'49621',43065,43066,4,0),(21984,'49622',43067,43068,4,0),(21985,'49622',42869,42870,4,0),(21986,'49622',42881,42882,4,0),(21987,'49622',42215,42216,4,0),(21988,'49622',42503,42504,4,0),(21989,'49623',42883,42884,4,0),(21990,'49623',43247,43248,4,0),(21991,'49624',43053,43054,4,0),(21992,'49624',42623,42624,4,0),(21993,'49625',43055,43056,4,0),(21994,'49626',42237,42238,4,0),(21995,'49626',43035,43036,4,0),(21996,'49626',42619,42620,4,0),(21997,'49627',42239,42240,4,0),(21998,'49628',43001,43002,4,0),(21999,'49629',42211,42212,4,0),(22000,'49630',43231,43232,4,0),(22001,'49638',42877,42878,4,0),(22002,'49638',42851,42852,4,0),(22003,'49639',42323,42324,4,0),(22004,'49639',43083,43084,4,0),(22005,'49639',42873,42874,4,0),(22006,'49640',42287,42288,4,0),(22007,'49650',42977,42978,4,0),(22008,'49660',43255,43256,4,0),(22009,'49660',42271,42272,4,0),(22010,'49670',42445,42446,4,0),(22011,'49680',43137,43138,4,0),(22012,'49680',42997,42998,4,0),(22013,'49690',42971,42972,4,0),(22014,'49691',42973,42974,4,0),(22015,'49692',42607,42608,4,0),(22016,'49693',42667,42668,4,0),(22017,'49693',42419,42420,4,0),(22018,'49694',42587,42588,4,0),(22019,'49695',43203,43204,4,0),(22020,'49696',42151,42152,4,0),(22021,'49696',42105,42106,4,0),(22022,'49696',43045,43046,4,0),(22023,'49697',43249,43250,4,0),(22024,'49697',42717,42718,4,0),(22025,'49697',42675,42676,4,0),(22026,'49697',43321,43322,4,0),(22027,'49697',42865,42866,4,0),(22028,'49698',42207,42208,4,0),(22029,'49698',42433,42434,4,0),(22030,'49698',43251,43252,4,0),(22031,'49698',42219,42220,4,0),(22032,'49699',42627,42628,4,0),(22033,'49699',43027,43028,4,0),(22034,'49699',43257,43258,4,0),(22035,'49699',42135,42136,4,0),(22036,'49700',42317,42318,4,0),(22037,'49706',42319,42320,4,0),(22038,'49707',43023,43024,4,0),(22039,'49708',42259,42260,4,0),(22040,'49708',43261,43262,4,0),(22041,'49709',42227,42228,4,0),(22042,'49710',42339,42340,4,0),(22043,'49714',42457,42458,4,0),(22044,'49715',42359,42360,4,0),(22045,'49716',42143,42144,4,0),(22046,'49717',42993,42994,4,0),(22047,'49717',42335,42336,4,0),(22048,'49718',42615,42616,4,0),(22049,'49719',43243,43244,4,0),(22050,'49719',42343,42344,4,0),(22051,'49720',42353,42354,4,0),(22052,'49721',42363,42364,4,0),(22053,'49722',42355,42356,4,0),(22054,'49730',42327,42328,4,0),(22055,'49731',42689,42690,4,0),(22056,'49740',42495,42496,4,0),(22057,'49741',42497,42498,4,0),(22058,'49742',42583,42584,4,0),(22059,'49743',42967,42968,4,0),(22060,'49750',43071,43072,4,0),(22061,'49751',42203,42204,4,0),(22062,'49760',42173,42174,4,0),(22063,'49760',43325,43326,4,0),(22064,'49770',43179,43180,4,0),(22065,'49780',42823,42824,4,0),(22066,'49781',42535,42536,4,0),(22067,'49782',43181,43182,4,0),(22068,'49783',42309,42310,4,0),(22069,'49783',42573,42574,4,0),(22070,'49800',43087,43088,4,0),(22071,'49810',42671,42672,4,0),(22072,'49820',43185,43186,4,0),(22073,'49820',43089,43090,4,0),(22074,'49830',42177,42178,4,0),(22075,'49831',42223,42224,4,0),(22076,'49832',42577,42578,4,0),(22077,'49833',42453,42454,4,0),(22078,'49834',42091,42092,4,0),(22079,'49835',42843,42844,4,0),(22080,'49836',43091,43092,4,0),(22081,'49840',43165,43166,4,0),(22082,'49850',42811,42812,4,0),(22083,'49860',43227,43228,4,0),(22084,'49870',43317,43318,4,0),(22085,'49871',43305,43306,4,0),(22086,'49880',42757,42758,4,0),(22087,'49881',43093,43094,4,0),(22088,'49882',43133,43134,4,0),(22089,'50001',44647,44648,4,0),(22090,'50002',44649,44650,4,0),(22091,'50003',44651,44652,4,0),(22092,'50004',44653,44654,4,0),(22093,'50005',44655,44656,4,0),(22094,'50006',44657,44658,4,0),(22095,'50007',44659,44660,4,0),(22096,'50008',44661,44662,4,0),(22097,'50009',44663,44664,4,0),(22098,'50010',44665,44666,4,0),(22099,'50011',44667,44668,4,0),(22100,'50012',44669,44670,4,0),(22101,'50013',44671,44672,4,0),(22102,'50014',44673,44674,4,0),(22103,'50015',44675,44676,4,0),(22104,'50016',44677,44678,4,0),(22105,'50017',44679,44680,4,0),(22106,'50018',44681,44682,4,0),(22107,'50019',44683,44684,4,0),(22108,'50020',44685,44686,4,0),(22109,'50021',44687,44688,4,0),(22110,'50022',44689,44690,4,0),(22111,'50057',44691,44692,4,0),(22112,'50059',44693,44694,4,0),(22113,'50100',43933,43934,4,0),(22114,'50108',43497,43498,4,0),(22115,'50109',43501,43502,4,0),(22116,'50120',44695,44696,4,0),(22117,'50130',43577,43578,4,0),(22118,'50131',43983,43984,4,0),(22119,'50132',43747,43748,4,0),(22120,'50133',43493,43494,4,0),(22121,'50134',43961,43962,4,0),(22122,'50134',44379,44380,4,0),(22123,'50135',44101,44102,4,0),(22124,'50135',43863,43864,4,0),(22125,'50136',43995,43996,4,0),(22126,'50137',44319,44320,4,0),(22127,'50138',44559,44560,4,0),(22128,'50139',44697,44698,4,0),(22129,'50140',43553,43554,4,0),(22130,'50141',43925,43926,4,0),(22131,'50142',43859,43860,4,0),(22132,'50143',44297,44298,4,0),(22133,'50143',44165,44166,4,0),(22134,'50144',44129,44130,4,0),(22135,'50150',43901,43902,4,0),(22136,'50151',44039,44040,4,0),(22137,'50152',44113,44114,4,0),(22138,'50153',44615,44616,4,0),(22139,'50154',44515,44516,4,0),(22140,'50155',43423,43424,4,0),(22141,'50156',44623,44624,4,0),(22142,'50160',43991,43992,4,0),(22143,'50160',43941,43942,4,0),(22144,'50161',44273,44274,4,0),(22145,'50162',44607,44608,4,0),(22146,'50163',43835,43836,4,0),(22147,'50164',44125,44126,4,0),(22148,'50170',43947,43948,4,0),(22149,'50170',44105,44106,4,0),(22150,'50171',43949,43950,4,0),(22151,'50172',43473,43474,4,0),(22152,'50173',44225,44226,4,0),(22153,'50174',44595,44596,4,0),(22154,'50175',44249,44250,4,0),(22155,'50177',43633,43634,4,0),(22156,'50178',43929,43930,4,0),(22157,'50180',44547,44548,4,0),(22158,'50190',44699,44700,4,0),(22159,'50191',44701,44702,4,0),(22160,'50193',44703,44704,4,0),(22161,'50194',44705,44706,4,0),(22162,'50195',44265,44266,4,0),(22163,'50196',43943,43944,4,0),(22164,'50200',43549,43550,4,0),(22165,'50210',44219,44220,4,0),(22166,'50211',43703,43704,4,0),(22167,'50212',43685,43686,4,0),(22168,'50213',44221,44222,4,0),(22169,'50213',43735,43736,4,0),(22170,'50213',44139,44140,4,0),(22171,'50214',43681,43682,4,0),(22172,'50215',44161,44162,4,0),(22173,'50216',44603,44604,4,0),(22174,'50217',44511,44512,4,0),(22175,'50219',43953,43954,4,0),(22176,'50219',44179,44180,4,0),(22177,'50219',44567,44568,4,0),(22178,'50220',43533,43534,4,0),(22179,'50227',44431,44432,4,0),(22180,'50228',43649,43650,4,0),(22181,'50229',43613,43614,4,0),(22182,'50230',43485,43486,4,0),(22183,'50236',43905,43906,4,0),(22184,'50237',43917,43918,4,0),(22185,'50238',43885,43886,4,0),(22186,'50238',43677,43678,4,0),(22187,'50239',43629,43630,4,0),(22188,'50239',43807,43808,4,0),(22189,'50239',43755,43756,4,0),(22190,'50240',44155,44156,4,0),(22191,'50240',43653,43654,4,0),(22192,'50246',43625,43626,4,0),(22193,'50247',44157,44158,4,0),(22194,'50248',44415,44416,4,0),(22195,'50249',44417,44418,4,0),(22196,'50250',43909,43910,4,0),(22197,'50257',43889,43890,4,0),(22198,'50258',44245,44246,4,0),(22199,'50258',43921,43922,4,0),(22200,'50259',43521,43522,4,0),(22201,'50259',44301,44302,4,0),(22202,'50260',44147,44148,4,0),(22203,'50266',43525,43526,4,0),(22204,'50267',44109,44110,4,0),(22205,'50268',44523,44524,4,0),(22206,'50268',43673,43674,4,0),(22207,'50268',44327,44328,4,0),(22208,'50269',44475,44476,4,0),(22209,'50269',43731,43732,4,0),(22210,'50269',44199,44200,4,0),(22211,'50270',44343,44344,4,0),(22212,'50280',43669,43670,4,0),(22213,'50290',43815,43816,4,0),(22214,'50291',44135,44136,4,0),(22215,'50292',43723,43724,4,0),(22216,'50293',44471,44472,4,0),(22217,'50294',44027,44028,4,0),(22218,'50294',44371,44372,4,0),(22219,'50295',44353,44354,4,0),(22220,'50295',44043,44044,4,0),(22221,'50296',43573,43574,4,0),(22222,'50296',44535,44536,4,0),(22223,'50296',44289,44290,4,0),(22224,'50297',43897,43898,4,0),(22225,'50297',44293,44294,4,0),(22226,'50297',43569,43570,4,0),(22227,'50298',44285,44286,4,0),(22228,'50299',44261,44262,4,0),(22229,'50299',43659,43660,4,0),(22230,'50299',44361,44362,4,0),(22231,'50300',43661,43662,4,0),(22232,'50310',44633,44634,4,0),(22233,'50311',44487,44488,4,0),(22234,'50312',43715,43716,4,0),(22235,'50313',43513,43514,4,0),(22236,'50314',43743,43744,4,0),(22237,'50315',44065,44066,4,0),(22238,'50316',44499,44500,4,0),(22239,'50316',43585,43586,4,0),(22240,'50316',43597,43598,4,0),(22241,'50320',43797,43798,4,0),(22242,'50321',43799,43800,4,0),(22243,'50322',43801,43802,4,0),(22244,'50323',43803,43804,4,0),(22245,'50324',44391,44392,4,0),(22246,'50325',44479,44480,4,0),(22247,'50326',43751,43752,4,0),(22248,'50330',44121,44122,4,0),(22249,'50331',44237,44238,4,0),(22250,'50331',44089,44090,4,0),(22251,'50331',44357,44358,4,0),(22252,'50332',43581,43582,4,0),(22253,'50333',44599,44600,4,0),(22254,'50334',44411,44412,4,0),(22255,'50335',43663,43664,4,0),(22256,'50336',43665,43666,4,0),(22257,'50340',44081,44082,4,0),(22258,'50341',44229,44230,4,0),(22259,'50342',44257,44258,4,0),(22260,'50343',44575,44576,4,0),(22261,'50344',44151,44152,4,0),(22262,'50345',43441,43442,4,0),(22263,'50346',43699,43700,4,0),(22264,'50347',43411,43412,4,0),(22265,'50348',43545,43546,4,0),(22266,'50351',43767,43768,4,0),(22267,'50360',43771,43772,4,0),(22268,'50366',44233,44234,4,0),(22269,'50366',44085,44086,4,0),(22270,'50366',43565,43566,4,0),(22271,'50366',44183,44184,4,0),(22272,'50367',44339,44340,4,0),(22273,'50367',43965,43966,4,0),(22274,'50368',43719,43720,4,0),(22275,'50368',44637,44638,4,0),(22276,'50368',44061,44062,4,0),(22277,'50368',44491,44492,4,0),(22278,'50369',43987,43988,4,0),(22279,'50369',43509,43510,4,0),(22280,'50369',44203,44204,4,0),(22281,'50370',44619,44620,4,0),(22282,'50371',44555,44556,4,0),(22283,'50372',44551,44552,4,0),(22284,'50373',43969,43970,4,0),(22285,'50373',43873,43874,4,0),(22286,'50373',44403,44404,4,0),(22287,'50373',43589,43590,4,0),(22288,'50374',44483,44484,4,0),(22289,'50374',43469,43470,4,0),(22290,'50374',44543,44544,4,0),(22291,'50375',43407,43408,4,0),(22292,'50390',43869,43870,4,0),(22293,'50391',44143,44144,4,0),(22294,'50391',44591,44592,4,0),(22295,'50400',43689,43690,4,0),(22296,'50408',43419,43420,4,0),(22297,'50409',43759,43760,4,0),(22298,'50410',43763,43764,4,0),(22299,'50420',43655,43656,4,0),(22300,'50430',44093,44094,4,0),(22301,'50440',44169,44170,4,0),(22302,'50441',43621,43622,4,0),(22303,'50450',44173,44174,4,0),(22304,'50460',44011,44012,4,0),(22305,'50461',43477,43478,4,0),(22306,'50470',43811,43812,4,0),(22307,'50480',44253,44254,4,0),(22308,'50481',43431,43432,4,0),(22309,'50482',44641,44642,4,0),(22310,'50490',44629,44630,4,0),(22311,'50490',44587,44588,4,0),(22312,'50491',43847,43848,4,0),(22313,'50491',43557,43558,4,0),(22314,'50491',44349,44350,4,0),(22315,'50500',44457,44458,4,0),(22316,'50510',44211,44212,4,0),(22317,'50511',44077,44078,4,0),(22318,'50512',44625,44626,4,0),(22319,'50512',44503,44504,4,0),(22320,'50513',44395,44396,4,0),(22321,'50513',44459,44460,4,0),(22322,'50513',44583,44584,4,0),(22323,'50513',43893,43894,4,0),(22324,'50513',44019,44020,4,0),(22325,'50514',44461,44462,4,0),(22326,'50520',44057,44058,4,0),(22327,'50529',43855,43856,4,0),(22328,'50529',44309,44310,4,0),(22329,'50529',43445,43446,4,0),(22330,'50530',44215,44216,4,0),(22331,'50540',44175,44176,4,0),(22332,'50540',43617,43618,4,0),(22333,'50546',44453,44454,4,0),(22334,'50546',43505,43506,4,0),(22335,'50546',43637,43638,4,0),(22336,'50547',43641,43642,4,0),(22337,'50547',44449,44450,4,0),(22338,'50548',43789,43790,4,0),(22339,'50549',44069,44070,4,0),(22340,'50549',43449,43450,4,0),(22341,'50550',44073,44074,4,0),(22342,'50560',43415,43416,4,0),(22343,'50561',43605,43606,4,0),(22344,'50562',43851,43852,4,0),(22345,'50570',43427,43428,4,0),(22346,'50580',44579,44580,4,0),(22347,'50581',44003,44004,4,0),(22348,'50582',43999,44000,4,0),(22349,'50582',44643,44644,4,0),(22350,'50583',44519,44520,4,0),(22351,'50584',44383,44384,4,0),(22352,'50590',43817,43818,4,0),(22353,'50590',43517,43518,4,0),(22354,'50591',43461,43462,4,0),(22355,'50600',43775,43776,4,0),(22356,'50610',44047,44048,4,0),(22357,'50610',43973,43974,4,0),(22358,'50611',43793,43794,4,0),(22359,'50611',43821,43822,4,0),(22360,'50612',44421,44422,4,0),(22361,'50612',43975,43976,4,0),(22362,'50613',43707,43708,4,0),(22363,'50614',43529,43530,4,0),(22364,'50614',44323,44324,4,0),(22365,'50615',44049,44050,4,0),(22366,'50615',44563,44564,4,0),(22367,'50616',44277,44278,4,0),(22368,'50616',44097,44098,4,0),(22369,'50617',43777,43778,4,0),(22370,'50619',43779,43780,4,0),(22371,'50619',43593,43594,4,0),(22372,'50619',44241,44242,4,0),(22373,'50619',44035,44036,4,0),(22374,'50619',43541,43542,4,0),(22375,'50620',44707,44708,4,0),(22376,'50629',44435,44436,4,0),(22377,'50630',43435,43436,4,0),(22378,'50637',44335,44336,4,0),(22379,'50638',43645,43646,4,0),(22380,'50639',43843,43844,4,0),(22381,'50640',44031,44032,4,0),(22382,'50641',43609,43610,4,0),(22383,'50650',43877,43878,4,0),(22384,'50660',44465,44466,4,0),(22385,'50667',44313,44314,4,0),(22386,'50668',44315,44316,4,0),(22387,'50669',44467,44468,4,0),(22388,'50670',44365,44366,4,0),(22389,'50678',44527,44528,4,0),(22390,'50679',44367,44368,4,0),(22391,'50679',43979,43980,4,0),(22392,'50680',44439,44440,4,0),(22393,'50682',44425,44426,4,0),(22394,'50683',43537,43538,4,0),(22395,'50683',44117,44118,4,0),(22396,'50683',44427,44428,4,0),(22397,'50684',44375,44376,4,0),(22398,'50685',44193,44194,4,0),(22399,'50685',44023,44024,4,0),(22400,'50685',43561,43562,4,0),(22401,'50685',44539,44540,4,0),(22402,'50686',29025,29026,4,0),(22403,'50686',44195,44196,4,0),(22404,'50687',43913,43914,4,0),(22405,'50687',44007,44008,4,0),(22406,'50688',44015,44016,4,0),(22407,'50689',44531,44532,4,0),(22408,'50689',44441,44442,4,0),(22409,'50690',44269,44270,4,0),(22410,'50691',43457,43458,4,0),(22411,'50692',44709,44710,4,0),(22412,'50692',43937,43938,4,0),(22413,'50693',44507,44508,4,0),(22414,'50694',43781,43782,4,0),(22415,'50695',43601,43602,4,0),(22416,'50696',43711,43712,4,0),(22417,'50696',44443,44444,4,0),(22418,'50697',44445,44446,4,0),(22419,'50700',43693,43694,4,0),(22420,'50709',43695,43696,4,0),(22421,'50710',44053,44054,4,0),(22422,'50720',44711,44712,4,0),(22423,'50720',44345,44346,4,0),(22424,'50730',43785,43786,4,0),(22425,'50740',43865,43866,4,0),(22426,'50750',44281,44282,4,0),(22427,'50760',44571,44572,4,0),(22428,'50770',44331,44332,4,0),(22429,'50780',44407,44408,4,0),(22430,'50781',43453,43454,4,0),(22431,'50782',43739,43740,4,0),(22432,'50783',43481,43482,4,0),(22433,'50784',43957,43958,4,0),(22434,'50786',43881,43882,4,0),(22435,'50790',43825,43826,4,0),(22436,'50791',43827,43828,4,0),(22437,'50792',43727,43728,4,0),(22438,'50793',43831,43832,4,0),(22439,'50794',44207,44208,4,0),(22440,'50795',43839,43840,4,0),(22441,'50800',44719,44720,4,0),(22442,'50810',44721,44722,4,0),(22443,'50820',44713,44714,4,0),(22444,'50830',44611,44612,4,0),(22445,'50830',43437,43438,4,0),(22446,'50830',44723,44724,4,0),(22447,'50840',44387,44388,4,0),(22448,'50850',44189,44190,4,0),(22449,'50850',44399,44400,4,0),(22461,'73820',36595,36596,4,0),(22462,'90007',44715,44716,4,0),(22463,'España exento',46606,47619,1,506),(22464,'Las Palmas',47205,47618,2,206),(22465,'Santa Cruz de Tenerife',46607,47204,2,298),(22466,'Agaete',47612,47617,3,2),(22467,'Agüimes',47600,47611,3,5),(22468,'Antigua',47588,47599,3,5),(22469,'Arrecife',47584,47587,3,1),(22470,'Artenara',47580,47583,3,1),(22471,'Arucas',47560,47579,3,9),(22472,'Betancuria',47556,47559,3,1),(22473,'Firgas',47546,47555,3,4),(22474,'Gáldar',47530,47545,3,7),(22475,'Haría',47520,47529,3,4),(22476,'Ingenio',47510,47519,3,4),(22477,'La Aldea de San Nicolás',47498,47509,3,5),(22478,'La Oliva',47486,47497,3,5),(22479,'Las Palmas de Gran Canaria',47442,47485,3,21),(22480,'Mogán',47426,47441,3,7),(22481,'Moya',47414,47425,3,5),(22482,'Pájara',47404,47413,3,4),(22483,'Puerto del Rosario',47390,47403,3,6),(22484,'San Bartolomé',47384,47389,3,2),(22485,'San Bartolomé de Tirajana',47358,47383,3,12),(22486,'Santa Brígida',47346,47357,3,5),(22487,'Santa Lucía de Tirajana',47338,47345,3,3),(22488,'Santa María de Guía de Gran Canaria',47328,47337,3,4),(22489,'Teguise',47306,47327,3,10),(22490,'Tejeda',47300,47305,3,2),(22491,'Telde',47274,47299,3,12),(22492,'Teror',47262,47273,3,5),(22493,'Tías',47254,47261,3,3),(22494,'Tinajo',47248,47253,3,2),(22495,'Tuineje',47236,47247,3,5),(22496,'Valleseco',47228,47235,3,3),(22497,'Valsequillo de Gran Canaria',47222,47227,3,2),(22498,'Vega de San Mateo',47214,47221,3,3),(22499,'Yaiza',47206,47213,3,3),(22500,'Adeje',47190,47203,3,6),(22501,'Agulo',47184,47189,3,2),(22502,'Alajeró',47174,47183,3,4),(22503,'Arafo',47168,47173,3,2),(22504,'Arico',47156,47167,3,5),(22505,'Arona',47132,47155,3,11),(22506,'Barlovento',47126,47131,3,2),(22507,'Breña Alta',47118,47125,3,3),(22508,'Breña Baja',47112,47117,3,2),(22509,'Buenavista del Norte',47104,47111,3,3),(22510,'Candelaria',47092,47103,3,5),(22511,'El Paso',47080,47091,3,5),(22512,'El Pinar de El Hierro',47074,47079,3,2),(22513,'El Rosario',47064,47073,3,4),(22514,'El Sauzal',47058,47063,3,2),(22515,'El Tanque',47054,47057,3,1),(22516,'Fasnia',47048,47053,3,2),(22517,'Frontera',47040,47047,3,3),(22518,'Fuencaliente de la Palma',47034,47039,3,2),(22519,'Garachico',47024,47033,3,4),(22520,'Garafía',47016,47023,3,3),(22521,'Granadilla de Abona',46996,47015,3,9),(22522,'Guía de Isora',46982,46995,3,6),(22523,'Güímar',46968,46981,3,6),(22524,'Hermigua',46958,46967,3,4),(22525,'Icod de los Vinos',46948,46957,3,4),(22526,'La Guancha',46940,46947,3,3),(22527,'La Matanza de Acentejo',46934,46939,3,2),(22528,'La Orotava',46918,46933,3,7),(22529,'La Victoria de Acentejo',46912,46917,3,2),(22530,'Los Llanos de Aridane',46900,46911,3,5),(22531,'Los Realejos',46880,46899,3,9),(22532,'Los Silos',46870,46879,3,4),(22533,'Puerto de la Cruz',46866,46869,3,1),(22534,'Puntagorda',46862,46865,3,1),(22535,'Puntallana',46856,46861,3,2),(22536,'San Andrés y Sauces',46850,46855,3,2),(22537,'San Cristóbal de La Laguna',46806,46849,3,21),(22538,'San Juan de la Rambla',46798,46805,3,3),(22539,'San Miguel de Abona',46788,46797,3,4),(22540,'San Sebastián de la Gomera',46780,46787,3,3),(22541,'Santa Cruz de la Palma',46768,46779,3,5),(22542,'Santa Cruz de Tenerife',46716,46767,3,25),(22543,'Santa Úrsula',46708,46715,3,3),(22544,'Santiago del Teide',46700,46707,3,3),(22545,'Tacoronte',46686,46699,3,6),(22546,'Tazacorte',46680,46685,3,2),(22547,'Tegueste',46668,46679,3,5),(22548,'Tijarafe',46662,46667,3,2),(22549,'Valle Gran Rey',46652,46661,3,4),(22550,'Vallehermoso',46636,46651,3,7),(22551,'Valverde',46626,46635,3,4),(22552,'Vilaflor de Chasna',46616,46625,3,4),(22553,'Villa de Mazo',46608,46615,3,3),(22554,'35480',47615,47616,4,0),(22555,'35489',47613,47614,4,0),(22556,'35118',47609,47610,4,0),(22557,'35119',47607,47608,4,0),(22558,'35260',47605,47606,4,0),(22559,'35269',47603,47604,4,0),(22560,'35270',47601,47602,4,0),(22561,'35369',47597,47598,4,0),(22562,'35610',47595,47596,4,0),(22563,'35630',47593,47594,4,0),(22564,'35638',47591,47592,4,0),(22565,'35639',47589,47590,4,0),(22566,'35500',47585,47586,4,0),(22567,'35350',47581,47582,4,0),(22568,'35000',47577,47578,4,0),(22569,'35400',47575,47576,4,0),(22570,'35404',47573,47574,4,0),(22571,'35411',47571,47572,4,0),(22572,'35412',47569,47570,4,0),(22573,'35413',47567,47568,4,0),(22574,'35414',47565,47566,4,0),(22575,'35415',47563,47564,4,0),(22576,'35418',47561,47562,4,0),(22577,'35637',47557,47558,4,0),(22578,'35430',47553,47554,4,0),(22579,'35431',47551,47552,4,0),(22580,'35432',47549,47550,4,0),(22581,'35435',47547,47548,4,0),(22582,'35188',47543,47544,4,0),(22583,'35420',47541,47542,4,0),(22584,'35460',47539,47540,4,0),(22585,'35468',47537,47538,4,0),(22586,'35469',47535,47536,4,0),(22587,'35488',47533,47534,4,0),(22588,'35640',47531,47532,4,0),(22589,'35520',47527,47528,4,0),(22590,'35541',47525,47526,4,0),(22591,'35542',47523,47524,4,0),(22592,'35543',47521,47522,4,0),(22593,'35000',47517,47518,4,0),(22594,'35240',47515,47516,4,0),(22595,'35250',47513,47514,4,0),(22596,'35259',47511,47512,4,0),(22597,'34570',47507,47508,4,0),(22598,'35470',47505,47506,4,0),(22599,'35478',47503,47504,4,0),(22600,'35479',47501,47502,4,0),(22601,'35579',47499,47500,4,0),(22602,'35469',47495,47496,4,0),(22603,'35640',47493,47494,4,0),(22604,'35649',47491,47492,4,0),(22605,'35650',47489,47490,4,0),(22606,'35660',47487,47488,4,0),(22607,'35001',47483,47484,4,0),(22608,'35002',47481,47482,4,0),(22609,'35003',47479,47480,4,0),(22610,'35004',47477,47478,4,0),(22611,'35005',47475,47476,4,0),(22612,'35006',47473,47474,4,0),(22613,'35007',47471,47472,4,0),(22614,'35008',47469,47470,4,0),(22615,'35009',47467,47468,4,0),(22616,'35010',47465,47466,4,0),(22617,'35011',47463,47464,4,0),(22618,'35012',47461,47462,4,0),(22619,'35013',47459,47460,4,0),(22620,'35014',47457,47458,4,0),(22621,'35015',47455,47456,4,0),(22622,'35016',47453,47454,4,0),(22623,'35017',47451,47452,4,0),(22624,'35018',47449,47450,4,0),(22625,'35019',47447,47448,4,0),(22626,'35220',47445,47446,4,0),(22627,'35229',47443,47444,4,0),(22628,'35120',47439,47440,4,0),(22629,'35129',47437,47438,4,0),(22630,'35130',47435,47436,4,0),(22631,'35138',47433,47434,4,0),(22632,'35139',47431,47432,4,0),(22633,'35140',47429,47430,4,0),(22634,'35149',47427,47428,4,0),(22635,'35413',47423,47424,4,0),(22636,'35420',47421,47422,4,0),(22637,'35421',47419,47420,4,0),(22638,'35422',47417,47418,4,0),(22639,'35423',47415,47416,4,0),(22640,'35625',47411,47412,4,0),(22641,'35626',47409,47410,4,0),(22642,'35627',47407,47408,4,0),(22643,'35628',47405,47406,4,0),(22644,'35600',47401,47402,4,0),(22645,'35610',47399,47400,4,0),(22646,'35611',47397,47398,4,0),(22647,'35612',47395,47396,4,0),(22648,'35613',47393,47394,4,0),(22649,'35637',47391,47392,4,0),(22650,'35509',47387,47388,4,0),(22651,'35550',47385,47386,4,0),(22652,'35100',47381,47382,4,0),(22653,'35106',47379,47380,4,0),(22654,'35107',47377,47378,4,0),(22655,'35108',47375,47376,4,0),(22656,'35109',47373,47374,4,0),(22657,'35119',47371,47372,4,0),(22658,'35120',47369,47370,4,0),(22659,'35128',47367,47368,4,0),(22660,'35280',47365,47366,4,0),(22661,'35290',47363,47364,4,0),(22662,'35299',47361,47362,4,0),(22663,'35369',47359,47360,4,0),(22664,'35300',47355,47356,4,0),(22665,'35307',47353,47354,4,0),(22666,'35308',47351,47352,4,0),(22667,'35309',47349,47350,4,0),(22668,'35310',47347,47348,4,0),(22669,'35000',47343,47344,4,0),(22670,'35110',47341,47342,4,0),(22671,'35280',47339,47340,4,0),(22672,'35450',47335,47336,4,0),(22673,'35457',47333,47334,4,0),(22674,'35458',47331,47332,4,0),(22675,'35540',47329,47330,4,0),(22676,'35507',47325,47326,4,0),(22677,'35508',47323,47324,4,0),(22678,'35509',47321,47322,4,0),(22679,'35530',47319,47320,4,0),(22680,'35539',47317,47318,4,0),(22681,'35540',47315,47316,4,0),(22682,'35543',47313,47314,4,0),(22683,'35544',47311,47312,4,0),(22684,'35558',47309,47310,4,0),(22685,'35561',47307,47308,4,0),(22686,'35360',47303,47304,4,0),(22687,'35368',47301,47302,4,0),(22688,'35200',47297,47298,4,0),(22689,'35210',47295,47296,4,0),(22690,'35211',47293,47294,4,0),(22691,'35212',47291,47292,4,0),(22692,'35213',47289,47290,4,0),(22693,'35214',47287,47288,4,0),(22694,'35215',47285,47286,4,0),(22695,'35218',47283,47284,4,0),(22696,'35219',47281,47282,4,0),(22697,'35220',47279,47280,4,0),(22698,'35229',47277,47278,4,0),(22699,'35259',47275,47276,4,0),(22700,'35000',47271,47272,4,0),(22701,'35330',47269,47270,4,0),(22702,'35333',47267,47268,4,0),(22703,'35338',47265,47266,4,0),(22704,'35339',47263,47264,4,0),(22705,'35510',47259,47260,4,0),(22706,'35571',47257,47258,4,0),(22707,'35572',47255,47256,4,0),(22708,'35550',47251,47252,4,0),(22709,'35560',47249,47250,4,0),(22710,'35620',47245,47246,4,0),(22711,'35627',47243,47244,4,0),(22712,'35628',47241,47242,4,0),(22713,'35629',47239,47240,4,0),(22714,'35660',47237,47238,4,0),(22715,'35000',47233,47234,4,0),(22716,'35340',47231,47232,4,0),(22717,'35349',47229,47230,4,0),(22718,'35216',47225,47226,4,0),(22719,'35217',47223,47224,4,0),(22720,'35320',47219,47220,4,0),(22721,'35328',47217,47218,4,0),(22722,'35329',47215,47216,4,0),(22723,'35370',47211,47212,4,0),(22724,'35570',47209,47210,4,0),(22725,'35580',47207,47208,4,0),(22726,'38615',47201,47202,4,0),(22727,'38660',47199,47200,4,0),(22728,'38670',47197,47198,4,0),(22729,'38677',47195,47196,4,0),(22730,'38678',47193,47194,4,0),(22731,'38679',47191,47192,4,0),(22732,'38830',47187,47188,4,0),(22733,'38890',47185,47186,4,0),(22734,'38810',47181,47182,4,0),(22735,'38811',47179,47180,4,0),(22736,'38812',47177,47178,4,0),(22737,'38813',47175,47176,4,0),(22738,'38509',47171,47172,4,0),(22739,'38550',47169,47170,4,0),(22740,'38580',47165,47166,4,0),(22741,'38588',47163,47164,4,0),(22742,'38589',47161,47162,4,0),(22743,'38592',47159,47160,4,0),(22744,'38593',47157,47158,4,0),(22745,'38626',47153,47154,4,0),(22746,'38627',47151,47152,4,0),(22747,'38630',47149,47150,4,0),(22748,'38631',47147,47148,4,0),(22749,'38632',47145,47146,4,0),(22750,'38639',47143,47144,4,0),(22751,'38640',47141,47142,4,0),(22752,'38649',47139,47140,4,0),(22753,'38650',47137,47138,4,0),(22754,'38652',47135,47136,4,0),(22755,'38660',47133,47134,4,0),(22756,'38726',47129,47130,4,0),(22757,'38727',47127,47128,4,0),(22758,'38710',47123,47124,4,0),(22759,'38712',47121,47122,4,0),(22760,'38713',47119,47120,4,0),(22761,'38711',47115,47116,4,0),(22762,'38712',47113,47114,4,0),(22763,'38479',47109,47110,4,0),(22764,'38480',47107,47108,4,0),(22765,'38489',47105,47106,4,0),(22766,'38509',47101,47102,4,0),(22767,'38510',47099,47100,4,0),(22768,'38520',47097,47098,4,0),(22769,'38530',47095,47096,4,0),(22770,'38540',47093,47094,4,0),(22771,'38750',47089,47090,4,0),(22772,'38758',47087,47088,4,0),(22773,'38759',47085,47086,4,0),(22774,'38768',47083,47084,4,0),(22775,'38769',47081,47082,4,0),(22776,'38914',47077,47078,4,0),(22777,'38917',47075,47076,4,0),(22778,'38109',47071,47072,4,0),(22779,'38190',47069,47070,4,0),(22780,'38290',47067,47068,4,0),(22781,'38510',47065,47066,4,0),(22782,'38359',47061,47062,4,0),(22783,'38360',47059,47060,4,0),(22784,'38435',47055,47056,4,0),(22785,'38570',47051,47052,4,0),(22786,'38579',47049,47050,4,0),(22787,'38911',47045,47046,4,0),(22788,'38912',47043,47044,4,0),(22789,'38913',47041,47042,4,0),(22790,'38740',47037,47038,4,0),(22791,'38749',47035,47036,4,0),(22792,'38450',47031,47032,4,0),(22793,'38458',47029,47030,4,0),(22794,'38459',47027,47028,4,0),(22795,'38460',47025,47026,4,0),(22796,'38728',47021,47022,4,0),(22797,'38787',47019,47020,4,0),(22798,'38788',47017,47018,4,0),(22799,'38594',47013,47014,4,0),(22800,'38595',47011,47012,4,0),(22801,'38600',47009,47010,4,0),(22802,'38611',47007,47008,4,0),(22803,'38612',47005,47006,4,0),(22804,'38616',47003,47004,4,0),(22805,'38617',47001,47002,4,0),(22806,'38618',46999,47000,4,0),(22807,'38639',46997,46998,4,0),(22808,'38680',46993,46994,4,0),(22809,'38685',46991,46992,4,0),(22810,'38686',46989,46990,4,0),(22811,'38687',46987,46988,4,0),(22812,'38688',46985,46986,4,0),(22813,'38689',46983,46984,4,0),(22814,'38500',46979,46980,4,0),(22815,'38508',46977,46978,4,0),(22816,'38509',46975,46976,4,0),(22817,'38560',46973,46974,4,0),(22818,'38590',46971,46972,4,0),(22819,'38591',46969,46970,4,0),(22820,'38820',46965,46966,4,0),(22821,'38829',46963,46964,4,0),(22822,'38869',46961,46962,4,0),(22823,'38890',46959,46960,4,0),(22824,'38430',46955,46956,4,0),(22825,'38434',46953,46954,4,0),(22826,'38438',46951,46952,4,0),(22827,'38439',46949,46950,4,0),(22828,'38440',46945,46946,4,0),(22829,'38441',46943,46944,4,0),(22830,'38449',46941,46942,4,0),(22831,'38370',46937,46938,4,0),(22832,'38379',46935,46936,4,0),(22833,'38300',46931,46932,4,0),(22834,'38310',46929,46930,4,0),(22835,'38311',46927,46928,4,0),(22836,'38312',46925,46926,4,0),(22837,'38313',46923,46924,4,0),(22838,'38314',46921,46922,4,0),(22839,'38315',46919,46920,4,0),(22840,'38380',46915,46916,4,0),(22841,'38389',46913,46914,4,0),(22842,'38759',46909,46910,4,0),(22843,'38760',46907,46908,4,0),(22844,'38767',46905,46906,4,0),(22845,'38768',46903,46904,4,0),(22846,'38769',46901,46902,4,0),(22847,'38410',46897,46898,4,0),(22848,'38412',46895,46896,4,0),(22849,'38413',46893,46894,4,0),(22850,'38414',46891,46892,4,0),(22851,'38415',46889,46890,4,0),(22852,'38416',46887,46888,4,0),(22853,'38417',46885,46886,4,0),(22854,'38418',46883,46884,4,0),(22855,'38419',46881,46882,4,0),(22856,'38435',46877,46878,4,0),(22857,'38460',46875,46876,4,0),(22858,'38470',46873,46874,4,0),(22859,'38479',46871,46872,4,0),(22860,'38400',46867,46868,4,0),(22861,'38789',46863,46864,4,0),(22862,'38714',46859,46860,4,0),(22863,'38715',46857,46858,4,0),(22864,'38720',46853,46854,4,0),(22865,'38729',46851,46852,4,0),(22866,'38108',46847,46848,4,0),(22867,'38201',46845,46846,4,0),(22868,'38202',46843,46844,4,0),(22869,'38203',46841,46842,4,0),(22870,'38204',46839,46840,4,0),(22871,'38205',46837,46838,4,0),(22872,'38206',46835,46836,4,0),(22873,'38207',46833,46834,4,0),(22874,'38208',46831,46832,4,0),(22875,'38240',46829,46830,4,0),(22876,'38250',46827,46828,4,0),(22877,'38260',46825,46826,4,0),(22878,'38270',46823,46824,4,0),(22879,'38291',46821,46822,4,0),(22880,'38293',46819,46820,4,0),(22881,'38294',46817,46818,4,0),(22882,'38296',46815,46816,4,0),(22883,'38297',46813,46814,4,0),(22884,'38320',46811,46812,4,0),(22885,'38329',46809,46810,4,0),(22886,'38330',46807,46808,4,0),(22887,'38420',46803,46804,4,0),(22888,'38428',46801,46802,4,0),(22889,'38429',46799,46800,4,0),(22890,'38620',46795,46796,4,0),(22891,'38628',46793,46794,4,0),(22892,'38629',46791,46792,4,0),(22893,'38639',46789,46790,4,0),(22894,'38800',46785,46786,4,0),(22895,'38801',46783,46784,4,0),(22896,'38811',46781,46782,4,0),(22897,'38700',46777,46778,4,0),(22898,'38712',46775,46776,4,0),(22899,'38713',46773,46774,4,0),(22900,'38714',46771,46772,4,0),(22901,'38715',46769,46770,4,0),(22902,'38001',46765,46766,4,0),(22903,'38002',46763,46764,4,0),(22904,'38003',46761,46762,4,0),(22905,'38004',46759,46760,4,0),(22906,'38005',46757,46758,4,0),(22907,'38006',46755,46756,4,0),(22908,'38007',46753,46754,4,0),(22909,'38008',46751,46752,4,0),(22910,'38009',46749,46750,4,0),(22911,'38010',46747,46748,4,0),(22912,'38107',46745,46746,4,0),(22913,'38108',46743,46744,4,0),(22914,'38110',46741,46742,4,0),(22915,'38111',46739,46740,4,0),(22916,'38120',46737,46738,4,0),(22917,'38129',46735,46736,4,0),(22918,'38130',46733,46734,4,0),(22919,'38139',46731,46732,4,0),(22920,'38140',46729,46730,4,0),(22921,'38150',46727,46728,4,0),(22922,'38160',46725,46726,4,0),(22923,'38170',46723,46724,4,0),(22924,'38180',46721,46722,4,0),(22925,'38294',46719,46720,4,0),(22926,'38320',46717,46718,4,0),(22927,'38390',46713,46714,4,0),(22928,'38398',46711,46712,4,0),(22929,'38399',46709,46710,4,0),(22930,'38683',46705,46706,4,0),(22931,'38684',46703,46704,4,0),(22932,'38690',46701,46702,4,0),(22933,'38340',46697,46698,4,0),(22934,'38350',46695,46696,4,0),(22935,'38355',46693,46694,4,0),(22936,'38356',46691,46692,4,0),(22937,'38357',46689,46690,4,0),(22938,'38358',46687,46688,4,0),(22939,'38770',46683,46684,4,0),(22940,'38779',46681,46682,4,0),(22941,'38280',46677,46678,4,0),(22942,'38289',46675,46676,4,0),(22943,'38292',46673,46674,4,0),(22944,'38293',46671,46672,4,0),(22945,'38297',46669,46670,4,0),(22946,'38780',46665,46666,4,0),(22947,'38789',46663,46664,4,0),(22948,'38852',46659,46660,4,0),(22949,'38870',46657,46658,4,0),(22950,'38879',46655,46656,4,0),(22951,'38892',46653,46654,4,0),(22952,'38840',46649,46650,4,0),(22953,'38849',46647,46648,4,0),(22954,'38850',46645,46646,4,0),(22955,'38852',46643,46644,4,0),(22956,'38860',46641,46642,4,0),(22957,'38869',46639,46640,4,0),(22958,'38891',46637,46638,4,0),(22959,'38900',46633,46634,4,0),(22960,'38910',46631,46632,4,0),(22961,'38915',46629,46630,4,0),(22962,'38916',46627,46628,4,0),(22963,'38613',46623,46624,4,0),(22964,'38614',46621,46622,4,0),(22965,'38615',46619,46620,4,0),(22966,'38629',46617,46618,4,0),(22967,'38730',46613,46614,4,0),(22968,'38738',46611,46612,4,0),(22969,'38739',46609,46610,4,0),(22970,'Marigot',44730,44733,3,1),(22971,'Aubignosc',44752,44755,3,1),(22972,'Chateau Arnoux Saint Auba',44748,44751,3,1),(22973,'Manosque',44744,44747,3,1),(22974,'Villeneuve',44740,44743,3,1),(22975,'Rodez',44770,44773,3,1),(22976,'Aix-en-provence',44846,44851,3,2),(22977,'Arles',44840,44845,3,2),(22978,'Bouc Bel-air',44836,44839,3,1),(22979,'Istres',44832,44835,3,1),(22980,'Lançon De Provence',44828,44831,3,1),(22981,'Les Pennes Mirabeau',44824,44827,3,1),(22982,'Marseille',44798,44823,3,12),(22983,'Martigues',44794,44797,3,1),(22984,'Maussane-les-alpilles',44790,44793,3,1),(22985,'Rognonas',44786,44789,3,1),(22986,'Salon-de-provence',44782,44785,3,1),(22987,'Velaux',44778,44781,3,1),(22988,'Villers-bocage',44854,44857,3,1),(22989,'Linars',44862,44865,3,1),(22990,'Dolus-d\'oleron',44868,44871,3,1),(22991,'Lanvollon',44890,44893,3,1),(22992,'Penvénan',44886,44889,3,1),(22993,'Plessala',44882,44885,3,1),(22994,'Pontarlier',44902,44905,3,1),(22995,'Saint Paul Les Romans',44912,44915,3,1),(22996,'Valence',44908,44911,3,1),(22997,'Le Bosc Roger En Roumois',44924,44927,3,1),(22998,'Val-de-reuil',44920,44923,3,1),(22999,'Brest',44964,44967,3,1),(23000,'Combrit',44960,44963,3,1),(23001,'Gouesnou',44956,44959,3,1),(23002,'Guipavas',44952,44955,3,1),(23003,'Landernau',44948,44951,3,1),(23004,'Le Huelgoat',44944,44947,3,1),(23005,'Quimper',44940,44943,3,1),(23006,'Saint Renan',44936,44939,3,1),(23007,'Sizun',44932,44935,3,1),(23008,'Rochefort Du Gard',44978,44981,3,1),(23009,'Saint-quentin-la-poterie',44974,44977,3,1),(23010,'Villeneuve Les Avignon',44970,44973,3,1),(23011,'Bordeaux',44986,44989,3,1),(23012,'Toulouse',45000,45003,3,1),(23013,'Tournefeuille',44996,44999,3,1),(23014,'Bonne',45016,45019,3,1),(23015,'Morzine',45012,45015,3,1),(23016,'Courbevoi',45028,45031,3,1),(23017,'Aigûes Mortes',45046,45049,3,1),(23018,'Beziers',45042,45045,3,1),(23019,'Lunel',45038,45041,3,1),(23020,'Montpellier',45034,45037,3,1),(23021,'Avoine',45060,45063,3,1),(23022,'Tours',45056,45059,3,1),(23023,'Tullins',45066,45069,3,1),(23024,'Biscarrosse',45084,45087,3,1),(23025,'Léon',45082,45083,3,0),(23026,'Soorts-hossegor',45078,45081,3,1),(23027,'Vieux Boucau-les-bains',45074,45077,3,1),(23028,'Nantes',45094,45097,3,1),(23029,'Cholet',45112,45115,3,1),(23030,'Les Ponts De Ce',45108,45111,3,1),(23031,'Saint Hilaire Du Harcouët',45118,45121,3,1),(23032,'Clescles',45124,45127,3,1),(23033,'Caudan',45140,45143,3,1),(23034,'Quéven',45136,45139,3,1),(23035,'Armentieres',45162,45165,3,1),(23036,'Maquette De Lille',45158,45161,3,1),(23037,'Maquette Le Lille',45154,45157,3,1),(23038,'Roubaix',45150,45153,3,1),(23039,'La Croix Saint Ouen',45168,45171,3,1),(23040,'Honore',45186,45189,3,1),(23041,'Paris',45176,45185,3,4),(23042,'Lille',45196,45199,3,1),(23043,'Prenchies',45192,45195,3,1),(23044,'Anglet',45278,45281,3,1),(23045,'Arcangues',45274,45277,3,1),(23046,'Ascain',45270,45273,3,1),(23047,'Bardos',45266,45269,3,1),(23048,'Bayone',45260,45265,3,2),(23049,'Bayonne',45256,45259,3,1),(23050,'Biarritz',45252,45255,3,1),(23051,'Bidache',45248,45251,3,1),(23052,'Bidart',45244,45247,3,1),(23053,'Hendaye',45240,45243,3,1),(23054,'Saint Jean De Luz',45236,45239,3,1),(23055,'Saint Palais',45232,45235,3,1),(23056,'Saint Vincent De Tyrosse',45228,45231,3,1),(23057,'Saint-jean-de-luz',45224,45227,3,1),(23058,'Sare',45220,45223,3,1),(23059,'St Jean De Luz',45216,45219,3,1),(23060,'Urrugne',45212,45215,3,1),(23061,'Urt',45208,45211,3,1),(23062,'Ustaritz',45204,45207,3,1),(23063,'Argeles Sur Mer',45292,45295,3,1),(23064,'Perpignan',45288,45291,3,1),(23065,'Saint Laurent De La Salan',45284,45287,3,1),(23066,'Bron',45304,45307,3,1),(23067,'Lyon',45298,45303,3,2),(23068,'Mâcon',45310,45313,3,1),(23069,'Le Havre',45326,45329,3,1),(23070,'Rouen',45322,45325,3,1),(23071,'Livry-gargan',45336,45339,3,1),(23072,'Villemonble',45332,45335,3,1),(23073,'Albi',45352,45355,3,1),(23074,'Castres',45348,45351,3,1),(23075,'Onet Le Chateau',45344,45347,3,1),(23076,'Montauban',45358,45361,3,1),(23077,'Montmorency',45370,45373,3,1),(23078,'Pontoise',45366,45369,3,1),(23079,'Chevilly Larue',45380,45385,3,2),(23080,'Plessis Trevise',45376,45379,3,1),(23081,'Hyères',45396,45399,3,1),(23082,'Saint Tropez',45392,45395,3,1),(23083,'Sollies Pont',45388,45391,3,1),(23084,'Agvignon',45402,45405,3,1),(23085,'Contrexéville',45420,45423,3,1),(23086,'Neufchâteau',45416,45419,3,1),(23087,'Vittel',45412,45415,3,1),(23088,'40550',22379,22380,4,0),(23089,'97150',44731,44732,4,0),(23090,'04200',44753,44754,4,0),(23091,'04160',44749,44750,4,0),(23092,'04100',44745,44746,4,0),(23093,'04180',44741,44742,4,0),(23094,'12000',44771,44772,4,0),(23095,'13100',44849,44850,4,0),(23096,'13540',44847,44848,4,0),(23097,'13200',44843,44844,4,0),(23098,'13633',44841,44842,4,0),(23099,'13320',44837,44838,4,0),(23100,'13800',44833,44834,4,0),(23101,'13680',44829,44830,4,0),(23102,'13170',44825,44826,4,0),(23103,'13001',44821,44822,4,0),(23104,'13002',44819,44820,4,0),(23105,'13004',44817,44818,4,0),(23106,'13005',44815,44816,4,0),(23107,'13006',44813,44814,4,0),(23108,'13007',44811,44812,4,0),(23109,'13008',44809,44810,4,0),(23110,'13009',44807,44808,4,0),(23111,'13010',44805,44806,4,0),(23112,'13011',44803,44804,4,0),(23113,'13012',44801,44802,4,0),(23114,'13014',44799,44800,4,0),(23115,'13500',44795,44796,4,0),(23116,'13520',44791,44792,4,0),(23117,'13870',44787,44788,4,0),(23118,'13300',44783,44784,4,0),(23119,'13880',44779,44780,4,0),(23120,'14310',44855,44856,4,0),(23121,'16730',44863,44864,4,0),(23122,'17550',44869,44870,4,0),(23123,'22290',44891,44892,4,0),(23124,'22710',44887,44888,4,0),(23125,'22330',44883,44884,4,0),(23126,'25300',44903,44904,4,0),(23127,'26750',44913,44914,4,0),(23128,'26000',44909,44910,4,0),(23129,'27670',44925,44926,4,0),(23130,'27100',44921,44922,4,0),(23131,'29200',44965,44966,4,0),(23132,'29120',44961,44962,4,0),(23133,'29850',44957,44958,4,0),(23134,'29490',44953,44954,4,0),(23135,'29800',44949,44950,4,0),(23136,'29690',44945,44946,4,0),(23137,'29000',44941,44942,4,0),(23138,'29290',44937,44938,4,0),(23139,'29450',44933,44934,4,0),(23140,'30650',44979,44980,4,0),(23141,'30700',44975,44976,4,0),(23142,'30400',44971,44972,4,0),(23143,'33000',44987,44988,4,0),(23144,'31200',45001,45002,4,0),(23145,'31170',44997,44998,4,0),(23146,'74308',45017,45018,4,0),(23147,'74110',45013,45014,4,0),(23148,'92400',45029,45030,4,0),(23149,'30220',45047,45048,4,0),(23150,'34500',45043,45044,4,0),(23151,'34400',45039,45040,4,0),(23152,'34000',45035,45036,4,0),(23153,'37420',45061,45062,4,0),(23154,'37000',45057,45058,4,0),(23155,'38210',45067,45068,4,0),(23156,'40600',45085,45086,4,0),(23157,'40150',45079,45080,4,0),(23158,'40480',45075,45076,4,0),(23159,'44000',45095,45096,4,0),(23160,'49300',45113,45114,4,0),(23161,'49130',45109,45110,4,0),(23162,'50600',45119,45120,4,0),(23163,'51260',45125,45126,4,0),(23164,'56850',45141,45142,4,0),(23165,'56560',45137,45138,4,0),(23166,'59280',45163,45164,4,0),(23167,'59520',45159,45160,4,0),(23168,'59520',45155,45156,4,0),(23169,'59100',45151,45152,4,0),(23170,'60610',45169,45170,4,0),(23171,'75008',45187,45188,4,0),(23172,'75011',45183,45184,4,0),(23173,'75012',45181,45182,4,0),(23174,'75013',45179,45180,4,0),(23175,'75020',45177,45178,4,0),(23176,'59800',45197,45198,4,0),(23177,'59840',45193,45194,4,0),(23178,'64600',45279,45280,4,0),(23179,'64200',45275,45276,4,0),(23180,'64310',45271,45272,4,0),(23181,'64520',45267,45268,4,0),(23182,'64000',45263,45264,4,0),(23183,'64100',45261,45262,4,0),(23184,'64100',45257,45258,4,0),(23185,'64200',45253,45254,4,0),(23186,'64520',45249,45250,4,0),(23187,'64210',45245,45246,4,0),(23188,'64700',45241,45242,4,0),(23189,'64500',45237,45238,4,0),(23190,'64120',45233,45234,4,0),(23191,'40230',45229,45230,4,0),(23192,'64500',45225,45226,4,0),(23193,'64310',45221,45222,4,0),(23194,'64500',45217,45218,4,0),(23195,'64122',45213,45214,4,0),(23196,'64240',45209,45210,4,0),(23197,'64480',45205,45206,4,0),(23198,'66700',45293,45294,4,0),(23199,'66000',45289,45290,4,0),(23200,'66250',45285,45286,4,0),(23201,'69500',45305,45306,4,0),(23202,'69001',45301,45302,4,0),(23203,'69002',45299,45300,4,0),(23204,'71000',45311,45312,4,0),(23205,'76600',45327,45328,4,0),(23206,'76000',45323,45324,4,0),(23207,'93190',45337,45338,4,0),(23208,'93250',45333,45334,4,0),(23209,'81000',45353,45354,4,0),(23210,'81100',45349,45350,4,0),(23211,'12850',45345,45346,4,0),(23212,'82000',45359,45360,4,0),(23213,'95160',45371,45372,4,0),(23214,'95300',45367,45368,4,0),(23215,'94150',45383,45384,4,0),(23216,'94550',45381,45382,4,0),(23217,'94420',45377,45378,4,0),(23218,'83400',45397,45398,4,0),(23219,'83990',45393,45394,4,0),(23220,'83210',45389,45390,4,0),(23221,'84000',45403,45404,4,0),(23222,'88140',45421,45422,4,0),(23223,'88300',45417,45418,4,0),(23224,'88800',45413,45414,4,0),(23225,'Agueda',45546,45551,3,2),(23226,'Arouca',45542,45545,3,1),(23227,'Aveiro',45536,45541,3,2),(23228,'Cacia',45532,45535,3,1),(23229,'Caldas De São Jorge',45528,45531,3,1),(23230,'Esgueira',45524,45527,3,1),(23231,'Horta',45522,45523,3,0),(23232,'Ilhavo',45516,45521,3,2),(23233,'Malveira',45512,45515,3,1),(23234,'Oliveira Azemeis',45508,45511,3,1),(23235,'Oliveira Do Bairro',45504,45507,3,1),(23236,'Santa Maria Da Feira',45498,45503,3,2),(23237,'Santiago De Riba-ul',45494,45497,3,1),(23238,'São João Da Madeira',45486,45493,3,3),(23239,'Server Do Vouga',45482,45485,3,1),(23240,'Terceira',45478,45481,3,1),(23241,'Vagos',45472,45477,3,2),(23242,'Vale De Cambra',45468,45471,3,1),(23243,'Beja',45554,45557,3,1),(23244,'485 Barcelos',45660,45663,3,1),(23245,'Barcelos',45646,45659,3,6),(23246,'Braga',45632,45645,3,6),(23247,'Celorco De Basto',45628,45631,3,1),(23248,'Celorico Basto',45624,45627,3,1),(23249,'Esposende',45616,45623,3,3),(23250,'Fafe',45612,45615,3,1),(23251,'Famalição',45608,45611,3,1),(23252,'Fermil De Basto',45604,45607,3,1),(23253,'Figueiredo',45600,45603,3,1),(23254,'Fraiao',45596,45599,3,1),(23255,'Guiamarães',45592,45595,3,1),(23256,'Guimarães',45584,45591,3,3),(23257,'Povoa De Lanhoso',45580,45583,3,1),(23258,'Vila Nova De Famalicao',45572,45579,3,3),(23259,'Vila Nova Famalicão',45568,45571,3,1),(23260,'Vila Verde',45564,45567,3,1),(23261,'Vila-verde',45560,45563,3,1),(23262,'Paradela-chaves',45666,45669,3,1),(23263,'Alqueria Fundão',45702,45705,3,1),(23264,'Belmonte',45700,45701,3,0),(23265,'Castelo Branco',45692,45699,3,3),(23266,'Covilhã',45688,45691,3,1),(23267,'Proença A Nova',45684,45687,3,1),(23268,'Ceuta',45672,45683,3,5),(23269,'-455 Lavos',45774,45777,3,1),(23270,'Cernache',45770,45773,3,1),(23271,'Coimbra',45748,45769,3,10),(23272,'Penacova',45744,45747,3,1),(23273,'Praia De Quiaios',45738,45743,3,2),(23274,'Santo Antonio Dos Olivais',45734,45737,3,1),(23275,'São Martinho De Arvore',45730,45733,3,1),(23276,'Semide',45726,45729,3,1),(23277,'Tabua',45722,45725,3,1),(23278,'Evora',45780,45785,3,2),(23279,'Albufeira',45868,45871,3,1),(23280,'Algarve',45862,45867,3,2),(23281,'Almancil',45858,45861,3,1),(23282,'Almancil - Loulé',45854,45857,3,1),(23283,'Faro',45840,45853,3,6),(23284,'Lagos',45830,45839,3,4),(23285,'Loulé',45822,45829,3,3),(23286,'Mexilhoeira',45818,45821,3,1),(23287,'Moncarapacho',45814,45817,3,1),(23288,'Monchique',45810,45813,3,1),(23289,'Olhao',45804,45809,3,2),(23290,'São Pedro',45800,45803,3,1),(23291,'Silves',45796,45799,3,1),(23292,'Tavira',45792,45795,3,1),(23293,'Vilamoura Quarteira',45788,45791,3,1),(23294,'Funchal',45874,45877,3,1),(23295,'Aguar Da Beira',45904,45907,3,1),(23296,'Aguiar Da Beira',45900,45903,3,1),(23297,'Guarda',45896,45899,3,1),(23298,'Manteigas',45892,45895,3,1),(23299,'Sebugal',45888,45891,3,1),(23300,'Soito',45884,45887,3,1),(23301,'Vilar Formoso - Almeida',45880,45883,3,1),(23302,'Alcobaça',45986,45991,3,2),(23303,'Barosa',45982,45985,3,1),(23304,'Batalha',45978,45981,3,1),(23305,'Genrinhas',45974,45977,3,1),(23306,'Junceira',45970,45973,3,1),(23307,'Lameira - Ortigosa',45966,45969,3,1),(23308,'Maças De D. Maria',45962,45965,3,1),(23309,'Maceira',45958,45961,3,1),(23310,'Marinha Grande',45952,45957,3,2),(23311,'Marrazes',45948,45951,3,1),(23312,'Meirinhas',45944,45947,3,1),(23313,'Mendiga',45940,45943,3,1),(23314,'Nazaré',45936,45939,3,1),(23315,'Ortigoza',45932,45935,3,1),(23316,'Porto De Mos',45926,45931,3,2),(23317,'Possos S. Pedro',45922,45925,3,1),(23318,'Praia Da Leiria',45918,45921,3,1),(23319,'Rego De Agua',45914,45917,3,1),(23320,'Vieira Do Leiria',45910,45913,3,1),(23321,' Prior Velho',46154,46157,3,1),(23322,'Alenquer',46150,46153,3,1),(23323,'Alvala',46146,46149,3,1),(23324,'Alvarinhos',46142,46145,3,1),(23325,'Alverca Ribatejo',46138,46141,3,1),(23326,'Amadora',46128,46137,3,4),(23327,'Arruda Dos Vinho',46124,46127,3,1),(23328,'Brejos De Azeitão',46118,46123,3,2),(23329,'Carregado',46114,46117,3,1),(23330,'Cascais',46108,46113,3,2),(23331,'Estoril',46104,46107,3,1),(23332,'Lisboa',46078,46103,3,12),(23333,'Loures',46074,46077,3,1),(23334,'Mafra',46070,46073,3,1),(23335,'Montelevar',46066,46069,3,1),(23336,'Oeiras',46062,46065,3,1),(23337,'Portela Sacavém',46058,46061,3,1),(23338,'Queijas',46054,46057,3,1),(23339,'Quinta Do Figo Maduro',46050,46053,3,1),(23340,'Rio De Mouro',46044,46049,3,2),(23341,'Sacavem',46040,46043,3,1),(23342,'Santa Cruz',46034,46039,3,2),(23343,'São João Da Talha',46030,46033,3,1),(23344,'São Julião Do Tojal',46026,46029,3,1),(23345,'Sintra',46022,46025,3,1),(23346,'Venda Do Pinheiro',46018,46021,3,1),(23347,'Vila Franca De Xira',46012,46017,3,2),(23348,'Vila Franca Do Campo',46008,46011,3,1),(23349,'Melilla',45994,46007,3,6),(23350,'Elvas',46184,46187,3,1),(23351,'Portalegre',46180,46183,3,1),(23352,'Santo Antonio Das Areias',46176,46179,3,1),(23353,'Alduar',46398,46401,3,1),(23354,'Amarante',46392,46397,3,2),(23355,'Baião',46382,46391,3,4),(23356,'Baio',46378,46381,3,1),(23357,'Bomfim',46374,46377,3,1),(23358,'Casais',46370,46373,3,1),(23359,'Cedofeita',46366,46369,3,1),(23360,'Ermesinde',46356,46365,3,4),(23361,'Folgosa Maia',46352,46355,3,1),(23362,'Gaia',46350,46351,3,0),(23363,'Gondomar',46348,46349,3,0),(23364,'Lousada',46344,46347,3,1),(23365,'Maia',46324,46343,3,9),(23366,'Marco De Canavesses',46316,46323,3,3),(23367,'Matosinhos',46302,46315,3,6),(23368,'Oporto',46296,46301,3,2),(23369,'Paços De Ferreira',46290,46295,3,2),(23370,'Paços Ferreira',46286,46289,3,1),(23371,'Paranhos',46282,46285,3,1),(23372,'Paredes',46280,46281,3,0),(23373,'Passo De Ferreira',46272,46279,3,3),(23374,'Passo Ferreira',46268,46271,3,1),(23375,'Pedrouços Maia',46264,46267,3,1),(23376,'Penafiel',46262,46263,3,0),(23377,'Perafita Matosinhos',46258,46261,3,1),(23378,'Porto',46256,46257,3,0),(23379,'Povoa De Varzim',46252,46255,3,1),(23380,'Povoa Do Varzim',46248,46251,3,1),(23381,'Ramalde',46244,46247,3,1),(23382,'Rio Tinto',46238,46243,3,2),(23383,'Santo Tirso',46230,46237,3,3),(23384,'São Mamede Infesta',46226,46229,3,1),(23385,'Silvares Lousda',46222,46225,3,1),(23386,'Trofa',46216,46221,3,2),(23387,'Valongo',46212,46215,3,1),(23388,'Vila Do Conde',46208,46211,3,1),(23389,'Vila Nova De Gaia',46190,46207,3,8),(23390,'Alcanena',46428,46431,3,1),(23391,'Cartaxo',46424,46427,3,1),(23392,'Coruche',46420,46423,3,1),(23393,'Mação',46416,46419,3,1),(23394,'Pego',46414,46415,3,0),(23395,'Rio Maior',46410,46413,3,1),(23396,'Santarém',46406,46409,3,1),(23397,'Alcochece',46494,46497,3,1),(23398,'Almada',46488,46493,3,2),(23399,'Azeitão',46482,46487,3,2),(23400,'Charneca Da Caparica',46476,46481,3,2),(23401,'Costa Caparica',46472,46475,3,1),(23402,'Lavradio',46468,46471,3,1),(23403,'Lavradio - Barreiro',46462,46467,3,2),(23404,'Montijo',46460,46461,3,0),(23405,'Seixal',46452,46459,3,3),(23406,'Sesimbra',46448,46451,3,1),(23407,'Setubal',46442,46447,3,2),(23408,'Trafaria',46438,46441,3,1),(23409,'Vila Nogueira',46434,46437,3,1),(23410,'Monção',46516,46521,3,2),(23411,'Ponte De Lima',46512,46515,3,1),(23412,'S. Romão De Neiva',46508,46511,3,1),(23413,'Viana Do Castelo',46500,46507,3,3),(23414,'Chaves',46532,46543,3,5),(23415,'Sabrosa',46528,46531,3,1),(23416,'Santa Marta De Penaguiao',46524,46527,3,1),(23417,'Abraveses',46600,46603,3,1),(23418,'Ameixas',46596,46599,3,1),(23419,'Cinfaes',46592,46595,3,1),(23420,'Coração De Jesus',46588,46591,3,1),(23421,'Lamego',46582,46587,3,2),(23422,'Mamouros',46578,46581,3,1),(23423,'Olivares De Frades',46574,46577,3,1),(23424,'Sernancelhe',46566,46573,3,3),(23425,'Viseu',46550,46565,3,7),(23426,'Vouzela',46546,46549,3,1),(23427,'6250-076',12999,13000,4,0),(23428,'4410',6241,6242,4,0),(23429,'4415-039',6239,6240,4,0),(23430,'4420-382',31601,31602,4,0),(23431,'4510',31599,31600,4,0),(23432,'4510-649',31597,31598,4,0),(23433,'4515',31595,31596,4,0),(23434,'2870',4923,4924,4,0),(23435,'2870-500',4921,4922,4,0),(23436,'4585',13549,13550,4,0),(23437,'2205',1509,1510,4,0),(23438,'4560',41035,41036,4,0),(23439,'4560-568',41033,41034,4,0),(23440,'4560-750',41031,41032,4,0),(23441,'4575',41029,41030,4,0),(23442,'4575-367',41027,41028,4,0),(23443,'4575-503',41025,41026,4,0),(23444,'4000-075',42839,42840,4,0),(23445,'4000-217',42837,42838,4,0),(23446,'4150',42835,42836,4,0),(23447,'4200',42833,42834,4,0),(23448,'4250',42831,42832,4,0),(23449,'4300-198',42829,42830,4,0),(23450,'3750-103',45549,45550,4,0),(23451,'3750-791',45547,45548,4,0),(23452,'4540',45543,45544,4,0),(23453,'3800',45539,45540,4,0),(23454,'3810',45537,45538,4,0),(23455,'3800-533',45533,45534,4,0),(23456,'4505',45529,45530,4,0),(23457,'3800-149',45525,45526,4,0),(23458,'3830',45519,45520,4,0),(23459,'3830-142',45517,45518,4,0),(23460,'2665-185',45513,45514,4,0),(23461,'3700',45509,45510,4,0),(23462,'3770',45505,45506,4,0),(23463,'3700-839',45501,45502,4,0),(23464,'4535-346',45499,45500,4,0),(23465,'3720',45495,45496,4,0),(23466,'3700',45491,45492,4,0),(23467,'3700-091',45489,45490,4,0),(23468,'3700304',45487,45488,4,0),(23469,'3740-255',45483,45484,4,0),(23470,'9760',45479,45480,4,0),(23471,'3840',45475,45476,4,0),(23472,'3840449',45473,45474,4,0),(23473,'3730-220',45469,45470,4,0),(23474,'7800-496',45555,45556,4,0),(23475,'4755-',45661,45662,4,0),(23476,'4750',45657,45658,4,0),(23477,'4750-262',45655,45656,4,0),(23478,'4750-413',45653,45654,4,0),(23479,'4755',45651,45652,4,0),(23480,'4755-006',45649,45650,4,0),(23481,'4755-564',45647,45648,4,0),(23482,'4700',45641,45642,4,0),(23483,'4700-030',45639,45640,4,0),(23484,'4700-031',45637,45638,4,0),(23485,'4700-565',45635,45636,4,0),(23486,'4710',45633,45634,4,0),(23487,'4890-',45629,45630,4,0),(23488,'4890-264',45625,45626,4,0),(23489,'4740',45621,45622,4,0),(23490,'4740-291',45619,45620,4,0),(23491,'4740-576',45617,45618,4,0),(23492,'4820',45613,45614,4,0),(23493,'4765-220',45609,45610,4,0),(23494,'4890',45605,45606,4,0),(23495,'4705',45601,45602,4,0),(23496,'4715-400',45597,45598,4,0),(23497,'4805',45593,45594,4,0),(23498,'4810',45589,45590,4,0),(23499,'4810-106',45587,45588,4,0),(23500,'4835-324',45585,45586,4,0),(23501,'4830',45581,45582,4,0),(23502,'4760',45577,45578,4,0),(23503,'4770',45575,45576,4,0),(23504,'4770-160',45573,45574,4,0),(23505,'4770-060',45569,45570,4,0),(23506,'4730',45565,45566,4,0),(23507,'4730',45561,45562,4,0),(23508,'5400',45667,45668,4,0),(23509,'6230',45703,45704,4,0),(23510,'2600-068',45697,45698,4,0),(23511,'6000',45695,45696,4,0),(23512,'6000459',45693,45694,4,0),(23513,'6200-502',45689,45690,4,0),(23514,'6150',45685,45686,4,0),(23515,'51001',45681,45682,4,0),(23516,'51002',45679,45680,4,0),(23517,'51003',45677,45678,4,0),(23518,'51004',45675,45676,4,0),(23519,'51005',45673,45674,4,0),(23520,'03090',45775,45776,4,0),(23521,'3040-757',45771,45772,4,0),(23522,'3000',45767,45768,4,0),(23523,'3000-251',45765,45766,4,0),(23524,'3020171',45763,45764,4,0),(23525,'3025',45761,45762,4,0),(23526,'3025-106',45759,45760,4,0),(23527,'3030',45757,45758,4,0),(23528,'3030-181',45755,45756,4,0),(23529,'3030181',45753,45754,4,0),(23530,'3040-252',45751,45752,4,0),(23531,'3040-756',45749,45750,4,0),(23532,'3360',45745,45746,4,0),(23533,'3080',45741,45742,4,0),(23534,'3080515',45739,45740,4,0),(23535,'3030',45735,45736,4,0),(23536,'3025-474',45731,45732,4,0),(23537,'3220',45727,45728,4,0),(23538,'3420-324',45723,45724,4,0),(23539,'7000-651',45783,45784,4,0),(23540,'7005-370',45781,45782,4,0),(23541,'8200',45869,45870,4,0),(23542,'8125-017',45865,45866,4,0),(23543,'8701-906',45863,45864,4,0),(23544,'8135-159',45859,45860,4,0),(23545,'8135-100',45855,45856,4,0),(23546,'8000',45851,45852,4,0),(23547,'8000292',45849,45850,4,0),(23548,'8000434',45847,45848,4,0),(23549,'8005',45845,45846,4,0),(23550,'8005-135',45843,45844,4,0),(23551,'8005491',45841,45842,4,0),(23552,'8600',45837,45838,4,0),(23553,'8600-546',45835,45836,4,0),(23554,'8600546',45833,45834,4,0),(23555,'8600681',45831,45832,4,0),(23556,'8100-170',45827,45828,4,0),(23557,'8100-297',45825,45826,4,0),(23558,'8100-500',45823,45824,4,0),(23559,'8500-132',45819,45820,4,0),(23560,'8700-061',45815,45816,4,0),(23561,'8550-431',45811,45812,4,0),(23562,'8700',45807,45808,4,0),(23563,'8700-213',45805,45806,4,0),(23564,'8000-081',45801,45802,4,0),(23565,'8300-154',45797,45798,4,0),(23566,'8800-439',45793,45794,4,0),(23567,'8125-478',45789,45790,4,0),(23568,'9000-273',45875,45876,4,0),(23569,'3570',45905,45906,4,0),(23570,'3570',45901,45902,4,0),(23571,'6300',45897,45898,4,0),(23572,'6260-034',45893,45894,4,0),(23573,'6320-344',45889,45890,4,0),(23574,'6320',45885,45886,4,0),(23575,'6355-286',45881,45882,4,0),(23576,'2460-197',45989,45990,4,0),(23577,'2460197',45987,45988,4,0),(23578,'2400-489',45983,45984,4,0),(23579,'2440-462',45979,45980,4,0),(23580,'2480-078',45975,45976,4,0),(23581,'2460',45971,45972,4,0),(23582,'2425-718',45967,45968,4,0),(23583,'3250',45963,45964,4,0),(23584,'2405-022',45959,45960,4,0),(23585,'2430',45955,45956,4,0),(23586,'2430081',45953,45954,4,0),(23587,'2415',45949,45950,4,0),(23588,'3105',45945,45946,4,0),(23589,'2480-215',45941,45942,4,0),(23590,'2450-065',45937,45938,4,0),(23591,'2425',45933,45934,4,0),(23592,'2480',45929,45930,4,0),(23593,'2480300',45927,45928,4,0),(23594,'3250-350',45923,45924,4,0),(23595,'2430',45919,45920,4,0),(23596,'2400-406',45915,45916,4,0),(23597,'2430',45911,45912,4,0),(23598,'2685-394',46155,46156,4,0),(23599,'2580',46151,46152,4,0),(23600,'1700',46147,46148,4,0),(23601,'2705-430',46143,46144,4,0),(23602,'2615',46139,46140,4,0),(23603,'2650',46135,46136,4,0),(23604,'2650-436',46133,46134,4,0),(23605,'2700-072',46131,46132,4,0),(23606,'2720-119',46129,46130,4,0),(23607,'2630-095',46125,46126,4,0),(23608,'2925',46121,46122,4,0),(23609,'2925-566',46119,46120,4,0),(23610,'2580-487',46115,46116,4,0),(23611,'2750-461',46111,46112,4,0),(23612,'2750-830',46109,46110,4,0),(23613,'2765-218',46105,46106,4,0),(23614,'1100',46099,46100,4,0),(23615,'1100-467',46097,46098,4,0),(23616,'1200',46095,46096,4,0),(23617,'1300',46093,46094,4,0),(23618,'1300-598',46091,46092,4,0),(23619,'1500',46089,46090,4,0),(23620,'1600',46087,46088,4,0),(23621,'1700-151',46085,46086,4,0),(23622,'1750-364',46083,46084,4,0),(23623,'1900',46081,46082,4,0),(23624,'2735',46079,46080,4,0),(23625,'2690',46075,46076,4,0),(23626,'2644',46071,46072,4,0),(23627,'2715-673',46067,46068,4,0),(23628,'2790',46063,46064,4,0),(23629,'2685-223',46059,46060,4,0),(23630,'2790-444',46055,46056,4,0),(23631,'2685-329',46051,46052,4,0),(23632,'2635',46047,46048,4,0),(23633,'2635-003',46045,46046,4,0),(23634,'2685-332',46041,46042,4,0),(23635,'2560',46037,46038,4,0),(23636,'2560565',46035,46036,4,0),(23637,'2695-620',46031,46032,4,0),(23638,'2660',46027,46028,4,0),(23639,'2725-403',46023,46024,4,0),(23640,'2665',46019,46020,4,0),(23641,'2600-278',46015,46016,4,0),(23642,'2625',46013,46014,4,0),(23643,'9680',46009,46010,4,0),(23644,'52001',46005,46006,4,0),(23645,'52002',46003,46004,4,0),(23646,'52003',46001,46002,4,0),(23647,'52004',45999,46000,4,0),(23648,'52005',45997,45998,4,0),(23649,'52006',45995,45996,4,0),(23650,'07350',46185,46186,4,0),(23651,'7300-526',46181,46182,4,0),(23652,'7330-254',46177,46178,4,0),(23653,'4100',46399,46400,4,0),(23654,'4600',46395,46396,4,0),(23655,'4600-078',46393,46394,4,0),(23656,'4640',46389,46390,4,0),(23657,'4640-014',46387,46388,4,0),(23658,'4640-147',46385,46386,4,0),(23659,'4640-597',46383,46384,4,0),(23660,'4640-036',46379,46380,4,0),(23661,'4000',46375,46376,4,0),(23662,'4620-091',46371,46372,4,0),(23663,'4050-257',46367,46368,4,0),(23664,'4425-095',46363,46364,4,0),(23665,'4445',46361,46362,4,0),(23666,'4445-324',46359,46360,4,0),(23667,'4445-655',46357,46358,4,0),(23668,'4425',46353,46354,4,0),(23669,'4620-523',46345,46346,4,0),(23670,'4425',46339,46340,4,0),(23671,'4425-111',46337,46338,4,0),(23672,'4425-122',46335,46336,4,0),(23673,'4470-005',46333,46334,4,0),(23674,'4470-558',46331,46332,4,0),(23675,'4470-768',46329,46330,4,0),(23676,'4475',46327,46328,4,0),(23677,'4475-451',46325,46326,4,0),(23678,'4575',46321,46322,4,0),(23679,'4630',46319,46320,4,0),(23680,'4634',46317,46318,4,0),(23681,'4450',46313,46314,4,0),(23682,'4450-009',46311,46312,4,0),(23683,'4455',46309,46310,4,0),(23684,'4455-127',46307,46308,4,0),(23685,'4460-421',46305,46306,4,0),(23686,'4465',46303,46304,4,0),(23687,'4200',46299,46300,4,0),(23688,'4200026',46297,46298,4,0),(23689,'4590',46293,46294,4,0),(23690,'4590-578',46291,46292,4,0),(23691,'4950-550',46287,46288,4,0),(23692,'4200-210',46283,46284,4,0),(23693,'4590-478',46277,46278,4,0),(23694,'4595-391',46275,46276,4,0),(23695,'4595-463',46273,46274,4,0),(23696,'4590-550',46269,46270,4,0),(23697,'4425',46265,46266,4,0),(23698,'4455',46259,46260,4,0),(23699,'4495',46253,46254,4,0),(23700,'4490',46249,46250,4,0),(23701,'4250',46245,46246,4,0),(23702,'4435-005',46241,46242,4,0),(23703,'4435057',46239,46240,4,0),(23704,'4780',46235,46236,4,0),(23705,'4780-546',46233,46234,4,0),(23706,'4795',46231,46232,4,0),(23707,'4465-083',46227,46228,4,0),(23708,'4620-523',46223,46224,4,0),(23709,'4745-030',46219,46220,4,0),(23710,'4785',46217,46218,4,0),(23711,'4440',46213,46214,4,0),(23712,'4480',46209,46210,4,0),(23713,'4400',46205,46206,4,0),(23714,'4400-209',46203,46204,4,0),(23715,'4400-312',46201,46202,4,0),(23716,'4405-528',46199,46200,4,0),(23717,'4405-625',46197,46198,4,0),(23718,'4405819',46195,46196,4,0),(23719,'4410-353',46193,46194,4,0),(23720,'4410001',46191,46192,4,0),(23721,'2380',46429,46430,4,0),(23722,'2070',46425,46426,4,0),(23723,'2100-039',46421,46422,4,0),(23724,'6120-663',46417,46418,4,0),(23725,'2040',46411,46412,4,0),(23726,'2000',46407,46408,4,0),(23727,'2890-047',46495,46496,4,0),(23728,'2805',46491,46492,4,0),(23729,'2815-653',46489,46490,4,0),(23730,'2925-589',46485,46486,4,0),(23731,'2925-734',46483,46484,4,0),(23732,'2820',46479,46480,4,0),(23733,'2820599',46477,46478,4,0),(23734,'2825',46473,46474,4,0),(23735,'2835-440',46469,46470,4,0),(23736,'2835',46465,46466,4,0),(23737,'2835-415',46463,46464,4,0),(23738,'2840-068',46457,46458,4,0),(23739,'2840068',46455,46456,4,0),(23740,'2865-572',46453,46454,4,0),(23741,'2970-088',46449,46450,4,0),(23742,'2910',46443,46444,4,0),(23743,'2825-832',46439,46440,4,0),(23744,'2925542',46435,46436,4,0),(23745,'4950',46519,46520,4,0),(23746,'4950474',46517,46518,4,0),(23747,'4990',46513,46514,4,0),(23748,'4935-546',46509,46510,4,0),(23749,'4900',46505,46506,4,0),(23750,'4900-317',46503,46504,4,0),(23751,'4925',46501,46502,4,0),(23752,'5400',46541,46542,4,0),(23753,'5400-121',46539,46540,4,0),(23754,'5400-311',46537,46538,4,0),(23755,'5400-435',46535,46536,4,0),(23756,'5425',46533,46534,4,0),(23757,'5060',46529,46530,4,0),(23758,'5030',46525,46526,4,0),(23759,'3515-146',46601,46602,4,0),(23760,'3670-150',46597,46598,4,0),(23761,'4690-363',46593,46594,4,0),(23762,'3510-123',46589,46590,4,0),(23763,'5100',46585,46586,4,0),(23764,'5100-139',46583,46584,4,0),(23765,'3600-392',46579,46580,4,0),(23766,'3680-123',46575,46576,4,0),(23767,'3640',46571,46572,4,0),(23768,'3640-225',46569,46570,4,0),(23769,'3640225',46567,46568,4,0),(23770,'3500',46563,46564,4,0),(23771,'3500-703',46561,46562,4,0),(23772,'3500209',46559,46560,4,0),(23773,'3500703',46557,46558,4,0),(23774,'3510',46555,46556,4,0),(23775,'3510-720',46553,46554,4,0),(23776,'3515-150',46551,46552,4,0),(23777,'3670',46547,46548,4,0),(23778,'Aalsmeer',45458,45461,3,1),(23779,'Alphen Aan Den Rijn',45454,45457,3,1),(23780,'Bergeijk',45450,45453,3,1),(23781,'Dirksland',45446,45449,3,1),(23782,'Honselersdijk',45442,45445,3,1),(23783,'Legmeerdijk',45440,45441,3,0),(23784,'Maasdijk',45438,45439,3,0),(23785,'Uithoorn',45434,45437,3,1),(23786,'01431',45459,45460,4,0),(23787,'2403',45455,45456,4,0),(23788,'5571CB',45451,45452,4,0),(23789,'03247',45447,45448,4,0),(23790,'02675',45443,45444,4,0),(23791,'01421',45435,45436,4,0),(23792,'28341',26731,26732,4,0),(23793,'28342',26729,26730,4,0),(23794,'28343',26727,26728,4,0),(23795,'29600',27225,27226,4,0),(23796,'46700',39885,39886,4,0),(23797,'1700-236',46101,46102,4,0),(23798,'46649',39587,39588,4,0),(23799,'4760-105',45643,45644,4,0),(23800,'4000-217',46402,46403,3,0),(23801,'2894',46445,46446,4,0),(23803,'4470-640',46341,46342,4,0),(23804,'33400',2395,2396,4,0),(23805,'02007',411,412,4,0),(23806,'03080',1003,1004,4,0),(23807,'03200',1293,1294,4,0),(23808,'03500',1075,1076,4,0),(23809,'04721',2311,2312,4,0),(23810,'07070',5541,5542,4,0); +INSERT INTO `zoneGeo` VALUES (1,'Origin',1,47866,0,23932),(2,'España',2,44861,1,22429),(3,'Francia',44862,45563,1,350),(4,'Holanda',45564,45597,1,16),(5,'Portugal',45598,46841,1,621),(6,'Açoures',45599,45600,2,0),(7,'Ain',44863,44868,2,2),(8,'Aisne',44869,44870,2,0),(9,'Álava',3,370,2,183),(10,'Albacete',371,894,2,261),(11,'Alicante',895,1674,2,389),(12,'Allier',44871,44872,2,0),(13,'Almería',1675,2322,2,323),(14,'Alpes-de-Haute-Provence',44873,44890,2,8),(15,'Alpes-Maritimes',44891,44892,2,0),(16,'Ardèche',44893,44894,2,0),(17,'Ardennes',44895,44896,2,0),(18,'Ariège',44897,44898,2,0),(19,'Asturias',2323,3410,2,543),(20,'Aube',44899,44900,2,0),(21,'Aude',44901,44902,2,0),(22,'Aveiro',45601,45698,2,48),(23,'Aveyron',44903,44908,2,2),(24,'Ávila',3411,4498,2,543),(25,'Badajoz',4499,5272,2,386),(26,'Baleares (Formentera)',5273,5274,2,0),(27,'Baleares (Ibiza)',5275,5336,2,30),(28,'Baleares (Mallorca)',5337,5722,2,192),(29,'Baleares (Menorca)',5723,5776,2,26),(30,'Barcelona',5777,7306,2,764),(31,'Bas-Rhin',44909,44910,2,0),(32,'Beja',45699,45708,2,4),(33,'Bouches-du-Rhône',44911,44986,2,37),(34,'Braga',45709,45826,2,58),(35,'Braganza',45827,45832,2,2),(36,'Burgos',7307,9134,2,913),(37,'Cáceres',9135,10186,2,525),(38,'Cádiz',10187,10510,2,161),(39,'Calvados',44987,44992,2,2),(40,'Cantabria',10511,11296,2,392),(41,'Cantal',44993,44994,2,0),(42,'Castellón',11297,11902,2,302),(43,'Castelo Branco',45833,45868,2,17),(44,'Ceuta',45869,45882,2,6),(45,'Charente',44995,45000,2,2),(46,'Charente-Maritime',45001,45006,2,2),(47,'Cher',45007,45008,2,0),(48,'Ciudad Real',11903,12412,2,254),(49,'Coimbra',45883,45948,2,32),(50,'Córdoba',12413,12928,2,257),(51,'Corrèze',45009,45010,2,0),(52,'Corse-du-Sud',45011,45012,2,0),(53,'Côte-d’Or',45013,45014,2,0),(54,'Côtes-d’Armor',45015,45028,2,6),(55,'Creuse',45029,45030,2,0),(56,'Cuenca',12929,13984,2,527),(57,'Deux-Sèvres',45031,45032,2,0),(58,'Dordogne',45033,45034,2,0),(59,'Doubs',45035,45040,2,2),(60,'Drôme',45041,45050,2,4),(61,'Essonne',45051,45052,2,0),(62,'Eure',45053,45062,2,4),(63,'Eure-et-Loir',45063,45064,2,0),(64,'Évora',45949,45956,2,3),(65,'Faro',45957,46042,2,42),(66,'Finistère',45065,45102,2,18),(67,'Funchal',46043,46048,2,2),(68,'Gard',45103,45116,2,6),(69,'Gers',45117,45118,2,0),(70,'Girona',13985,15110,2,562),(71,'Gironde',45119,45124,2,2),(72,'Granada',15111,16000,2,444),(73,'Guadalajara',16001,17354,2,676),(74,'Guarda',46049,46080,2,15),(75,'Guipuzcoa',17355,17798,2,221),(76,'Haut-Rhin',45125,45126,2,0),(77,'Haute-Corse',45127,45128,2,0),(78,'Haute-Garonne',45129,45138,2,4),(79,'Haute-Loire',45139,45140,2,0),(80,'Haute-Marne',45141,45142,2,0),(81,'Haute-Saone',45143,45144,2,0),(82,'Haute-Savoie',45145,45154,2,4),(83,'Haute-Vienne',45155,45156,2,0),(84,'Hautes-Alpes',45157,45158,2,0),(85,'Hautes-Pyrénées',45159,45160,2,0),(86,'Hauts-de-Seine',45161,45166,2,2),(87,'Hérault',45167,45184,2,8),(88,'Honserlersdijk',45565,45566,2,0),(89,'Huelva',17799,18256,2,228),(90,'Huesca',18257,19478,2,610),(91,'Ille-et-Vilaine',45185,45186,2,0),(92,'Indre',45187,45188,2,0),(93,'Indre-et-Loire',45189,45198,2,4),(94,'Isère',45199,45204,2,2),(95,'Jaén',19479,20072,2,296),(96,'Jura',45205,45206,2,0),(97,'La Coruña',20073,21094,2,510),(98,'La Rioja',21095,21854,2,379),(99,'Landes',45207,45222,2,7),(100,'Leiria',46081,46164,2,41),(101,'León',21855,23424,2,784),(102,'Lérida',23425,23426,2,0),(103,'Lisboa',46165,46364,2,99),(104,'Lleida',23427,24710,2,641),(105,'Loir-et-Cher',45223,45224,2,0),(106,'Loire',45225,45226,2,0),(107,'Loire-Atlantique',45227,45232,2,2),(108,'Loiret',45233,45234,2,0),(109,'Lot',45235,45236,2,0),(110,'Lot-et-Garonne',45237,45238,2,0),(111,'Lozère',45239,45240,2,0),(112,'Lugo',24711,25868,2,578),(113,'Madrid',25869,26922,2,526),(114,'Maine-et-Loire',45241,45250,2,4),(115,'Málaga',26923,27524,2,300),(116,'Manche',45251,45256,2,2),(117,'Marne',45257,45262,2,2),(118,'Mayenne',45263,45264,2,0),(119,'Melilla',46365,46380,2,7),(120,'Meurthe-et-Moselle',45265,45266,2,0),(121,'Meuse',45267,45268,2,0),(122,'Morbihan',45269,45278,2,4),(123,'Moselle',45279,45280,2,0),(124,'Murcia',27525,28098,2,286),(125,'Navarra',28099,29400,2,650),(126,'Nièvre',45281,45282,2,0),(127,'Noord Holland',45567,45596,2,14),(128,'Nord',45283,45300,2,8),(129,'Oise',45301,45306,2,2),(130,'Orense',29401,30426,2,512),(131,'Orne',45307,45308,2,0),(132,'Palencia',30427,31362,2,467),(133,'París',45309,45324,2,7),(134,'Pas-de-Calais',45325,45334,2,4),(135,'Pontevedra',31363,32318,2,477),(136,'Portalegre',46381,46394,2,6),(137,'Porto',46395,46624,2,114),(138,'Puy-de-Dôme',45335,45336,2,0),(139,'Pyrénées-Atlantiques',45337,45416,2,39),(140,'Pyrénées-Orientales',45417,45430,2,6),(141,'Rhône',45431,45442,2,5),(142,'Salamanca',32319,34072,2,876),(143,'Santarém',46625,46652,2,13),(144,'Saone-et-Loire',45443,45448,2,2),(145,'Sarthe',45449,45450,2,0),(146,'Savoie',45451,45452,2,0),(147,'Segovia',34073,35054,2,490),(148,'Seine-et-Marne',45453,45454,2,0),(149,'Seine-Maritime',45455,45464,2,4),(150,'Seine-Saint-Denis',45465,45474,2,4),(151,'Setúbal',46653,46730,2,38),(152,'Sevilla',35055,35618,2,281),(153,'Somme',45475,45476,2,0),(154,'Soria',35619,36566,2,473),(155,'Tarn',45477,45490,2,6),(156,'Tarn-et-Garonne',45491,45496,2,2),(157,'Tarragona',36567,37450,2,441),(158,'Territoire de Belfort',45497,45498,2,0),(159,'Teruel',37451,38510,2,529),(160,'Toledo',38511,39422,2,455),(161,'Val-d’Oise',45499,45508,2,4),(162,'Val-de-Marne',45509,45520,2,5),(163,'Valencia',39423,40672,2,624),(164,'Valladolid',40673,41668,2,497),(165,'Var',45521,45534,2,6),(166,'Vaucluse',45535,45540,2,2),(167,'Vendée',45541,45542,2,0),(168,'Viana do Castelo',46731,46756,2,12),(169,'Vienne',45543,45544,2,0),(170,'Vila Real',46757,46778,2,10),(171,'Viseu',46779,46840,2,30),(172,'Vizcaya',41669,42216,2,273),(173,'Vosges',45545,45558,2,6),(174,'Yonne',45559,45560,2,0),(175,'Yvelines',45561,45562,2,0),(176,'Zamora',42217,43536,2,659),(177,'Zaragoza',43537,44860,2,661),(178,'A Arnoia',29402,29405,3,1),(179,'A Baña',20074,20081,3,3),(180,'A Bola',29406,29409,3,1),(181,'A Cañiza',31364,31381,3,8),(182,'A Capela',20082,20085,3,1),(183,'A Coruña',20086,20117,3,15),(184,'A Estrada',31382,31413,3,15),(185,'A Fonsagrada',24712,24739,3,13),(186,'A Guarda',31414,31421,3,3),(187,'A Gudiña',29410,29421,3,5),(188,'A Illa de Arousa',31422,31425,3,1),(189,'A Lama',31426,31443,3,8),(190,'A Laracha',20118,20125,3,3),(191,'A Merca',29422,29431,3,4),(192,'A Mezquita',29432,29441,3,4),(193,'A Pastoriza',24740,24749,3,4),(194,'A Peroxa',29442,29455,3,6),(195,'A Pobra de Trives',29456,29467,3,5),(196,'A Pobra do Brollón',24750,24775,3,12),(197,'A Pobra do Caramiñal',20126,20133,3,3),(198,'A Pontenova',24776,24799,3,11),(199,'A Rúa',29468,29475,3,3),(200,'A Teixeira',29476,29481,3,2),(201,'A Veiga',29482,29497,3,7),(202,'Ababuj',37452,37455,3,1),(203,'Abades',34074,34077,3,1),(204,'Abadía',9136,9139,3,1),(205,'Abadín',24800,24813,3,6),(206,'Abadiño',41670,41673,3,1),(207,'Abáigar',28100,28103,3,1),(208,'Abajas',7308,7313,3,2),(209,'Ábalos',21096,21099,3,1),(210,'Abaltzisketa',17356,17359,3,1),(211,'Abánades',16002,16005,3,1),(212,'Abanilla',27526,27535,3,4),(213,'Abanto',43538,43541,3,1),(214,'Abanto y Ciérvana-Abanto Zierbena',41674,41679,3,2),(215,'Abarán',27536,27541,3,2),(216,'Abarca de Campos',30428,30431,3,1),(217,'Abárzuza/Abartzuza',28104,28107,3,1),(218,'Abaurregaina/Abaurrea Alta',28108,28111,3,1),(219,'Abaurrepea/Abaurrea Baja',28112,28115,3,1),(220,'Abegondo',20134,20137,3,1),(221,'Abejar',35620,35623,3,1),(222,'Abejuela',37456,37459,3,1),(223,'Abella de la Conca',23428,23435,3,3),(224,'Abengibre',372,375,3,1),(225,'Abenójar',11904,11909,3,2),(226,'Aberin',28116,28121,3,2),(227,'Abertura',9140,9143,3,1),(228,'Abezames',42218,42221,3,1),(229,'Abia de la Obispalía',12930,12933,3,1),(230,'Abia de las Torres',30432,30435,3,1),(231,'Abiego',18258,18263,3,2),(232,'Abizanda',18264,18269,3,2),(233,'Abla',1676,1679,3,1),(234,'Ablanque',16006,16009,3,1),(235,'Ablitas',28122,28125,3,1),(236,'Abrera',5778,5781,3,1),(237,'Abrucena',1680,1685,3,2),(238,'Abusejo',32320,32323,3,1),(239,'Acebedo',21856,21861,3,2),(240,'Acebo',9144,9147,3,1),(241,'Acedera',4500,4505,3,2),(242,'Acehúche',9148,9151,3,1),(243,'Aceituna',9152,9155,3,1),(244,'Acered',43542,43545,3,1),(245,'Aceuchal',4506,4511,3,2),(246,'Adahuesca',18270,18273,3,1),(247,'Adalia',40674,40677,3,1),(248,'Adamuz',12414,12421,3,3),(249,'Adanero',3412,3415,3,1),(250,'Ademuz',39424,39427,3,1),(251,'Adiós',28126,28129,3,1),(252,'Adobes',16010,16013,3,1),(253,'Ador',39428,39431,3,1),(254,'Adra',1686,1693,3,3),(255,'Adrada de Haza',7314,7317,3,1),(256,'Adrada de Pirón',34078,34081,3,1),(257,'Adradas',35624,35627,3,1),(258,'Adrados',34082,34085,3,1),(259,'Aduna',17360,17363,3,1),(260,'Adzaneta de Albaida',39432,39435,3,1),(261,'Agallas',32324,32327,3,1),(262,'Àger',23436,23443,3,3),(263,'Agolada',31444,31461,3,8),(264,'Agón',43546,43549,3,1),(265,'Agoncillo',21100,21103,3,1),(266,'Agost',896,899,3,1),(267,'Agramunt',23444,23453,3,4),(268,'Ágreda',35628,35635,3,3),(269,'Agres',900,903,3,1),(270,'Agrón',15112,15115,3,1),(271,'Aguadulce',35056,35059,3,1),(272,'Aguarón',43550,43553,3,1),(273,'Aguas Cándidas',7318,7321,3,1),(274,'Aguasal',40678,40681,3,1),(275,'Aguatón',37460,37463,3,1),(276,'Aguaviva',37464,37467,3,1),(277,'Agudo',11910,11913,3,1),(278,'Agüero',18274,18277,3,1),(279,'Aguilafuente',34086,34089,3,1),(280,'Aguilar de Bureba',7322,7325,3,1),(281,'Aguilar de Campoo',30436,30451,3,7),(282,'Aguilar de Campos',40682,40685,3,1),(283,'Aguilar de Codés',28130,28133,3,1),(284,'Aguilar de la Frontera',12422,12425,3,1),(285,'Aguilar de Segarra',5782,5785,3,1),(286,'Aguilar del Alfambra',37468,37471,3,1),(287,'Aguilar del Río Alhama',21104,21109,3,2),(288,'Águilas',27542,27547,3,2),(289,'Aguilón',43554,43557,3,1),(290,'Agullana',13986,13989,3,1),(291,'Agullent',39436,39439,3,1),(292,'Agurain/Salvatierra',4,9,3,2),(293,'Ahigal',9156,9159,3,1),(294,'Ahigal de los Aceiteros',32328,32331,3,1),(295,'Ahigal de Villarino',32332,32335,3,1),(296,'Ahillones',4512,4515,3,1),(297,'Aia',17364,17369,3,2),(298,'Aibar/Oibar',28134,28137,3,1),(299,'Aiguafreda',5786,5789,3,1),(300,'Aiguamúrcia',36568,36573,3,2),(301,'Aiguaviva',13990,13993,3,1),(302,'Aigües',904,907,3,1),(303,'Aín',11298,11301,3,1),(304,'Aínsa-Sobrarbe',18278,18293,3,7),(305,'Ainzón',43558,43561,3,1),(306,'Aisa',18294,18299,3,2),(307,'Aitona',23454,23457,3,1),(308,'Aizarnazabal',17370,17373,3,1),(309,'Ajalvir',25870,25873,3,1),(310,'Ajamil de Cameros',21110,21113,3,1),(311,'Ajangiz',41680,41683,3,1),(312,'Ajofrín',38512,38515,3,1),(313,'Alacón',37472,37475,3,1),(314,'Alacuás',39440,39443,3,1),(315,'Aladrén',43562,43565,3,1),(316,'Alaejos',40686,40689,3,1),(317,'Alagón',43566,43571,3,2),(318,'Alagón del Río',9160,9163,3,1),(319,'Alaior',5724,5727,3,1),(320,'Alájar',17800,17803,3,1),(321,'Alameda',26924,26927,3,1),(322,'Alameda de la Sagra',38516,38519,3,1),(323,'Alameda del Valle',25874,25877,3,1),(324,'Alamedilla',15116,15121,3,2),(325,'Alamillo',11914,11917,3,1),(326,'Alaminos',16014,16017,3,1),(327,'Alange',4516,4519,3,1),(328,'Alanís',35060,35063,3,1),(329,'Alar del Rey',30452,30459,3,3),(330,'Alaraz',32336,32339,3,1),(331,'Alarba',43572,43575,3,1),(332,'Alarcón',12934,12937,3,1),(333,'Alarilla',16018,16021,3,1),(334,'Alaró',5338,5341,3,1),(335,'Alàs i Cerc',23458,23465,3,3),(336,'Alatoz',376,379,3,1),(337,'Alba',37476,37479,3,1),(338,'Alba de Cerrato',30460,30463,3,1),(339,'Alba de Tormes',32340,32349,3,4),(340,'Alba de Yeltes',32350,32353,3,1),(341,'Albacete',380,413,3,16),(342,'Albaida',39444,39447,3,1),(343,'Albaida del Aljarafe',35064,35067,3,1),(344,'Albal',39448,39451,3,1),(345,'Albalá',9164,9169,3,2),(346,'Albaladejo',11918,11921,3,1),(347,'Albaladejo del Cuende',12938,12941,3,1),(348,'Albalat de la Ribera',39452,39455,3,1),(349,'Albalat dels Sorells',39456,39459,3,1),(350,'Albalat dels Tarongers',39460,39463,3,1),(351,'Albalate de Cinca',18300,18303,3,1),(352,'Albalate de las Nogueras',12942,12945,3,1),(353,'Albalate de Zorita',16022,16027,3,2),(354,'Albalate del Arzobispo',37480,37483,3,1),(355,'Albalatillo',18304,18307,3,1),(356,'Albánchez',1694,1699,3,2),(357,'Albanchez de Mágina',19480,19483,3,1),(358,'Albanyà',13994,13999,3,2),(359,'Albares',16028,16031,3,1),(360,'Albarracín',37484,37491,3,3),(361,'Albarreal de Tajo',38520,38523,3,1),(362,'Albatana',414,417,3,1),(363,'Albatàrrec',23466,23469,3,1),(364,'Albatera',908,911,3,1),(365,'Albelda',18308,18311,3,1),(366,'Albelda de Iregua',21114,21117,3,1),(367,'Albendea',12946,12949,3,1),(368,'Albendiego',16032,16035,3,1),(369,'Albentosa',37492,37497,3,2),(370,'Alberique',39464,39467,3,1),(371,'Alberite',21118,21123,3,2),(372,'Alberite de San Juan',43576,43579,3,1),(373,'Albero Alto',18312,18315,3,1),(374,'Albero Bajo',18316,18319,3,1),(375,'Alberuela de Tubo',18320,18323,3,1),(376,'Albesa',23470,23473,3,1),(377,'Albeta',43580,43583,3,1),(378,'Albillos',7326,7329,3,1),(379,'Albinyana',36574,36579,3,2),(380,'Albiztur',17374,17377,3,1),(381,'Albocàsser',11302,11305,3,1),(382,'Alboloduy',1700,1705,3,2),(383,'Albolote',15122,15127,3,2),(384,'Albondón',15128,15131,3,1),(385,'Albons',14000,14003,3,1),(386,'Alborache',39468,39471,3,1),(387,'Alboraya',39472,39479,3,3),(388,'Alborea',418,421,3,1),(389,'Alborge',43584,43587,3,1),(390,'Albornos',3416,3419,3,1),(391,'Albox',1706,1719,3,6),(392,'Albudeite',27548,27551,3,1),(393,'Albuixech',39480,39483,3,1),(394,'Albuñán',15132,15135,3,1),(395,'Albuñol',15136,15143,3,3),(396,'Albuñuelas',15144,15147,3,1),(397,'Alburquerque',4520,4525,3,2),(398,'Alcabón',38524,38527,3,1),(399,'Alcácer',39484,39489,3,2),(400,'Alcadozo',422,427,3,2),(401,'Alcaine',37498,37501,3,1),(402,'Alcalá de Ebro',43588,43591,3,1),(403,'Alcalá de Guadaíra',35068,35073,3,2),(404,'Alcalá de Gurrea',18324,18329,3,2),(405,'Alcalá de Henares',25878,25893,3,7),(406,'Alcalá de la Selva',37502,37507,3,2),(407,'Alcalá de la Vega',12950,12953,3,1),(408,'Alcalá de los Gazules',10188,10191,3,1),(409,'Alcalá de Moncayo',43592,43595,3,1),(410,'Alcalà de Xivert',11306,11311,3,2),(411,'Alcalá del Júcar',428,437,3,4),(412,'Alcalá del Obispo',18330,18333,3,1),(413,'Alcalá del Río',35074,35081,3,3),(414,'Alcalá del Valle',10192,10195,3,1),(415,'Alcalá la Real',19484,19503,3,9),(416,'Alcalalí',912,917,3,2),(417,'Alcampell',18334,18337,3,1),(418,'Alcanadre',21124,21127,3,1),(419,'Alcanar',36580,36585,3,2),(420,'Alcañices',42222,42231,3,4),(421,'Alcañiz',37508,37515,3,3),(422,'Alcañizo',38528,38531,3,1),(423,'Alcanó',23474,23477,3,1),(424,'Alcántara',9170,9177,3,3),(425,'Alcántara de Júcar',39490,39493,3,1),(426,'Alcantarilla',27552,27555,3,1),(427,'Alcantud',12954,12957,3,1),(428,'Alcaracejos',12426,12429,3,1),(429,'Alcaraz',438,447,3,4),(430,'Alcarràs',23478,23483,3,2),(431,'Alcaucín',26928,26933,3,2),(432,'Alcaudete',19504,19511,3,3),(433,'Alcaudete de la Jara',38532,38535,3,1),(434,'Alcázar de San Juan',11922,11931,3,4),(435,'Alcázar del Rey',12958,12961,3,1),(436,'Alcazarén',40690,40693,3,1),(437,'Alcoba',11932,11937,3,2),(438,'Alcobendas',25894,25901,3,3),(439,'Alcocer',16036,16039,3,1),(440,'Alcocer de Planes',918,921,3,1),(441,'Alcocero de Mola',7330,7333,3,1),(442,'Alcohujate',12962,12965,3,1),(443,'Alcolea',1720,1725,3,2),(444,'Alcolea de Calatrava',11938,11941,3,1),(445,'Alcolea de Cinca',18338,18341,3,1),(446,'Alcolea de las Peñas',16040,16043,3,1),(447,'Alcolea de Tajo',38536,38539,3,1),(448,'Alcolea del Pinar',16044,16051,3,3),(449,'Alcolea del Río',35082,35087,3,2),(450,'Alcoleja',922,925,3,1),(451,'Alcoletge',23484,23489,3,2),(452,'Alcollarín',9178,9181,3,1),(453,'Alconaba',35636,35639,3,1),(454,'Alconada',32354,32357,3,1),(455,'Alconada de Maderuelo',34090,34093,3,1),(456,'Alconchel',4526,4529,3,1),(457,'Alconchel de Ariza',43596,43599,3,1),(458,'Alconchel de la Estrella',12966,12969,3,1),(459,'Alconera',4530,4533,3,1),(460,'Alcóntar',1726,1731,3,2),(461,'Alcorcón',25902,25913,3,5),(462,'Alcorisa',37516,37519,3,1),(463,'Alcoroches',16052,16055,3,1),(464,'Alcover',36586,36589,3,1),(465,'Alcoy/Alcoi',926,939,3,6),(466,'Alcubierre',18342,18345,3,1),(467,'Alcubilla de Avellaneda',35640,35645,3,2),(468,'Alcubilla de las Peñas',35646,35649,3,1),(469,'Alcubilla de Nogales',42232,42235,3,1),(470,'Alcubillas',11942,11945,3,1),(471,'Alcublas',39494,39497,3,1),(472,'Alcúdia',5342,5345,3,1),(473,'Alcudia de Crespins',39498,39501,3,1),(474,'Alcudia de Monteagud',1732,1735,3,1),(475,'Alcudia de Veo',11312,11315,3,1),(476,'Alcuéscar',9182,9185,3,1),(477,'Aldaya',39502,39505,3,1),(478,'Aldea de San Miguel',40694,40697,3,1),(479,'Aldea del Cano',9186,9189,3,1),(480,'Aldea del Fresno',25914,25917,3,1),(481,'Aldea del Obispo',32358,32361,3,1),(482,'Aldea del Rey',11946,11949,3,1),(483,'Aldea en Cabo',38540,38543,3,1),(484,'Aldea Real',34094,34097,3,1),(485,'Aldeacentenera',9190,9193,3,1),(486,'Aldeacipreste',32362,32365,3,1),(487,'Aldeadávila de la Ribera',32366,32373,3,3),(488,'Aldealafuente',35650,35653,3,1),(489,'Aldealcorvo',34098,34101,3,1),(490,'Aldealengua',32374,32377,3,1),(491,'Aldealengua de Pedraza',34102,34105,3,1),(492,'Aldealengua de Santa María',34106,34109,3,1),(493,'Aldealices',35654,35657,3,1),(494,'Aldealpozo',35658,35661,3,1),(495,'Aldealseñor',35662,35665,3,1),(496,'Aldeamayor de San Martín',40698,40703,3,2),(497,'Aldeanueva de Barbarroya',38544,38547,3,1),(498,'Aldeanueva de Ebro',21128,21131,3,1),(499,'Aldeanueva de Figueroa',32378,32381,3,1),(500,'Aldeanueva de Guadalajara',16056,16059,3,1),(501,'Aldeanueva de la Serrezuela',34110,34113,3,1),(502,'Aldeanueva de la Sierra',32382,32385,3,1),(503,'Aldeanueva de la Vera',9194,9197,3,1),(504,'Aldeanueva de San Bartolomé',38548,38551,3,1),(505,'Aldeanueva de Santa Cruz',3420,3423,3,1),(506,'Aldeanueva del Camino',9198,9201,3,1),(507,'Aldeanueva del Codonal',34114,34117,3,1),(508,'Aldeaquemada',19512,19515,3,1),(509,'Aldearrodrigo',32386,32389,3,1),(510,'Aldearrubia',32390,32393,3,1),(511,'Aldeaseca',3424,3427,3,1),(512,'Aldeaseca de Alba',32394,32397,3,1),(513,'Aldeaseca de la Frontera',32398,32401,3,1),(514,'Aldeasoña',34118,34121,3,1),(515,'Aldeatejada',32402,32413,3,5),(516,'Aldeavieja de Tormes',32414,32417,3,1),(517,'Aldehorno',34122,34125,3,1),(518,'Aldehuela de Jerte',9202,9205,3,1),(519,'Aldehuela de la Bóveda',32418,32423,3,2),(520,'Aldehuela de Liestos',43600,43603,3,1),(521,'Aldehuela de Periáñez',35666,35669,3,1),(522,'Aldehuela de Yeltes',32424,32429,3,2),(523,'Aldehuela del Codonal',34126,34129,3,1),(524,'Aldeire',15148,15151,3,1),(525,'Aldeonte',34130,34135,3,2),(526,'Aldover',36590,36593,3,1),(527,'Aledo',27556,27559,3,1),(528,'Alegia',17378,17381,3,1),(529,'Alegría-Dulantzi',10,15,3,2),(530,'Alella',5790,5793,3,1),(531,'Alentisque',35670,35673,3,1),(532,'Alerre',18346,18349,3,1),(533,'Alesanco',21132,21135,3,1),(534,'Alesón',21136,21139,3,1),(535,'Alfacar',15152,15157,3,2),(536,'Alfafar',39506,39509,3,1),(537,'Alfafara',940,943,3,1),(538,'Alfajarín',43604,43607,3,1),(539,'Alfambra',37520,37523,3,1),(540,'Alfamén',43608,43611,3,1),(541,'Alfántega',18350,18353,3,1),(542,'Alfara de Carles',36594,36597,3,1),(543,'Alfara de la Baronia',39510,39513,3,1),(544,'Alfara del Patriarca',39514,39517,3,1),(545,'Alfaraz de Sayago',42236,42239,3,1),(546,'Alfarnate',26934,26937,3,1),(547,'Alfarnatejo',26938,26941,3,1),(548,'Alfaro',21140,21143,3,1),(549,'Alfarp',39518,39521,3,1),(550,'Alfarràs',23490,23493,3,1),(551,'Alfarrasí',39522,39525,3,1),(552,'Alfauir',39526,39529,3,1),(553,'Alfés',23494,23497,3,1),(554,'Alfondeguilla',11316,11319,3,1),(555,'Alforja',36598,36601,3,1),(556,'Alforque',43612,43615,3,1),(557,'Alfoz',24814,24825,3,5),(558,'Alfoz de Bricia',7334,7343,3,4),(559,'Alfoz de Lloredo',10512,10525,3,6),(560,'Alfoz de Quintanadueñas',7344,7349,3,2),(561,'Alfoz de Santa Gadea',7350,7355,3,2),(562,'Algadefe',21862,21865,3,1),(563,'Algaida',5346,5353,3,3),(564,'Algámitas',35088,35091,3,1),(565,'Algar',10196,10199,3,1),(566,'Algar de Mesa',16060,16063,3,1),(567,'Algar de Palancia',39530,39533,3,1),(568,'Algarinejo',15158,15163,3,2),(569,'Algarra',12970,12973,3,1),(570,'Algarrobo',26942,26945,3,1),(571,'Algatocín',26946,26949,3,1),(572,'Algeciras',10200,10219,3,9),(573,'Algemesí',39534,39537,3,1),(574,'Algerri',23498,23501,3,1),(575,'Algete',25918,25923,3,2),(576,'Algimia de Alfara',39538,39541,3,1),(577,'Algimia de Almonacid',11320,11323,3,1),(578,'Alginet',39542,39545,3,1),(579,'Algodonales',10220,10225,3,2),(580,'Algodre',42240,42243,3,1),(581,'Algora',16064,16067,3,1),(582,'Algorfa',944,947,3,1),(583,'Alguaire',23502,23505,3,1),(584,'Alguazas',27560,27565,3,2),(585,'Algueña',948,951,3,1),(586,'Alhabia',1736,1739,3,1),(587,'Alhama de Almería',1740,1743,3,1),(588,'Alhama de Aragón',43616,43619,3,1),(589,'Alhama de Granada',15164,15169,3,2),(590,'Alhama de Murcia',27566,27569,3,1),(591,'Alhambra',11950,11955,3,2),(592,'Alhaurín de la Torre',26950,26953,3,1),(593,'Alhaurín el Grande',26954,26957,3,1),(594,'Alhendín',15170,15173,3,1),(595,'Alhóndiga',16068,16071,3,1),(596,'Alía',9206,9209,3,1),(597,'Aliaga',37524,37531,3,3),(598,'Aliaguilla',12974,12977,3,1),(599,'Alicante/Alacant',952,1005,3,26),(600,'Alicún',1744,1747,3,1),(601,'Alicún de Ortega',15174,15177,3,1),(602,'Alija del Infantado',21866,21871,3,2),(603,'Alins',23506,23513,3,3),(604,'Alió',36602,36605,3,1),(605,'Alique',16072,16075,3,1),(606,'Aliseda',9210,9213,3,1),(607,'Aliud',35674,35677,3,1),(608,'Aljaraque',17804,17813,3,4),(609,'Aljucén',4534,4537,3,1),(610,'Alkiza',17382,17385,3,1),(611,'Allande',2324,2339,3,7),(612,'Allariz',29498,29515,3,8),(613,'Allepuz',37532,37535,3,1),(614,'Aller',2340,2369,3,14),(615,'Allín/Allin',28138,28143,3,2),(616,'Allo',28144,28147,3,1),(617,'Alloza',37536,37539,3,1),(618,'Allueva',37540,37543,3,1),(619,'Almacelles',23514,23517,3,1),(620,'Almácera',39546,39549,3,1),(621,'Almáchar',26958,26961,3,1),(622,'Almadén',11956,11959,3,1),(623,'Almadén de la Plata',35092,35095,3,1),(624,'Almadenejos',11960,11965,3,2),(625,'Almadrones',16076,16079,3,1),(626,'Almagro',11966,11971,3,2),(627,'Almajano',35678,35681,3,1),(628,'Almaluez',35682,35687,3,2),(629,'Almansa',448,451,3,1),(630,'Almanza',21872,21879,3,3),(631,'Almaraz',9214,9217,3,1),(632,'Almaraz de Duero',42244,42247,3,1),(633,'Almargen',26962,26965,3,1),(634,'Almarza',35688,35699,3,5),(635,'Almarza de Cameros',21144,21149,3,2),(636,'Almassora',11324,11327,3,1),(637,'Almatret',23518,23521,3,1),(638,'Almazán',35700,35705,3,2),(639,'Almazul',35706,35711,3,2),(640,'Almedíjar',11328,11331,3,1),(641,'Almedina',11972,11975,3,1),(642,'Almedinilla',12430,12435,3,2),(643,'Almegíjar',15178,15181,3,1),(644,'Almeida de Sayago',42248,42253,3,2),(645,'Almenar',23522,23525,3,1),(646,'Almenar de Soria',35712,35719,3,3),(647,'Almenara',11332,11335,3,1),(648,'Almenara de Adaja',40704,40707,3,1),(649,'Almenara de Tormes',32430,32433,3,1),(650,'Almendra',32434,32437,3,1),(651,'Almendral',4538,4541,3,1),(652,'Almendral de la Cañada',38552,38555,3,1),(653,'Almendralejo',4542,4545,3,1),(654,'Almendros',12978,12981,3,1),(655,'Almensilla',35096,35099,3,1),(656,'Almería',1748,1777,3,14),(657,'Almiserat',39550,39553,3,1),(658,'Almochuel',43620,43623,3,1),(659,'Almócita',1778,1781,3,1),(660,'Almodóvar del Campo',11976,12001,3,12),(661,'Almodóvar del Pinar',12982,12985,3,1),(662,'Almodóvar del Río',12436,12441,3,2),(663,'Almogía',26966,26969,3,1),(664,'Almoguera',16080,16083,3,1),(665,'Almohaja',37544,37547,3,1),(666,'Almoharín',9218,9221,3,1),(667,'Almoines',39554,39557,3,1),(668,'Almonacid de la Cuba',43624,43627,3,1),(669,'Almonacid de la Sierra',43628,43631,3,1),(670,'Almonacid de Toledo',38556,38559,3,1),(671,'Almonacid de Zorita',16084,16089,3,2),(672,'Almonacid del Marquesado',12986,12989,3,1),(673,'Almonaster la Real',17814,17829,3,7),(674,'Almonte',17830,17841,3,5),(675,'Almoradí',1006,1011,3,2),(676,'Almorox',38560,38563,3,1),(677,'Almoster',36606,36609,3,1),(678,'Almudaina',1012,1015,3,1),(679,'Almudévar',18354,18359,3,2),(680,'Almuñécar',15182,15187,3,2),(681,'Almunia de San Juan',18360,18365,3,2),(682,'Almuniente',18366,18371,3,2),(683,'Almuradiel',12002,12007,3,2),(684,'Almusafes',39558,39561,3,1),(685,'Alobras',37548,37551,3,1),(686,'Alocén',16090,16093,3,1),(687,'Alonsotegi',41684,41687,3,1),(688,'Álora',26970,26979,3,4),(689,'Alòs de Balaguer',23526,23529,3,1),(690,'Alosno',17842,17847,3,2),(691,'Alovera',16094,16097,3,1),(692,'Alozaina',26980,26983,3,1),(693,'Alp',14004,14009,3,2),(694,'Alpandeire',26984,26987,3,1),(695,'Alpanseque',35720,35723,3,1),(696,'Alpartir',43632,43635,3,1),(697,'Alpedrete',25924,25929,3,2),(698,'Alpeñés',37552,37555,3,1),(699,'Alpens',5794,5797,3,1),(700,'Alpera',452,455,3,1),(701,'Alpicat',23530,23533,3,1),(702,'Alpuente',39562,39565,3,1),(703,'Alpujarra de la Sierra',15188,15197,3,4),(704,'Alquería de la Condesa',39566,39569,3,1),(705,'Alquézar',18372,18375,3,1),(706,'Alquife',15198,15201,3,1),(707,'Alsodux',1782,1785,3,1),(708,'Alt Àneu',23534,23543,3,4),(709,'Altable',7356,7359,3,1),(710,'Altafulla',36610,36613,3,1),(711,'Altarejos',12990,12995,3,2),(712,'Altea',1016,1021,3,2),(713,'Altorricón',18376,18379,3,1),(714,'Altsasu/Alsasua',28148,28151,3,1),(715,'Altura',11336,11339,3,1),(716,'Altzaga',17386,17389,3,1),(717,'Altzo',17390,17393,3,1),(718,'Alustante',16098,16103,3,2),(719,'Alzira',39570,39577,3,3),(720,'Amavida',3428,3431,3,1),(721,'Amayuelas de Arriba',30464,30467,3,1),(722,'Ambel',43636,43639,3,1),(723,'Ambite',25930,25933,3,1),(724,'Amer',14010,14013,3,1),(725,'Ames',20138,20151,3,6),(726,'Améscoa Baja',28152,28155,3,1),(727,'Ameyugo',7360,7363,3,1),(728,'Amezketa',17394,17397,3,1),(729,'Amieva',2370,2375,3,2),(730,'Amoeiro',29516,29525,3,4),(731,'Amorebieta-Etxano',41688,41693,3,2),(732,'Amoroto',41694,41697,3,1),(733,'Amposta',36614,36621,3,3),(734,'Ampudia',30468,30475,3,3),(735,'Ampuero',10526,10533,3,3),(736,'Amurrio',16,23,3,3),(737,'Amusco',30476,30481,3,2),(738,'Amusquillo',40708,40711,3,1),(739,'Anadón',37556,37559,3,1),(740,'Añana',24,29,3,2),(741,'Anaya',34136,34139,3,1),(742,'Anaya de Alba',32438,32443,3,2),(743,'Anchuelo',25934,25937,3,1),(744,'Anchuras',12008,12013,3,2),(745,'Ancín/Antzin',28156,28161,3,2),(746,'Andavías',42254,42257,3,1),(747,'Andilla',39578,39581,3,1),(748,'Andoain',17398,17401,3,1),(749,'Andorra',37560,37563,3,1),(750,'Andosilla',28162,28165,3,1),(751,'Andratx',5354,5363,3,4),(752,'Andújar',19516,19525,3,4),(753,'Añe',34140,34143,3,1),(754,'Anento',43640,43643,3,1),(755,'Anglès',14014,14017,3,1),(756,'Anglesola',23544,23547,3,1),(757,'Angón',16104,16107,3,1),(758,'Anguciana',21150,21153,3,1),(759,'Angüés',18380,18387,3,3),(760,'Anguiano',21154,21157,3,1),(761,'Anguita',16108,16115,3,3),(762,'Anguix',7364,7367,3,1),(763,'Anievas',10534,10537,3,1),(764,'Aniñón',43644,43647,3,1),(765,'Anna',39582,39585,3,1),(766,'Anoeta',17402,17405,3,1),(767,'Añón de Moncayo',43648,43651,3,1),(768,'Añora',12442,12447,3,2),(769,'Añorbe',28166,28169,3,1),(770,'Añover de Tajo',38564,38567,3,1),(771,'Añover de Tormes',32444,32447,3,1),(772,'Anquela del Ducado',16116,16121,3,2),(773,'Anquela del Pedregal',16122,16125,3,1),(774,'Ansó',18388,18393,3,2),(775,'Ansoáin/Antsoain',28170,28173,3,1),(776,'Antas',1786,1791,3,2),(777,'Antas de Ulla',24826,24837,3,5),(778,'Antella',39586,39589,3,1),(779,'Antequera',26988,27001,3,6),(780,'Antigüedad',30482,30485,3,1),(781,'Antillón',18394,18397,3,1),(782,'Antzuola',17406,17409,3,1),(783,'Anue',28174,28177,3,1),(784,'Aoiz/Agoitz',28178,28181,3,1),(785,'Arabayona de Mógica',32448,32451,3,1),(786,'Aracena',17848,17857,3,4),(787,'Aragüés del Puerto',18398,18401,3,1),(788,'Arahal',35100,35103,3,1),(789,'Arahuetes',34144,34149,3,2),(790,'Araitz',28182,28185,3,1),(791,'Arakaldo',41698,41701,3,1),(792,'Arakil',28186,28195,3,4),(793,'Arama',17410,17413,3,1),(794,'Aramaio',30,37,3,3),(795,'Aranarache/Aranaratxe',28196,28199,3,1),(796,'Arancón',35724,35729,3,2),(797,'Aranda de Duero',7368,7375,3,3),(798,'Aranda de Moncayo',43652,43655,3,1),(799,'Arándiga',43656,43659,3,1),(800,'Arandilla',7376,7379,3,1),(801,'Arandilla del Arroyo',12996,12999,3,1),(802,'Aranga',20152,20155,3,1),(803,'Aranguren',28200,28203,3,1),(804,'Aranjuez',25938,25941,3,1),(805,'Arano',28204,28207,3,1),(806,'Arantza',28208,28211,3,1),(807,'Arantzazu',41702,41705,3,1),(808,'Arañuel',11340,11343,3,1),(809,'Aranzueque',16126,16129,3,1),(810,'Arapiles',32452,32461,3,4),(811,'Aras',28212,28215,3,1),(812,'Aras de los Olmos',39590,39593,3,1),(813,'Arauzo de Miel',7380,7385,3,2),(814,'Arauzo de Salce',7386,7389,3,1),(815,'Arauzo de Torre',7390,7393,3,1),(816,'Arbancón',16130,16133,3,1),(817,'Arbeca',23548,23551,3,1),(818,'Arbeteta',16134,16137,3,1),(819,'Arbizu',28216,28219,3,1),(820,'Arbo',31462,31477,3,7),(821,'Arboleas',1792,1795,3,1),(822,'Arbolí',36622,36625,3,1),(823,'Arbúcies',14018,14023,3,2),(824,'Arcas',13000,13003,3,1),(825,'Arce/Artzi',28220,28227,3,3),(826,'Arcediano',32462,32465,3,1),(827,'Arcenillas',42258,42261,3,1),(828,'Archena',27570,27575,3,2),(829,'Árchez',27002,27005,3,1),(830,'Archidona',27006,27015,3,4),(831,'Arcicóllar',38568,38571,3,1),(832,'Arconada',30486,30489,3,1),(833,'Arcones',34150,34153,3,1),(834,'Arcos',7394,7399,3,2),(835,'Arcos de Jalón',35730,35743,3,6),(836,'Arcos de la Frontera',10226,10233,3,3),(837,'Arcos de la Polvorosa',42262,42265,3,1),(838,'Arcos de la Sierra',13004,13007,3,1),(839,'Arcos de las Salinas',37564,37567,3,1),(840,'Ardales',27016,27021,3,2),(841,'Ardisa',43660,43663,3,1),(842,'Ardón',21880,21887,3,3),(843,'Areatza',41706,41709,3,1),(844,'Arellano',28228,28231,3,1),(845,'Arén',18402,18405,3,1),(846,'Arenales de San Gregorio',12014,12017,3,1),(847,'Arenas',27022,27027,3,2),(848,'Arenas de Iguña',10538,10543,3,2),(849,'Arenas de San Juan',12018,12021,3,1),(850,'Arenas de San Pedro',3432,3437,3,2),(851,'Arenas del Rey',15202,15209,3,3),(852,'Arenillas',35744,35747,3,1),(853,'Arenillas de Riopisuerga',7400,7403,3,1),(854,'Arens de Lledó',37568,37571,3,1),(855,'Arenys de Mar',5798,5801,3,1),(856,'Arenys de Munt',5802,5807,3,2),(857,'Arenzana de Abajo',21158,21161,3,1),(858,'Arenzana de Arriba',21162,21165,3,1),(859,'Ares',20156,20163,3,3),(860,'Ares del Maestrat',11344,11347,3,1),(861,'Areso',28232,28235,3,1),(862,'Aretxabaleta',17414,17417,3,1),(863,'Arevalillo',3438,3441,3,1),(864,'Arevalillo de Cega',34154,34157,3,1),(865,'Arévalo',3442,3445,3,1),(866,'Arévalo de la Sierra',35748,35751,3,1),(867,'Argamasilla de Alba',12022,12025,3,1),(868,'Argamasilla de Calatrava',12026,12029,3,1),(869,'Arganda del Rey',25942,25945,3,1),(870,'Argañín',42266,42269,3,1),(871,'Arganza',21888,21895,3,3),(872,'Argavieso',18406,18409,3,1),(873,'Argecilla',16138,16141,3,1),(874,'Argelaguer',14024,14027,3,1),(875,'Argelita',11348,11351,3,1),(876,'Argençola',5808,5811,3,1),(877,'Argente',37572,37575,3,1),(878,'Argentona',5812,5815,3,1),(879,'Argés',38572,38575,3,1),(880,'Argoños',10544,10547,3,1),(881,'Arguedas',28236,28239,3,1),(882,'Arguis',18410,18413,3,1),(883,'Arguisuelas',13008,13011,3,1),(884,'Argujillo',42270,42273,3,1),(885,'Aria',28240,28243,3,1),(886,'Ariany',5364,5369,3,2),(887,'Aribe',28244,28247,3,1),(888,'Arija',7404,7407,3,1),(889,'Ariño',37576,37579,3,1),(890,'Ariza',43664,43667,3,1),(891,'Arjona',19526,19529,3,1),(892,'Arjonilla',19530,19533,3,1),(893,'Arlanzón',7408,7411,3,1),(894,'Armallones',16142,16145,3,1),(895,'Armañanzas',28248,28251,3,1),(896,'Armenteros',32466,32475,3,4),(897,'Armilla',15210,15213,3,1),(898,'Armiñón',38,43,3,2),(899,'Armuña',34158,34165,3,3),(900,'Armuña de Almanzora',1796,1799,3,1),(901,'Armuña de Tajuña',16146,16149,3,1),(902,'Arnedillo',21166,21171,3,2),(903,'Arnedo',21172,21177,3,2),(904,'Arnes',36626,36629,3,1),(905,'Arnuero',10548,10553,3,2),(906,'Aroche',17858,17869,3,5),(907,'Arquillinos',42274,42277,3,1),(908,'Arquillos',19534,19539,3,2),(909,'Arrabalde',42278,42281,3,1),(910,'Arraia-Maeztu',44,51,3,3),(911,'Arrancacepas',13012,13015,3,1),(912,'Arrankudiaga',41710,41715,3,2),(913,'Arrasate/Mondragón',17418,17423,3,2),(914,'Arratzu',41716,41723,3,3),(915,'Arratzua-Ubarrundia',52,57,3,2),(916,'Arraya de Oca',7412,7415,3,1),(917,'Arredondo',10554,10557,3,1),(918,'Arres',23552,23555,3,1),(919,'Arriate',27028,27031,3,1),(920,'Arrieta',41724,41727,3,1),(921,'Arrigorriaga',41728,41733,3,2),(922,'Arroba de los Montes',12030,12033,3,1),(923,'Arróniz',28252,28255,3,1),(924,'Arroyo de la Encomienda',40712,40715,3,1),(925,'Arroyo de la Luz',9222,9225,3,1),(926,'Arroyo de las Fraguas',16150,16153,3,1),(927,'Arroyo de San Serván',4546,4549,3,1),(928,'Arroyo del Ojanco',19540,19545,3,2),(929,'Arroyomolinos',25946,25949,3,1),(930,'Arroyomolinos',9226,9227,3,0),(931,'Arroyomolinos de la Vera',9228,9231,3,1),(932,'Arroyomolinos de León',17870,17873,3,1),(933,'Arruazu',28256,28259,3,1),(934,'Arrúbal',21178,21181,3,1),(935,'Arsèguel',23556,23559,3,1),(936,'Artà',5370,5375,3,2),(937,'Artajona',28260,28263,3,1),(938,'Artana',11352,11355,3,1),(939,'Artazu',28264,28267,3,1),(940,'Artea',41734,41737,3,1),(941,'Arteixo',20164,20177,3,6),(942,'Artés',5816,5819,3,1),(943,'Artesa de Lleida',23560,23563,3,1),(944,'Artesa de Segre',23564,23575,3,5),(945,'Artieda',43668,43671,3,1),(946,'Artzentales',41738,41741,3,1),(947,'Artziniega',58,63,3,2),(948,'Arzúa',20178,20185,3,3),(949,'As Neves',31478,31489,3,5),(950,'As Nogais',24838,24847,3,4),(951,'As Pontes de García Rodríguez',20186,20203,3,8),(952,'As Somozas',20204,20213,3,4),(953,'Ascó',36630,36633,3,1),(954,'Asín',43672,43675,3,1),(955,'Aspa',23576,23579,3,1),(956,'Aspariegos',42282,42285,3,1),(957,'Asparrena',64,71,3,3),(958,'Aspe',1022,1025,3,1),(959,'Asteasu',17424,17427,3,1),(960,'Astigarraga',17428,17431,3,1),(961,'Astorga',21896,21901,3,2),(962,'Astudillo',30490,30495,3,2),(963,'Asturianos',42286,42293,3,3),(964,'Atajate',27032,27035,3,1),(965,'Atalaya',4550,4553,3,1),(966,'Atalaya del Cañavate',13016,13019,3,1),(967,'Atanzón',16154,16157,3,1),(968,'Atapuerca',7416,7419,3,1),(969,'Ataquines',40716,40719,3,1),(970,'Atarfe',15214,15221,3,3),(971,'Ataun',17432,17435,3,1),(972,'Atea',43676,43679,3,1),(973,'Ateca',43680,43683,3,1),(974,'Atez/Atetz',28268,28273,3,2),(975,'Atienza',16158,16167,3,4),(976,'Atxondo',41742,41747,3,2),(977,'Atzeneta del Maestrat',11356,11361,3,2),(978,'Aulesti',41748,41751,3,1),(979,'Auñón',16168,16173,3,2),(980,'Auritz/Burguete',28274,28277,3,1),(981,'Ausejo',21182,21185,3,1),(982,'Ausejo de la Sierra',35752,35755,3,1),(983,'Autilla del Pino',30496,30499,3,1),(984,'Autillo de Campos',30500,30503,3,1),(985,'Autol',21186,21189,3,1),(986,'Aveinte',3446,3451,3,2),(987,'Avellaneda',3452,3455,3,1),(988,'Avellanosa de Muñó',7420,7423,3,1),(989,'Avià',5820,5825,3,2),(990,'Ávila',3456,3475,3,9),(991,'Avilés',2376,2397,3,10),(992,'Avinyó',5826,5829,3,1),(993,'Avinyonet de Puigventós',14028,14031,3,1),(994,'Avinyonet del Penedès',5830,5839,3,4),(995,'Avión',29526,29529,3,1),(996,'Ayala/Aiara',72,85,3,6),(997,'Ayamonte',17874,17887,3,6),(998,'Ayegui/Aiegi',28278,28283,3,2),(999,'Ayelo de Malferit',39594,39597,3,1),(1000,'Ayelo de Rugat',39598,39601,3,1),(1001,'Ayerbe',18414,18421,3,3),(1002,'Ayllón',34166,34177,3,5),(1003,'Ayna',456,467,3,5),(1004,'Ayódar',11362,11365,3,1),(1005,'Ayoó de Vidriales',42294,42299,3,2),(1006,'Ayora',39602,39605,3,1),(1007,'Ayuela',30504,30507,3,1),(1008,'Azagra',28284,28287,3,1),(1009,'Azaila',37580,37583,3,1),(1010,'Azanuy-Alins',18422,18425,3,1),(1011,'Azara',18426,18429,3,1),(1012,'Azkoitia',17436,17439,3,1),(1013,'Azlor',18430,18433,3,1),(1014,'Aznalcázar',35104,35109,3,2),(1015,'Aznalcóllar',35110,35113,3,1),(1016,'Azofra',21190,21193,3,1),(1017,'Azpeitia',17440,17443,3,1),(1018,'Azuaga',4554,4559,3,2),(1019,'Azuara',43684,43687,3,1),(1020,'Azuébar',11366,11369,3,1),(1021,'Azuelo',28288,28291,3,1),(1022,'Azuqueca de Henares',16174,16177,3,1),(1023,'Azután',38576,38579,3,1),(1024,'Babilafuente',32476,32479,3,1),(1025,'Bacares',1800,1803,3,1),(1026,'Badajoz',4560,4599,3,19),(1027,'Badalona',5840,5859,3,9),(1028,'Badarán',21194,21197,3,1),(1029,'Bádenas',37584,37587,3,1),(1030,'Badia del Vallès',5860,5863,3,1),(1031,'Badolatosa',35114,35119,3,2),(1032,'Badules',43688,43691,3,1),(1033,'Baélls',18434,18437,3,1),(1034,'Baena',12448,12455,3,3),(1035,'Baeza',19546,19557,3,5),(1036,'Bagà',5864,5867,3,1),(1037,'Báguena',37588,37591,3,1),(1038,'Bagüés',43692,43695,3,1),(1039,'Bahabón',40720,40723,3,1),(1040,'Bahabón de Esgueva',7424,7427,3,1),(1041,'Baides',16178,16181,3,1),(1042,'Bailén',19558,19561,3,1),(1043,'Bailo',18438,18445,3,3),(1044,'Baiona',31490,31501,3,5),(1045,'Baix Pallars',23580,23591,3,5),(1046,'Bakaiku',28292,28295,3,1),(1047,'Bakio',41752,41755,3,1),(1048,'Balaguer',23592,23595,3,1),(1049,'Balanegra',1804,1805,3,0),(1050,'Balazote',468,471,3,1),(1051,'Balboa',21902,21905,3,1),(1052,'Balconchán',43696,43699,3,1),(1053,'Baldellou',18446,18449,3,1),(1054,'Baleira',24848,24863,3,7),(1055,'Balenyà',5868,5871,3,1),(1056,'Baliarrain',17444,17447,3,1),(1057,'Ballesteros de Calatrava',12034,12037,3,1),(1058,'Ballobar',18450,18453,3,1),(1059,'Balmaseda',41756,41759,3,1),(1060,'Balones',1026,1029,3,1),(1061,'Balsa de Ves',472,477,3,2),(1062,'Balsareny',5872,5875,3,1),(1063,'Baltanás',30508,30513,3,2),(1064,'Baltar',29530,29537,3,3),(1065,'Bañares',21198,21201,3,1),(1066,'Banastás',18454,18457,3,1),(1067,'Bande',29538,29555,3,8),(1068,'Bañobárez',32480,32483,3,1),(1069,'Bañón',37592,37595,3,1),(1070,'Baños de Ebro/Mañueta',86,89,3,1),(1071,'Baños de la Encina',19562,19567,3,2),(1072,'Baños de Molgas',29556,29567,3,5),(1073,'Baños de Montemayor',9232,9235,3,1),(1074,'Baños de Río Tobía',21202,21205,3,1),(1075,'Baños de Rioja',21206,21209,3,1),(1076,'Baños de Tajo',16182,16185,3,1),(1077,'Baños de Valdearados',7428,7431,3,1),(1078,'Bañuelos',16186,16189,3,1),(1079,'Bañuelos de Bureba',7432,7435,3,1),(1080,'Banyalbufar',5376,5381,3,2),(1081,'Banyeres de Mariola',1030,1033,3,1),(1082,'Banyeres del Penedès',36634,36639,3,2),(1083,'Banyoles',14032,14035,3,1),(1084,'Baquerín de Campos',30514,30517,3,1),(1085,'Barajas de Melo',13020,13025,3,2),(1086,'Barakaldo',41760,41769,3,4),(1087,'Baralla',24864,24883,3,9),(1088,'Barañáin/Barañain',28296,28299,3,1),(1089,'Baraona',35756,35765,3,4),(1090,'Barásoain',28300,28303,3,1),(1091,'Barbadás',29568,29581,3,6),(1092,'Barbadillo',32484,32489,3,2),(1093,'Barbadillo de Herreros',7436,7439,3,1),(1094,'Barbadillo del Mercado',7440,7443,3,1),(1095,'Barbadillo del Pez',7444,7447,3,1),(1096,'Barbalos',32490,32493,3,1),(1097,'Barbarin',28304,28307,3,1),(1098,'Barbastro',18458,18463,3,2),(1099,'Barbate',10234,10243,3,4),(1100,'Barbens',23596,23599,3,1),(1101,'Barberà de la Conca',36640,36647,3,3),(1102,'Barberà del Vallès',5876,5879,3,1),(1103,'Bárboles',43700,43703,3,1),(1104,'Barbolla',34178,34181,3,1),(1105,'Barbués',18464,18467,3,1),(1106,'Barbuñales',18468,18471,3,1),(1107,'Barca',35766,35769,3,1),(1108,'Bárcabo',18472,18481,3,4),(1109,'Barcarrota',4600,4603,3,1),(1110,'Barcelona',5880,5967,3,43),(1111,'Bárcena de Campos',30518,30521,3,1),(1112,'Bárcena de Cicero',10558,10569,3,5),(1113,'Bárcena de Pie de Concha',10570,10573,3,1),(1114,'Barceo',32494,32497,3,1),(1115,'Barcheta',39606,39609,3,1),(1116,'Barchín del Hoyo',13026,13029,3,1),(1117,'Barcial de la Loma',40724,40727,3,1),(1118,'Barcial del Barco',42300,42303,3,1),(1119,'Barcience',38580,38585,3,2),(1120,'Barcones',35770,35773,3,1),(1121,'Bardallur',43704,43707,3,1),(1122,'Bareyo',10574,10581,3,3),(1123,'Bargas',38586,38589,3,1),(1124,'Bargota',28308,28311,3,1),(1125,'Barillas',28312,28315,3,1),(1126,'Barjas',21906,21911,3,2),(1127,'Barracas',11370,11373,3,1),(1128,'Barrachina',37596,37599,3,1),(1129,'Barrado',9236,9239,3,1),(1130,'Barrax',478,481,3,1),(1131,'Barreiros',24884,24895,3,5),(1132,'Barrika',41770,41773,3,1),(1133,'Barrio de Muñó',7448,7451,3,1),(1134,'Barriopedro',16190,16193,3,1),(1135,'Barrios de Colina',7452,7455,3,1),(1136,'Barro',31502,31513,3,5),(1137,'Barromán',3476,3479,3,1),(1138,'Barruecopardo',32498,32501,3,1),(1139,'Barruelo de Santullán',30522,30529,3,3),(1140,'Barruelo del Valle',40728,40731,3,1),(1141,'Barrundia',90,95,3,2),(1142,'Barx',39610,39613,3,1),(1143,'Basaburua',28316,28321,3,2),(1144,'Basardilla',34182,34185,3,1),(1145,'Basauri',41774,41777,3,1),(1146,'Bàscara',14036,14041,3,2),(1147,'Basconcillos del Tozo',7456,7463,3,3),(1148,'Báscones de Ojeda',30530,30533,3,1),(1149,'Bascuñana',7464,7467,3,1),(1150,'Bascuñana de San Pedro',13030,13033,3,1),(1151,'Bassella',23600,23607,3,3),(1152,'Batea',36648,36651,3,1),(1153,'Baterno',4604,4607,3,1),(1154,'Batres',25950,25955,3,2),(1155,'Bausen',23608,23611,3,1),(1156,'Bayárcal',1806,1811,3,2),(1157,'Bayarque',1812,1815,3,1),(1158,'Bayubas de Abajo',35774,35777,3,1),(1159,'Bayubas de Arriba',35778,35781,3,1),(1160,'Baza',15222,15227,3,2),(1161,'Baztan',28322,28341,3,9),(1162,'Bea',37600,37603,3,1),(1163,'Beade',29582,29587,3,2),(1164,'Beamud',13034,13037,3,1),(1165,'Beariz',29588,29591,3,1),(1166,'Beas',17888,17897,3,4),(1167,'Beas de Granada',15228,15231,3,1),(1168,'Beas de Guadix',15232,15235,3,1),(1169,'Beas de Segura',19568,19573,3,2),(1170,'Beasain',17448,17451,3,1),(1171,'Becedas',3480,3485,3,2),(1172,'Becedillas',3486,3489,3,1),(1173,'Beceite',37604,37607,3,1),(1174,'Becerreá',24896,24929,3,16),(1175,'Becerril de Campos',30534,30537,3,1),(1176,'Becerril de la Sierra',25956,25959,3,1),(1177,'Becilla de Valderaduey',40732,40735,3,1),(1178,'Bédar',1816,1821,3,2),(1179,'Bedia',41778,41781,3,1),(1180,'Bedmar y Garcíez',19574,19579,3,2),(1181,'Begíjar',19580,19585,3,2),(1182,'Begonte',24930,24939,3,4),(1183,'Begues',5968,5971,3,1),(1184,'Begur',14042,14047,3,2),(1185,'Beintza-Labaien',28342,28345,3,1),(1186,'Beire',28346,28349,3,1),(1187,'Beires',1822,1825,3,1),(1188,'Beizama',17452,17455,3,1),(1189,'Béjar',32502,32509,3,3),(1190,'Bejís',11374,11377,3,1),(1191,'Belalcázar',12456,12459,3,1),(1192,'Belascoáin',28350,28353,3,1),(1193,'Belauntza',17456,17459,3,1),(1194,'Belbimbre',7468,7471,3,1),(1195,'Belchite',43708,43711,3,1),(1196,'Beleña',32510,32513,3,1),(1197,'Bélgida',39614,39617,3,1),(1198,'Belianes',23612,23615,3,1),(1199,'Belinchón',13038,13043,3,2),(1200,'Bell-lloc d\'Urgell',23616,23619,3,1),(1201,'Bellaguarda',23620,23623,3,1),(1202,'Bellcaire d\'Empordà',14048,14051,3,1),(1203,'Bellcaire d\'Urgell',23624,23627,3,1),(1204,'Bellmunt d\'Urgell',23628,23631,3,1),(1205,'Bellmunt del Priorat',36652,36655,3,1),(1206,'Bello',37608,37611,3,1),(1207,'Bellprat',5972,5975,3,1),(1208,'Bellpuig',23632,23635,3,1),(1209,'Bellreguart',39618,39621,3,1),(1210,'Bellús',39622,39625,3,1),(1211,'Bellvei',36656,36659,3,1),(1212,'Bellver de Cerdanya',23636,23643,3,3),(1213,'Bellvís',23644,23649,3,2),(1214,'Belmez',12460,12471,3,5),(1215,'Bélmez de la Moraleda',19586,19589,3,1),(1216,'Belmonte',13044,13049,3,2),(1217,'Belmonte de Campos',30538,30541,3,1),(1218,'Belmonte de Gracián',43712,43715,3,1),(1219,'Belmonte de Miranda',2398,2423,3,12),(1220,'Belmonte de San José',37612,37615,3,1),(1221,'Belmonte de Tajo',25960,25963,3,1),(1222,'Belmontejo',13050,13053,3,1),(1223,'Belorado',7472,7483,3,5),(1224,'Belver de Cinca',18482,18489,3,3),(1225,'Belver de los Montes',42304,42307,3,1),(1226,'Belvís de la Jara',38590,38593,3,1),(1227,'Belvís de Monroy',9240,9243,3,1),(1228,'Bembibre',21912,21921,3,4),(1229,'Benabarre',18490,18495,3,2),(1230,'Benacazón',35120,35123,3,1),(1231,'Benadalid',27036,27039,3,1),(1232,'Benafarces',40736,40739,3,1),(1233,'Benafer',11378,11381,3,1),(1234,'Benafigos',11382,11385,3,1),(1235,'Benagéber',39626,39629,3,1),(1236,'Benaguacil',39630,39633,3,1),(1237,'Benahadux',1826,1829,3,1),(1238,'Benahavís',27040,27043,3,1),(1239,'Benalauría',27044,27047,3,1),(1240,'Benalmádena',27048,27055,3,3),(1241,'Benalúa',15236,15239,3,1),(1242,'Benalúa de las Villas',15240,15243,3,1),(1243,'Benalup-Casas Viejas',10244,10247,3,1),(1244,'Benamargosa',27056,27059,3,1),(1245,'Benamaurel',15244,15247,3,1),(1246,'Benamejí',12472,12477,3,2),(1247,'Benamocarra',27060,27063,3,1),(1248,'Benaocaz',10248,10251,3,1),(1249,'Benaoján',27064,27067,3,1),(1250,'Benarrabá',27068,27071,3,1),(1251,'Benasau',1034,1037,3,1),(1252,'Benasque',18496,18503,3,3),(1253,'Benassal',11386,11389,3,1),(1254,'Benatae',19590,19593,3,1),(1255,'Benavent de Segrià',23650,23653,3,1),(1256,'Benavente',42308,42311,3,1),(1257,'Benavides',21922,21931,3,4),(1258,'Benavites',39634,39637,3,1),(1259,'Benegiles',42312,42315,3,1),(1260,'Beneigida',39638,39641,3,1),(1261,'Beneixama',1038,1043,3,2),(1262,'Benejúzar',1044,1047,3,1),(1263,'Benetúser',39642,39645,3,1),(1264,'Benferri',1048,1051,3,1),(1265,'Beniarbeig',1052,1055,3,1),(1266,'Beniardá',1056,1059,3,1),(1267,'Beniarjó',39646,39649,3,1),(1268,'Beniarrés',1060,1063,3,1),(1269,'Beniatjar',39650,39653,3,1),(1270,'Benicarló',11390,11395,3,2),(1271,'Benicasim/Benicàssim',11396,11399,3,1),(1272,'Benicolet',39654,39657,3,1),(1273,'Benicull',39658,39661,3,1),(1274,'Benidoleig',1064,1067,3,1),(1275,'Benidorm',1068,1077,3,4),(1276,'Beniel',27576,27579,3,1),(1277,'Benifairó de la Valldigna',39662,39665,3,1),(1278,'Benifairó de les Valls',39666,39669,3,1),(1279,'Benifallet',36660,36663,3,1),(1280,'Benifallim',1078,1081,3,1),(1281,'Benifato',1082,1085,3,1),(1282,'Benifayó',39670,39673,3,1),(1283,'Beniflá',39674,39677,3,1),(1284,'Benigánim',39678,39681,3,1),(1285,'Benigembla',1086,1089,3,1),(1286,'Benijófar',1090,1093,3,1),(1287,'Benilloba',1094,1097,3,1),(1288,'Benillup',1098,1101,3,1),(1289,'Benimantell',1102,1105,3,1),(1290,'Benimarfull',1106,1109,3,1),(1291,'Benimassot',1110,1113,3,1),(1292,'Benimeli',1114,1117,3,1),(1293,'Benimodo',39682,39685,3,1),(1294,'Benimuslem',39686,39689,3,1),(1295,'Beniparrell',39690,39695,3,2),(1296,'Benirredrá',39696,39699,3,1),(1297,'Benisanó',39700,39703,3,1),(1298,'Benisoda',39704,39707,3,1),(1299,'Benissa',1118,1121,3,1),(1300,'Benissanet',36664,36667,3,1),(1301,'Benisuera',39708,39711,3,1),(1302,'Benitachell/el Poble Nou de Benitatxell',1122,1125,3,1),(1303,'Benitagla',1830,1833,3,1),(1304,'Benizalón',1834,1839,3,2),(1305,'Benlloch',11400,11403,3,1),(1306,'Benquerencia',9244,9247,3,1),(1307,'Benquerencia de la Serena',4608,4617,3,4),(1308,'Bentarique',1840,1843,3,1),(1309,'Benuza',21932,21937,3,2),(1310,'Bera',28354,28359,3,2),(1311,'Berango',41782,41785,3,1),(1312,'Berantevilla',96,103,3,3),(1313,'Beranuy',18504,18509,3,2),(1314,'Berastegi',17460,17465,3,2),(1315,'Beratón',35782,35785,3,1),(1316,'Berbegal',18510,18513,3,1),(1317,'Berberana',7484,7489,3,2),(1318,'Berbinzana',28360,28363,3,1),(1319,'Berceo',21210,21213,3,1),(1320,'Bercero',40740,40743,3,1),(1321,'Berceruelo',40744,40747,3,1),(1322,'Bérchules',15248,15251,3,1),(1323,'Bercial',34186,34189,3,1),(1324,'Bercial de Zapardiel',3490,3493,3,1),(1325,'Bercianos del Páramo',21938,21943,3,2),(1326,'Bercianos del Real Camino',21944,21947,3,1),(1327,'Bercimuel',34190,34193,3,1),(1328,'Berdejo',43716,43719,3,1),(1329,'Berga',5976,5979,3,1),(1330,'Bergara',17466,17477,3,5),(1331,'Bergasa',21214,21217,3,1),(1332,'Bergasillas Bajera',21218,21221,3,1),(1333,'Berge',37616,37619,3,1),(1334,'Bergondo',20214,20225,3,5),(1335,'Beriáin',28364,28367,3,1),(1336,'Berja',1844,1853,3,4),(1337,'Berlanga',4618,4621,3,1),(1338,'Berlanga de Duero',35786,35795,3,4),(1339,'Berlanga del Bierzo',21948,21951,3,1),(1340,'Berlangas de Roa',7490,7493,3,1),(1341,'Bermellar',32514,32517,3,1),(1342,'Bermeo',41786,41789,3,1),(1343,'Bermillo de Sayago',42316,42329,3,6),(1344,'Bernardos',34194,34197,3,1),(1345,'Bernedo',104,113,3,4),(1346,'Berninches',16194,16197,3,1),(1347,'Bernuy de Porreros',34198,34201,3,1),(1348,'Bernuy-Zapardiel',3494,3497,3,1),(1349,'Berriatua',41790,41793,3,1),(1350,'Berrioplano/Berriobeiti',28368,28373,3,2),(1351,'Berriozar',28374,28379,3,2),(1352,'Berriz',41794,41799,3,2),(1353,'Berrobi',17478,17481,3,1),(1354,'Berrocal',17898,17901,3,1),(1355,'Berrocal de Huebra',32518,32521,3,1),(1356,'Berrocal de Salvatierra',32522,32525,3,1),(1357,'Berrocalejo',9248,9251,3,1),(1358,'Berrocalejo de Aragona',3498,3501,3,1),(1359,'Berrueces',40748,40751,3,1),(1360,'Berrueco',43720,43723,3,1),(1361,'Bertizarana',28380,28387,3,3),(1362,'Berzocana',9252,9255,3,1),(1363,'Berzosa de Bureba',7494,7497,3,1),(1364,'Berzosa del Lozoya',25964,25967,3,1),(1365,'Berzosilla',30542,30547,3,2),(1366,'Besalú',14052,14055,3,1),(1367,'Bescanó',14056,14063,3,3),(1368,'Betanzos',20226,20231,3,2),(1369,'Betelu',28388,28391,3,1),(1370,'Bétera',39712,39715,3,1),(1371,'Beteta',13054,13061,3,3),(1372,'Betxí',11404,11407,3,1),(1373,'Beuda',14064,14069,3,2),(1374,'Bezares',21222,21225,3,1),(1375,'Bezas',37620,37623,3,1),(1376,'Biar',1126,1129,3,1),(1377,'Bicorp',39716,39719,3,1),(1378,'Bidania-Goiatz',17482,17485,3,1),(1379,'Bidaurreta',28392,28395,3,1),(1380,'Biel',43724,43727,3,1),(1381,'Bielsa',18514,18521,3,3),(1382,'Bienservida',482,485,3,1),(1383,'Bienvenida',4622,4625,3,1),(1384,'Bierge',18522,18527,3,2),(1385,'Biescas',18528,18543,3,7),(1386,'Bigastro',1130,1133,3,1),(1387,'Bigues i Riells',5980,5985,3,2),(1388,'Bijuesca',43728,43731,3,1),(1389,'Bilbao',41800,41831,3,15),(1390,'Bimenes',2424,2429,3,2),(1391,'Binaced',18544,18549,3,2),(1392,'Binéfar',18550,18553,3,1),(1393,'Binissalem',5382,5385,3,1),(1394,'Biosca',23654,23661,3,3),(1395,'Biota',43732,43735,3,1),(1396,'Bisaurri',18554,18559,3,2),(1397,'Biscarrués',18560,18563,3,1),(1398,'Bisimbre',43736,43739,3,1),(1399,'Biure',14070,14073,3,1),(1400,'Biurrun-Olcoz',28396,28399,3,1),(1401,'Blacos',35796,35799,3,1),(1402,'Blanca',27580,27583,3,1),(1403,'Blancafort',36668,36671,3,1),(1404,'Blancas',37624,37627,3,1),(1405,'Blanes',14074,14077,3,1),(1406,'Blascomillán',3502,3507,3,2),(1407,'Blasconuño de Matacabras',3508,3511,3,1),(1408,'Blascosancho',3512,3515,3,1),(1409,'Blecua y Torres',18564,18569,3,2),(1410,'Blesa',37628,37631,3,1),(1411,'Bliecos',35800,35803,3,1),(1412,'Boada',32526,32529,3,1),(1413,'Boada de Campos',30548,30551,3,1),(1414,'Boadella i les Escaules',14078,14081,3,1),(1415,'Boadilla de Rioseco',30552,30555,3,1),(1416,'Boadilla del Camino',30556,30559,3,1),(1417,'Boadilla del Monte',25968,25975,3,3),(1418,'Boal',2430,2451,3,10),(1419,'Bobadilla',21226,21229,3,1),(1420,'Bobadilla del Campo',40752,40755,3,1),(1421,'Boborás',29592,29613,3,10),(1422,'Boca de Huérgano',21952,21961,3,4),(1423,'Bocairente',39720,39723,3,1),(1424,'Boceguillas',34202,34207,3,2),(1425,'Bocigas',40756,40759,3,1),(1426,'Bocos de Duero',40760,40763,3,1),(1427,'Bodonal de la Sierra',4626,4629,3,1),(1428,'Boecillo',40764,40767,3,1),(1429,'Bogajo',32530,32533,3,1),(1430,'Bogarra',486,495,3,4),(1431,'Bohonal de Ibor',9256,9259,3,1),(1432,'Bohoyo',3516,3521,3,2),(1433,'Boimorto',20232,20239,3,3),(1434,'Boiro',20240,20255,3,7),(1435,'Bolaños de Calatrava',12038,12041,3,1),(1436,'Bolaños de Campos',40768,40771,3,1),(1437,'Bolbaite',39724,39727,3,1),(1438,'Bollullos de la Mitación',35124,35127,3,1),(1439,'Bollullos Par del Condado',17902,17907,3,2),(1440,'Boltaña',18570,18581,3,5),(1441,'Bolulla',1134,1137,3,1),(1442,'Bolvir',14082,14085,3,1),(1443,'Bonansa',18582,18585,3,1),(1444,'Boñar',21962,21981,3,9),(1445,'Bonares',17908,17911,3,1),(1446,'Bonastre',36672,36675,3,1),(1447,'Bonete',496,499,3,1),(1448,'Boniches',13062,13065,3,1),(1449,'Bonilla de la Sierra',3522,3527,3,2),(1450,'Bonrepós y Mirambell',39728,39731,3,1),(1451,'Boqueixón',20256,20263,3,3),(1452,'Boquiñeni',43740,43743,3,1),(1453,'Borau',18586,18589,3,1),(1454,'Bordalba',43744,43747,3,1),(1455,'Bordils',14086,14089,3,1),(1456,'Bordón',37632,37635,3,1),(1457,'Borja',43748,43751,3,1),(1458,'Borjabad',35804,35807,3,1),(1459,'Bormujos',35128,35131,3,1),(1460,'Bornos',10252,10257,3,2),(1461,'Borobia',35808,35811,3,1),(1462,'Borox',38594,38597,3,1),(1463,'Borrassà',14090,14095,3,2),(1464,'Borredà',5986,5989,3,1),(1465,'Borrenes',21982,21987,3,2),(1466,'Borriana/Burriana',11408,11411,3,1),(1467,'Borriol',11412,11415,3,1),(1468,'Bossòst',23662,23665,3,1),(1469,'Bot',36676,36679,3,1),(1470,'Botarell',36680,36683,3,1),(1471,'Botija',9260,9263,3,1),(1472,'Botorrita',43752,43755,3,1),(1473,'Bóveda',24940,24953,3,6),(1474,'Bóveda del Río Almar',32534,32537,3,1),(1475,'Bovera',23666,23669,3,1),(1476,'Bozoó',7498,7503,3,2),(1477,'Brabos',3528,3531,3,1),(1478,'Bràfim',36684,36687,3,1),(1479,'Brahojos de Medina',40772,40775,3,1),(1480,'Brañosera',30560,30563,3,1),(1481,'Braojos',25976,25979,3,1),(1482,'Brazacorta',7504,7507,3,1),(1483,'Brazatortas',12042,12047,3,2),(1484,'Brazuelo',21988,21997,3,4),(1485,'Brea de Aragón',43756,43759,3,1),(1486,'Brea de Tajo',25980,25983,3,1),(1487,'Breda',14096,14099,3,1),(1488,'Brenes',35132,35135,3,1),(1489,'Bretó',42330,42333,3,1),(1490,'Bretocino',42334,42337,3,1),(1491,'Brieva',34208,34211,3,1),(1492,'Brieva de Cameros',21230,21233,3,1),(1493,'Brihuega',16198,16213,3,7),(1494,'Brime de Sog',42338,42341,3,1),(1495,'Brime de Urz',42342,42345,3,1),(1496,'Briñas',21234,21237,3,1),(1497,'Brincones',32538,32541,3,1),(1498,'Brión',20264,20271,3,3),(1499,'Briones',21238,21241,3,1),(1500,'Briviesca',7508,7519,3,5),(1501,'Bronchales',37636,37639,3,1),(1502,'Broto',18590,18601,3,5),(1503,'Brozas',9264,9267,3,1),(1504,'Brunete',25984,25987,3,1),(1505,'Brunyola',14100,14103,3,1),(1506,'Buberos',35812,35815,3,1),(1507,'Bubierca',43760,43763,3,1),(1508,'Bubión',15252,15255,3,1),(1509,'Buciegas',13066,13069,3,1),(1510,'Budia',16214,16219,3,2),(1511,'Bueña',37640,37643,3,1),(1512,'Buenache de Alarcón',13070,13073,3,1),(1513,'Buenache de la Sierra',13074,13077,3,1),(1514,'Buenamadre',32542,32547,3,2),(1515,'Buenaventura',38598,38601,3,1),(1516,'Buenavista',32548,32551,3,1),(1517,'Buenavista de Valdavia',30564,30569,3,2),(1518,'Buendía',13078,13081,3,1),(1519,'Bueu',31514,31523,3,4),(1520,'Bufali',39732,39735,3,1),(1521,'Bugarra',39736,39739,3,1),(1522,'Bugedo',7520,7523,3,1),(1523,'Búger',5386,5389,3,1),(1524,'Buitrago',35816,35819,3,1),(1525,'Buitrago del Lozoya',25988,25991,3,1),(1526,'Bujalance',12478,12485,3,3),(1527,'Bujalaro',16220,16223,3,1),(1528,'Bujaraloz',43764,43767,3,1),(1529,'Bularros',3532,3537,3,2),(1530,'Bulbuente',43768,43771,3,1),(1531,'Bullas',27584,27589,3,2),(1532,'Buniel',7524,7527,3,1),(1533,'Buñol',39740,39743,3,1),(1534,'Buñuel',28400,28403,3,1),(1535,'Bunyola',5390,5399,3,4),(1536,'Burbáguena',37644,37647,3,1),(1537,'Burela',24954,24957,3,1),(1538,'Bureta',43772,43775,3,1),(1539,'Burganes de Valverde',42346,42349,3,1),(1540,'Burgo de Osma-Ciudad de Osma',35820,35841,3,10),(1541,'Burgohondo',3538,3543,3,2),(1542,'Burgos',7528,7549,3,10),(1543,'Burgui/Burgi',28404,28407,3,1),(1544,'Burguillos',35136,35141,3,2),(1545,'Burguillos de Toledo',38602,38605,3,1),(1546,'Burguillos del Cerro',4630,4633,3,1),(1547,'Burjasot',39744,39747,3,1),(1548,'Burlada/Burlata',28408,28411,3,1),(1549,'Burón',21998,22005,3,3),(1550,'Burujón',38606,38609,3,1),(1551,'Busot',1138,1141,3,1),(1552,'Busquístar',15256,15259,3,1),(1553,'Bustares',16224,16227,3,1),(1554,'Bustarviejo',25992,25995,3,1),(1555,'Bustillo de Chaves',40776,40779,3,1),(1556,'Bustillo de la Vega',30570,30573,3,1),(1557,'Bustillo del Oro',42350,42353,3,1),(1558,'Bustillo del Páramo',22006,22013,3,3),(1559,'Bustillo del Páramo de Carrión',30574,30577,3,1),(1560,'Busto de Bureba',7550,7553,3,1),(1561,'Busturia',41832,41835,3,1),(1562,'Cabacés',36688,36691,3,1),(1563,'Caballar',34212,34215,3,1),(1564,'Cabana de Bergantiños',20272,20283,3,5),(1565,'Cabanabona',23670,23673,3,1),(1566,'Cabanas',20284,20293,3,4),(1567,'Cabañas de Ebro',43776,43779,3,1),(1568,'Cabañas de la Sagra',38610,38613,3,1),(1569,'Cabañas de Polendos',34216,34219,3,1),(1570,'Cabañas de Sayago',42354,42357,3,1),(1571,'Cabañas de Yepes',38614,38619,3,2),(1572,'Cabañas del Castillo',9268,9273,3,2),(1573,'Cabañas Raras',22014,22019,3,2),(1574,'Cabanelles',14104,14109,3,2),(1575,'Cabanes',11416,11421,3,2),(1576,'Cabanes',14110,14111,3,0),(1577,'Cabañes de Esgueva',7554,7557,3,1),(1578,'Cabanillas',28412,28415,3,1),(1579,'Cabanillas de la Sierra',25996,25999,3,1),(1580,'Cabanillas del Campo',16228,16231,3,1),(1581,'Cabeza del Buey',4634,4639,3,2),(1582,'Cabeza del Caballo',32552,32555,3,1),(1583,'Cabeza la Vaca',4640,4643,3,1),(1584,'Cabezabellosa',9274,9277,3,1),(1585,'Cabezabellosa de la Calzada',32556,32559,3,1),(1586,'Cabezamesada',38620,38623,3,1),(1587,'Cabezarados',12048,12051,3,1),(1588,'Cabezarrubias del Puerto',12052,12055,3,1),(1589,'Cabezas de Alambre',3544,3547,3,1),(1590,'Cabezas del Pozo',3548,3551,3,1),(1591,'Cabezas del Villar',3552,3555,3,1),(1592,'Cabezas Rubias',17912,17915,3,1),(1593,'Cabezón de Cameros',21242,21245,3,1),(1594,'Cabezón de la Sal',10582,10595,3,6),(1595,'Cabezón de la Sierra',7558,7561,3,1),(1596,'Cabezón de Liébana',10596,10603,3,3),(1597,'Cabezón de Pisuerga',40780,40783,3,1),(1598,'Cabezón de Valderaduey',40784,40787,3,1),(1599,'Cabezuela',34220,34223,3,1),(1600,'Cabezuela del Valle',9278,9281,3,1),(1601,'Cabizuela',3556,3559,3,1),(1602,'Cabó',23674,23677,3,1),(1603,'Cabolafuente',43780,43783,3,1),(1604,'Cabra',12486,12495,3,4),(1605,'Cabra de Mora',37648,37651,3,1),(1606,'Cabra del Camp',36692,36695,3,1),(1607,'Cabra del Santo Cristo',19594,19601,3,3),(1608,'Cabrales',2452,2457,3,2),(1609,'Cabranes',2458,2463,3,2),(1610,'Cabredo',28416,28419,3,1),(1611,'Cabrejas del Campo',35842,35845,3,1),(1612,'Cabrejas del Pinar',35846,35851,3,2),(1613,'Cabrera d\'Anoia',5990,5993,3,1),(1614,'Cabrera de Mar',5994,5997,3,1),(1615,'Cabrerizos',32560,32565,3,2),(1616,'Cabrero',9282,9285,3,1),(1617,'Cabreros del Monte',40788,40791,3,1),(1618,'Cabreros del Río',22020,22023,3,1),(1619,'Cabrillanes',22024,22031,3,3),(1620,'Cabrillas',32566,32569,3,1),(1621,'Cabrils',5998,6003,3,2),(1622,'Cabuérniga',10604,10613,3,4),(1623,'Cacabelos',22032,22039,3,3),(1624,'Cáceres',9286,9307,3,10),(1625,'Cachorrilla',9308,9311,3,1),(1626,'Cacín',15260,15263,3,1),(1627,'Cadalso',9312,9315,3,1),(1628,'Cadalso de los Vidrios',26000,26005,3,2),(1629,'Cadaqués',14112,14115,3,1),(1630,'Cádiar',15264,15269,3,2),(1631,'Cádiz',10258,10285,3,13),(1632,'Cadreita',28420,28423,3,1),(1633,'Cadrete',43784,43789,3,2),(1634,'Cájar',15270,15273,3,1),(1635,'Cala',17916,17919,3,1),(1636,'Calabazas de Fuentidueña',34224,34227,3,1),(1637,'Calaceite',37652,37655,3,1),(1638,'Calaf',6004,6007,3,1),(1639,'Calafell',36696,36703,3,3),(1640,'Calahorra',21246,21249,3,1),(1641,'Calahorra de Boedo',30578,30581,3,1),(1642,'Calamocha',37656,37675,3,9),(1643,'Calamonte',4644,4647,3,1),(1644,'Calañas',17920,17929,3,4),(1645,'Calanda',37676,37679,3,1),(1646,'Calasparra',27590,27593,3,1),(1647,'Calatañazor',35852,35855,3,1),(1648,'Calatayud',43790,43799,3,4),(1649,'Calatorao',43800,43803,3,1),(1650,'Calcena',43804,43807,3,1),(1651,'Caldas de Reis',31524,31539,3,7),(1652,'Caldearenas',18602,18609,3,3),(1653,'Calders',6008,6011,3,1),(1654,'Caldes d\'Estrac',6012,6015,3,1),(1655,'Caldes de Malavella',14116,14121,3,2),(1656,'Caldes de Montbui',6016,6019,3,1),(1657,'Calella',6020,6023,3,1),(1658,'Calera de León',4648,4651,3,1),(1659,'Calera y Chozas',38624,38629,3,2),(1660,'Caleruega',7562,7565,3,1),(1661,'Caleruela',38630,38633,3,1),(1662,'Calicasas',15274,15277,3,1),(1663,'Càlig',11422,11425,3,1),(1664,'Calldetenes',6024,6027,3,1),(1665,'Calles',39748,39751,3,1),(1666,'Callosa d\'en Sarrià',1142,1145,3,1),(1667,'Callosa de Segura',1146,1151,3,2),(1668,'Callús',6028,6031,3,1),(1669,'Calmarza',43808,43811,3,1),(1670,'Calomarde',37680,37683,3,1),(1671,'Calonge',14122,14127,3,2),(1672,'Calonge de Segarra',6032,6035,3,1),(1673,'Calp',1152,1155,3,1),(1674,'Caltojar',35856,35859,3,1),(1675,'Calvarrasa de Abajo',32570,32573,3,1),(1676,'Calvarrasa de Arriba',32574,32577,3,1),(1677,'Calvià',5400,5413,3,6),(1678,'Calvos de Randín',29614,29625,3,5),(1679,'Calzada de Calatrava',12056,12063,3,3),(1680,'Calzada de Don Diego',32578,32583,3,2),(1681,'Calzada de los Molinos',30582,30585,3,1),(1682,'Calzada de Oropesa',38634,38637,3,1),(1683,'Calzada de Valdunciel',32584,32587,3,1),(1684,'Calzada del Coto',22040,22043,3,1),(1685,'Calzadilla',9316,9319,3,1),(1686,'Calzadilla de los Barros',4652,4655,3,1),(1687,'Calzadilla de Tera',42358,42361,3,1),(1688,'Camaleño',10614,10625,3,5),(1689,'Camañas',37684,37687,3,1),(1690,'Camarasa',23678,23687,3,4),(1691,'Camarena',38638,38641,3,1),(1692,'Camarena de la Sierra',37688,37693,3,2),(1693,'Camarenilla',38642,38645,3,1),(1694,'Camargo',10626,10633,3,3),(1695,'Camarillas',37694,37697,3,1),(1696,'Camariñas',20294,20301,3,3),(1697,'Camarles',36704,36707,3,1),(1698,'Camarma de Esteruelas',26006,26009,3,1),(1699,'Camarzana de Tera',42362,42369,3,3),(1700,'Camas',35142,35147,3,2),(1701,'Cambados',31540,31551,3,5),(1702,'Cambil',19602,19607,3,2),(1703,'Cambre',20302,20317,3,7),(1704,'Cambrils',36708,36711,3,1),(1705,'Caminomorisco',9320,9331,3,5),(1706,'Caminreal',37698,37703,3,2),(1707,'Camós',14128,14133,3,2),(1708,'Campanario',4656,4661,3,2),(1709,'Campanet',5414,5417,3,1),(1710,'Campaspero',40792,40795,3,1),(1711,'Campazas',22044,22047,3,1),(1712,'Campdevànol',14134,14139,3,2),(1713,'Campelles',14140,14143,3,1),(1714,'Campezo/Kanpezu',114,121,3,3),(1715,'Campillo de Altobuey',13082,13085,3,1),(1716,'Campillo de Aragón',43812,43815,3,1),(1717,'Campillo de Aranda',7566,7569,3,1),(1718,'Campillo de Arenas',19608,19611,3,1),(1719,'Campillo de Azaba',32588,32591,3,1),(1720,'Campillo de Deleitosa',9332,9335,3,1),(1721,'Campillo de Dueñas',16232,16235,3,1),(1722,'Campillo de Llerena',4662,4665,3,1),(1723,'Campillo de Ranas',16236,16241,3,2),(1724,'Campillos',27072,27075,3,1),(1725,'Campillos-Paravientos',13086,13091,3,2),(1726,'Campillos-Sierra',13092,13095,3,1),(1727,'Campins',6036,6041,3,2),(1728,'Campisábalos',16242,16245,3,1),(1729,'Campllong',14144,14147,3,1),(1730,'Campo',18610,18615,3,2),(1731,'Campo de Criptana',12064,12067,3,1),(1732,'Campo de Mirra/el Camp de Mirra',1156,1159,3,1),(1733,'Campo de San Pedro',34228,34235,3,3),(1734,'Campo de Villavidel',22048,22051,3,1),(1735,'Campo Lameiro',31552,31561,3,4),(1736,'Campo Lugar',9336,9339,3,1),(1737,'Campo Real',26010,26013,3,1),(1738,'Campofrío',17930,17933,3,1),(1739,'Campolara',7570,7573,3,1),(1740,'Camponaraya',22052,22055,3,1),(1741,'Campoo de Enmedio',10634,10645,3,5),(1742,'Campoo de Yuso',10646,10657,3,5),(1743,'Camporredondo',40796,40799,3,1),(1744,'Camporrélls',18616,18619,3,1),(1745,'Camporrobles',39752,39755,3,1),(1746,'Campos',5418,5425,3,3),(1747,'Campos del Paraíso',13096,13101,3,2),(1748,'Campos del Río',27594,27599,3,2),(1749,'Campotéjar',15278,15281,3,1),(1750,'Camprodon',14148,14151,3,1),(1751,'Camprovín',21250,21255,3,2),(1752,'Camuñas',38646,38649,3,1),(1753,'Cañada',1160,1163,3,1),(1754,'Cañada de Benatanduz',37704,37707,3,1),(1755,'Cañada de Calatrava',12068,12071,3,1),(1756,'Cañada del Hoyo',13102,13105,3,1),(1757,'Cañada Juncosa',13106,13109,3,1),(1758,'Cañada Rosal',35148,35151,3,1),(1759,'Cañada Vellida',37708,37711,3,1),(1760,'Canal de Berdún',18620,18629,3,4),(1761,'Canalejas de Peñafiel',40800,40803,3,1),(1762,'Canalejas del Arroyo',13110,13113,3,1),(1763,'Canales',3560,3563,3,1),(1764,'Canales de la Sierra',21256,21259,3,1),(1765,'Canals',39756,39763,3,3),(1766,'Cañamaque',35860,35863,3,1),(1767,'Cañamares',13114,13117,3,1),(1768,'Cañamero',9340,9343,3,1),(1769,'Cáñar',15282,15285,3,1),(1770,'Cañas',21260,21263,3,1),(1771,'Cañaveral',9344,9351,3,3),(1772,'Cañaveral de León',17934,17937,3,1),(1773,'Cañaveras',13118,13121,3,1),(1774,'Cañaveruelas',13122,13125,3,1),(1775,'Candamo',2464,2473,3,4),(1776,'Candasnos',18630,18633,3,1),(1777,'Candelario',32592,32595,3,1),(1778,'Candeleda',3564,3571,3,3),(1779,'Candilichera',35864,35867,3,1),(1780,'Candín',22056,22061,3,2),(1781,'Canejan',23688,23691,3,1),(1782,'Canena',19612,19615,3,1),(1783,'Canencia',26014,26017,3,1),(1784,'Canet d\'Adri',14152,14155,3,1),(1785,'Canet de Berenguer',39764,39767,3,1),(1786,'Canet de Mar',6042,6045,3,1),(1787,'Canet lo Roig',11426,11429,3,1),(1788,'Cañete',13126,13129,3,1),(1789,'Cañete de las Torres',12496,12499,3,1),(1790,'Cañete la Real',27076,27079,3,1),(1791,'Canfranc',18634,18639,3,2),(1792,'Cangas',31562,31575,3,6),(1793,'Cangas de Onís',2474,2485,3,5),(1794,'Cangas del Narcea',2486,2505,3,9),(1795,'Canicosa de la Sierra',7574,7577,3,1),(1796,'Caniles',15286,15291,3,2),(1797,'Canillas de Abajo',32596,32603,3,3),(1798,'Canillas de Aceituno',27080,27085,3,2),(1799,'Canillas de Albaida',27086,27089,3,1),(1800,'Canillas de Esgueva',40804,40807,3,1),(1801,'Canillas de Río Tuerto',21264,21267,3,1),(1802,'Cañizal',42370,42373,3,1),(1803,'Cañizar',16246,16249,3,1),(1804,'Cañizar del Olivar',37712,37715,3,1),(1805,'Cañizares',13130,13137,3,3),(1806,'Cañizo',42374,42377,3,1),(1807,'Canjáyar',1854,1857,3,1),(1808,'Canovelles',6046,6049,3,1),(1809,'Cànoves i Samalús',6050,6057,3,3),(1810,'Canredondo',16250,16253,3,1),(1811,'Cantabrana',7578,7581,3,1),(1812,'Cantagallo',32604,32607,3,1),(1813,'Cantalapiedra',32608,32611,3,1),(1814,'Cantalejo',34236,34243,3,3),(1815,'Cantallops',14156,14159,3,1),(1816,'Cantalojas',16254,16259,3,2),(1817,'Cantalpino',32612,32615,3,1),(1818,'Cantaracillo',32616,32619,3,1),(1819,'Cantavieja',37716,37719,3,1),(1820,'Cantillana',35152,35155,3,1),(1821,'Cantimpalos',34244,34247,3,1),(1822,'Cantiveros',3572,3575,3,1),(1823,'Cantoria',1858,1865,3,3),(1824,'Canyelles',6058,6061,3,1),(1825,'Capafonts',36712,36715,3,1),(1826,'Caparroso',28424,28429,3,2),(1827,'Capçanes',36716,36719,3,1),(1828,'Capdepera',5426,5433,3,3),(1829,'Capdesaso',18640,18643,3,1),(1830,'Capella',18644,18649,3,2),(1831,'Capellades',6062,6065,3,1),(1832,'Capileira',15292,15295,3,1),(1833,'Capilla',4666,4669,3,1),(1834,'Capillas',30586,30589,3,1),(1835,'Capmany',14160,14163,3,1),(1836,'Capolat',6066,6069,3,1),(1837,'Carabaña',26018,26021,3,1),(1838,'Carabantes',35868,35871,3,1),(1839,'Carabias',34248,34251,3,1),(1840,'Caracena',35872,35875,3,1),(1841,'Caracuel de Calatrava',12072,12075,3,1),(1842,'Carataunas',15296,15299,3,1),(1843,'Caravaca de la Cruz',27600,27613,3,6),(1844,'Caravia',2506,2511,3,2),(1845,'Carazo',7582,7585,3,1),(1846,'Carbajales de Alba',42378,42381,3,1),(1847,'Carbajo',9352,9355,3,1),(1848,'Carbajosa de la Sagrada',32620,32629,3,4),(1849,'Carballeda de Avia',29626,29637,3,5),(1850,'Carballeda de Valdeorras',29638,29655,3,8),(1851,'Carballedo',24958,24975,3,8),(1852,'Carballo',20318,20333,3,7),(1853,'Carbellino',42382,42385,3,1),(1854,'Carboneras',1866,1871,3,2),(1855,'Carboneras de Guadazaón',13138,13141,3,1),(1856,'Carbonero el Mayor',34252,34255,3,1),(1857,'Carboneros',19616,19619,3,1),(1858,'Carcaboso',9356,9361,3,2),(1859,'Carcabuey',12500,12507,3,3),(1860,'Carcagente',39768,39775,3,3),(1861,'Cárcar',28430,28433,3,1),(1862,'Carcastillo',28434,28439,3,2),(1863,'Carcedo de Bureba',7586,7591,3,2),(1864,'Carcedo de Burgos',7592,7597,3,2),(1865,'Carcelén',500,503,3,1),(1866,'Cárcer',39776,39779,3,1),(1867,'Cárcheles',19620,19625,3,2),(1868,'Cardedeu',6070,6073,3,1),(1869,'Cardeña',12508,12519,3,5),(1870,'Cardeñadijo',7598,7601,3,1),(1871,'Cardeñajimeno',7602,7607,3,2),(1872,'Cárdenas',21268,21271,3,1),(1873,'Cardenete',13142,13145,3,1),(1874,'Cardeñosa',3576,3579,3,1),(1875,'Cardeñosa de Volpejera',30590,30593,3,1),(1876,'Cardeñuela Riopico',7608,7611,3,1),(1877,'Cardiel de los Montes',38650,38653,3,1),(1878,'Cardona',6074,6077,3,1),(1879,'Carenas',43816,43819,3,1),(1880,'Cariñena',43820,43823,3,1),(1881,'Cariño',20334,20343,3,4),(1882,'Carlet',39780,39783,3,1),(1883,'Carme',6078,6081,3,1),(1884,'Carmena',38654,38657,3,1),(1885,'Cármenes',22062,22067,3,2),(1886,'Carmona',35156,35161,3,2),(1887,'Carmonita',4670,4675,3,2),(1888,'Carnota',20344,20353,3,4),(1889,'Carpio',40808,40811,3,1),(1890,'Carpio de Azaba',32630,32633,3,1),(1891,'Carracedelo',22068,22079,3,5),(1892,'Carral',20354,20363,3,4),(1893,'Carranque',38658,38661,3,1),(1894,'Carrascal de Barregas',32634,32647,3,6),(1895,'Carrascal del Obispo',32648,32653,3,2),(1896,'Carrascal del Río',34256,34259,3,1),(1897,'Carrascalejo',9362,9365,3,1),(1898,'Carrascosa',13146,13151,3,2),(1899,'Carrascosa de Abajo',35876,35879,3,1),(1900,'Carrascosa de Haro',13152,13155,3,1),(1901,'Carrascosa de la Sierra',35880,35885,3,2),(1902,'Carratraca',27090,27093,3,1),(1903,'Carreño',2512,2525,3,6),(1904,'Carrias',7612,7615,3,1),(1905,'Carriches',38662,38665,3,1),(1906,'Carrícola',39784,39787,3,1),(1907,'Carrión de Calatrava',12076,12079,3,1),(1908,'Carrión de los Céspedes',35162,35165,3,1),(1909,'Carrión de los Condes',30594,30599,3,2),(1910,'Carrizo',22080,22085,3,2),(1911,'Carrizosa',12080,12083,3,1),(1912,'Carrocera',22086,22089,3,1),(1913,'Cartagena',27614,27695,3,40),(1914,'Cartajima',27094,27097,3,1),(1915,'Cártama',27098,27109,3,5),(1916,'Cartaya',17938,17945,3,3),(1917,'Cartelle',29656,29671,3,7),(1918,'Cartes',10658,10663,3,2),(1919,'Carucedo',22090,22097,3,3),(1920,'Casa de Uceda',16260,16263,3,1),(1921,'Casabermeja',27110,27113,3,1),(1922,'Casafranca',32654,32657,3,1),(1923,'Casalarreina',21272,21275,3,1),(1924,'Casar de Cáceres',9366,9371,3,2),(1925,'Casar de Palomero',9372,9379,3,3),(1926,'Casarabonela',27114,27117,3,1),(1927,'Casarejos',35886,35889,3,1),(1928,'Casares',27118,27123,3,2),(1929,'Casares de las Hurdes',9380,9383,3,1),(1930,'Casariche',35166,35169,3,1),(1931,'Casarrubios del Monte',38666,38669,3,1),(1932,'Casarrubuelos',26022,26025,3,1),(1933,'Casas Altas',39788,39791,3,1),(1934,'Casas Bajas',39792,39795,3,1),(1935,'Casas de Benítez',13156,13161,3,2),(1936,'Casas de Don Antonio',9384,9387,3,1),(1937,'Casas de Don Gómez',9388,9393,3,2),(1938,'Casas de Don Pedro',4676,4679,3,1),(1939,'Casas de Fernando Alonso',13162,13165,3,1),(1940,'Casas de Garcimolina',13166,13169,3,1),(1941,'Casas de Guijarro',13170,13173,3,1),(1942,'Casas de Haro',13174,13177,3,1),(1943,'Casas de Juan Núñez',504,507,3,1),(1944,'Casas de Lázaro',508,511,3,1),(1945,'Casas de los Pinos',13178,13181,3,1),(1946,'Casas de Millán',9394,9397,3,1),(1947,'Casas de Miravete',9398,9401,3,1),(1948,'Casas de Reina',4680,4683,3,1),(1949,'Casas de San Galindo',16264,16267,3,1),(1950,'Casas de Ves',512,515,3,1),(1951,'Casas del Castañar',9402,9405,3,1),(1952,'Casas del Monte',9406,9409,3,1),(1953,'Casas del Puerto',3580,3583,3,1),(1954,'Casas-Ibáñez',516,519,3,1),(1955,'Casasbuenas',38670,38673,3,1),(1956,'Casaseca de Campeán',42386,42389,3,1),(1957,'Casaseca de las Chanas',42390,42393,3,1),(1958,'Casasimarro',13182,13185,3,1),(1959,'Casasola',3584,3587,3,1),(1960,'Casasola de Arión',40812,40815,3,1),(1961,'Casatejada',9410,9413,3,1),(1962,'Casavieja',3588,3591,3,1),(1963,'Casbas de Huesca',18650,18655,3,2),(1964,'Cascajares de Bureba',7616,7619,3,1),(1965,'Cascajares de la Sierra',7620,7623,3,1),(1966,'Cascante',28440,28443,3,1),(1967,'Cascante del Río',37720,37723,3,1),(1968,'Cáseda',28444,28449,3,2),(1969,'Caseres',36720,36723,3,1),(1970,'Casillas',3592,3597,3,2),(1971,'Casillas de Coria',9414,9417,3,1),(1972,'Casillas de Flores',32658,32661,3,1),(1973,'Casinos',39796,39801,3,2),(1974,'Casla',34260,34263,3,1),(1975,'Caso',2526,2533,3,3),(1976,'Caspe',43824,43829,3,2),(1977,'Caspueñas',16268,16271,3,1),(1978,'Cassà de la Selva',14164,14167,3,1),(1979,'Casserres',6082,6085,3,1),(1980,'Castalla',1164,1167,3,1),(1981,'Castañar de Ibor',9418,9421,3,1),(1982,'Castañares de Rioja',21276,21279,3,1),(1983,'Castañeda',10664,10669,3,2),(1984,'Castaño del Robledo',17946,17949,3,1),(1985,'Cástaras',15300,15303,3,1),(1986,'Castejón',13186,13189,3,1),(1987,'Castejón',28450,28451,3,0),(1988,'Castejón de Alarba',43830,43833,3,1),(1989,'Castejón de Henares',16272,16275,3,1),(1990,'Castejón de las Armas',43834,43837,3,1),(1991,'Castejón de Monegros',18656,18659,3,1),(1992,'Castejón de Sos',18660,18667,3,3),(1993,'Castejón de Tornos',37724,37727,3,1),(1994,'Castejón de Valdejasa',43838,43841,3,1),(1995,'Castejón del Puente',18668,18671,3,1),(1996,'Castel de Cabra',37728,37731,3,1),(1997,'Castelflorite',18672,18675,3,1),(1998,'Castell de Cabres',11430,11433,3,1),(1999,'Castell de Castells',1168,1171,3,1),(2000,'Castell de l\'Areny',6086,6089,3,1),(2001,'Castell de Mur',23692,23699,3,3),(2002,'Castell-Platja d\'Aro',14168,14175,3,3),(2003,'Castellanos de Castro',7624,7627,3,1),(2004,'Castellanos de Moriscos',32662,32665,3,1),(2005,'Castellanos de Villiquera',32666,32673,3,3),(2006,'Castellanos de Zapardiel',3598,3601,3,1),(2007,'Castellar',19626,19629,3,1),(2008,'Castellar de la Frontera',10286,10289,3,1),(2009,'Castellar de la Muela',16276,16279,3,1),(2010,'Castellar de la Ribera',23700,23703,3,1),(2011,'Castellar de n\'Hug',6090,6093,3,1),(2012,'Castellar de Santiago',12084,12087,3,1),(2013,'Castellar del Riu',6094,6097,3,1),(2014,'Castellar del Vallès',6098,6101,3,1),(2015,'Castellbell i el Vilar',6102,6105,3,1),(2016,'Castellbisbal',6106,6109,3,1),(2017,'Castellcir',6110,6113,3,1),(2018,'Castelldans',23704,23707,3,1),(2019,'Castelldefels',6114,6117,3,1),(2020,'Castellet i la Gornal',6118,6123,3,2),(2021,'Castellfollit de la Roca',14176,14179,3,1),(2022,'Castellfollit de Riubregós',6124,6127,3,1),(2023,'Castellfollit del Boix',6128,6131,3,1),(2024,'Castellfort',11434,11437,3,1),(2025,'Castellgalí',6132,6135,3,1),(2026,'Castellnou de Bages',6136,6139,3,1),(2027,'Castellnou de Seana',23708,23711,3,1),(2028,'Castellnovo',11438,11441,3,1),(2029,'Castelló d\'Empúries',14180,14185,3,2),(2030,'Castelló de Farfanya',23712,23715,3,1),(2031,'Castellolí',6140,6143,3,1),(2032,'Castellón de la Plana/Castelló de la Plana',11442,11459,3,8),(2033,'Castellón de Rugat',39802,39805,3,1),(2034,'Castellonet',39806,39809,3,1),(2035,'Castellote',37732,37741,3,4),(2036,'Castellserà',23716,23719,3,1),(2037,'Castellterçol',6144,6147,3,1),(2038,'Castellvell del Camp',36724,36727,3,1),(2039,'Castellví de la Marca',6148,6151,3,1),(2040,'Castellví de Rosanes',6152,6155,3,1),(2041,'Castelnou',37742,37745,3,1),(2042,'Castelserás',37746,37749,3,1),(2043,'Castielfabib',39810,39813,3,1),(2044,'Castiello de Jaca',18676,18681,3,2),(2045,'Castigaleu',18682,18687,3,2),(2046,'Castil de Peones',7628,7631,3,1),(2047,'Castil de Vela',30600,30603,3,1),(2048,'Castilblanco',4684,4687,3,1),(2049,'Castilblanco de los Arroyos',35170,35173,3,1),(2050,'Castildelgado',7632,7635,3,1),(2051,'Castilfalé',22098,22101,3,1),(2052,'Castilforte',16280,16283,3,1),(2053,'Castilfrío de la Sierra',35890,35893,3,1),(2054,'Castiliscar',43842,43845,3,1),(2055,'Castillazuelo',18688,18691,3,1),(2056,'Castilleja de Guzmán',35174,35177,3,1),(2057,'Castilleja de la Cuesta',35178,35181,3,1),(2058,'Castilleja del Campo',35182,35185,3,1),(2059,'Castilléjar',15304,15307,3,1),(2060,'Castillejo de Iniesta',13190,13193,3,1),(2061,'Castillejo de Martín Viejo',32674,32679,3,2),(2062,'Castillejo de Mesleón',34264,34267,3,1),(2063,'Castillejo de Robledo',35894,35897,3,1),(2064,'Castillejo-Sierra',13194,13197,3,1),(2065,'Castillo de Bayuela',38674,38677,3,1),(2066,'Castillo de Garcimuñoz',13198,13201,3,1),(2067,'Castillo de Locubín',19630,19635,3,2),(2068,'Castillo de Villamalefa',11460,11463,3,1),(2069,'Castillo-Albaráñez',13202,13205,3,1),(2070,'Castillonroy',18692,18697,3,2),(2071,'Castillonuevo',28452,28455,3,1),(2072,'Castilnuevo',16284,16287,3,1),(2073,'Castilruiz',35898,35903,3,2),(2074,'Castraz',32680,32683,3,1),(2075,'Castrejón de la Peña',30604,30611,3,3),(2076,'Castrejón de Trabancos',40816,40819,3,1),(2077,'Castrelo de Miño',29672,29675,3,1),(2078,'Castrelo do Val',29676,29687,3,5),(2079,'Castril',15308,15311,3,1),(2080,'Castrillo de Cabrera',22102,22107,3,2),(2081,'Castrillo de Don Juan',30612,30615,3,1),(2082,'Castrillo de Duero',40820,40823,3,1),(2083,'Castrillo de la Guareña',42394,42397,3,1),(2084,'Castrillo de la Reina',7636,7639,3,1),(2085,'Castrillo de la Valduerna',22108,22111,3,1),(2086,'Castrillo de la Vega',7640,7643,3,1),(2087,'Castrillo de Onielo',30616,30619,3,1),(2088,'Castrillo de Riopisuerga',7644,7647,3,1),(2089,'Castrillo de Villavega',30620,30623,3,1),(2090,'Castrillo del Val',7648,7653,3,2),(2091,'Castrillo Mota de Judíos',7654,7657,3,1),(2092,'Castrillo-Tejeriego',40824,40827,3,1),(2093,'Castrillón',2534,2553,3,9),(2094,'Castro Caldelas',29688,29703,3,7),(2095,'Castro de Filabres',1872,1875,3,1),(2096,'Castro de Fuentidueña',34268,34271,3,1),(2097,'Castro de Rei',24976,25001,3,12),(2098,'Castro del Río',12520,12527,3,3),(2099,'Castro-Urdiales',10670,10685,3,7),(2100,'Castrobol',40828,40831,3,1),(2101,'Castrocalbón',22112,22115,3,1),(2102,'Castrocontrigo',22116,22123,3,3),(2103,'Castrodeza',40832,40835,3,1),(2104,'Castrogonzalo',42398,42401,3,1),(2105,'Castrojeriz',7658,7665,3,3),(2106,'Castrojimeno',34272,34275,3,1),(2107,'Castromembibre',40836,40839,3,1),(2108,'Castromocho',30624,30627,3,1),(2109,'Castromonte',40840,40843,3,1),(2110,'Castronuevo',42402,42405,3,1),(2111,'Castronuevo de Esgueva',40844,40847,3,1),(2112,'Castronuño',40848,40851,3,1),(2113,'Castropodame',22124,22131,3,3),(2114,'Castropol',2554,2565,3,5),(2115,'Castroponce',40852,40855,3,1),(2116,'Castroserna de Abajo',34276,34279,3,1),(2117,'Castroserracín',34280,34283,3,1),(2118,'Castrotierra de Valmadrigal',22132,22135,3,1),(2119,'Castroverde',25002,25033,3,15),(2120,'Castroverde de Campos',42406,42409,3,1),(2121,'Castroverde de Cerrato',40856,40859,3,1),(2122,'Castroviejo',21280,21283,3,1),(2123,'Castuera',4688,4691,3,1),(2124,'Catadau',39814,39817,3,1),(2125,'Catarroja',39818,39821,3,1),(2126,'Catí',11464,11467,3,1),(2127,'Catoira',31576,31579,3,1),(2128,'Catral',1172,1175,3,1),(2129,'Caudete',520,523,3,1),(2130,'Caudete de las Fuentes',39822,39825,3,1),(2131,'Caudiel',11468,11471,3,1),(2132,'Cava',23720,23723,3,1),(2133,'Cavia',7666,7669,3,1),(2134,'Cayuela',7670,7673,3,1),(2135,'Cazalegas',38678,38681,3,1),(2136,'Cazalilla',19636,19639,3,1),(2137,'Cazalla de la Sierra',35186,35191,3,2),(2138,'Cazorla',19640,19649,3,4),(2139,'Cazurra',42410,42413,3,1),(2140,'Cea',22136,22143,3,3),(2141,'Cebanico',22144,22151,3,3),(2142,'Cebolla',38682,38685,3,1),(2143,'Cebrecos',7674,7677,3,1),(2144,'Cebreros',3602,3605,3,1),(2145,'Cebrones del Río',22152,22155,3,1),(2146,'Ceclavín',9422,9425,3,1),(2147,'Cedeira',20364,20377,3,6),(2148,'Cedillo',9426,9429,3,1),(2149,'Cedillo de la Torre',34284,34287,3,1),(2150,'Cedillo del Condado',38686,38689,3,1),(2151,'Cedrillas',37750,37753,3,1),(2152,'Cee',20378,20387,3,4),(2153,'Cehegín',27696,27707,3,5),(2154,'Ceinos de Campos',40860,40863,3,1),(2155,'Celada del Camino',7678,7681,3,1),(2156,'Celadas',37754,37757,3,1),(2157,'Celanova',29704,29721,3,8),(2158,'Cella',37758,37761,3,1),(2159,'Cellorigo',21284,21287,3,1),(2160,'Celrà',14186,14189,3,1),(2161,'Cendea de Olza/Oltza Zendea',28456,28463,3,3),(2162,'Cendejas de Enmedio',16288,16291,3,1),(2163,'Cendejas de la Torre',16292,16295,3,1),(2164,'Cenes de la Vega',15312,15315,3,1),(2165,'Cenicero',21288,21291,3,1),(2166,'Cenicientos',26026,26029,3,1),(2167,'Cenizate',524,527,3,1),(2168,'Cenlle',29722,29729,3,3),(2169,'Centelles',6156,6159,3,1),(2170,'Centenera',16296,16299,3,1),(2171,'Centenera de Andaluz',35904,35907,3,1),(2172,'Cepeda',32684,32687,3,1),(2173,'Cepeda la Mora',3606,3609,3,1),(2174,'Cerbón',35908,35913,3,2),(2175,'Cerceda',20388,20397,3,4),(2176,'Cercedilla',26030,26033,3,1),(2177,'Cercs',6160,6163,3,1),(2178,'Cerdá',39826,39829,3,1),(2179,'Cerdanyola del Vallès',6164,6169,3,2),(2180,'Cerdedo-Cotobade',31580,31601,3,10),(2181,'Cerdido',20398,20403,3,2),(2182,'Cereceda de la Sierra',32688,32691,3,1),(2183,'Cerecinos de Campos',42414,42417,3,1),(2184,'Cerecinos del Carrizal',42418,42421,3,1),(2185,'Cerezal de Peñahorcada',32692,32695,3,1),(2186,'Cerezo',9430,9433,3,1),(2187,'Cerezo de Abajo',34288,34291,3,1),(2188,'Cerezo de Arriba',34292,34295,3,1),(2189,'Cerezo de Río Tirón',7682,7685,3,1),(2190,'Cernadilla',42422,42427,3,2),(2191,'Cerralbo',32696,32701,3,2),(2192,'Cerratón de Juarros',7686,7689,3,1),(2193,'Cervantes',25034,25051,3,8),(2194,'Cervatos de la Cueza',30628,30631,3,1),(2195,'Cervelló',6170,6173,3,1),(2196,'Cervera',23724,23733,3,4),(2197,'Cervera de Buitrago',26034,26037,3,1),(2198,'Cervera de la Cañada',43846,43849,3,1),(2199,'Cervera de los Montes',38690,38693,3,1),(2200,'Cervera de Pisuerga',30632,30643,3,5),(2201,'Cervera del Llano',13206,13209,3,1),(2202,'Cervera del Maestre',11472,11475,3,1),(2203,'Cervera del Río Alhama',21292,21301,3,4),(2204,'Cerveruela',43850,43853,3,1),(2205,'Cervià de les Garrigues',23734,23737,3,1),(2206,'Cervià de Ter',14190,14193,3,1),(2207,'Cervillego de la Cruz',40864,40867,3,1),(2208,'Cervo',25052,25061,3,4),(2209,'Cespedosa de Tormes',32702,32705,3,1),(2210,'Cetina',43854,43857,3,1),(2212,'Ceutí',27708,27713,3,2),(2213,'Cevico de la Torre',30644,30647,3,1),(2214,'Cevico Navero',30648,30651,3,1),(2215,'Chagarcía Medianero',32706,32709,3,1),(2216,'Chalamera',18698,18701,3,1),(2217,'Chamartín',3610,3613,3,1),(2218,'Chandrexa de Queixa',29730,29741,3,5),(2219,'Chañe',34296,34299,3,1),(2220,'Chantada',25062,25089,3,13),(2221,'Chapinería',26038,26041,3,1),(2222,'Chauchina',15316,15321,3,2),(2223,'Checa',16300,16303,3,1),(2224,'Cheles',4692,4695,3,1),(2225,'Chella',39830,39833,3,1),(2226,'Chelva',39834,39839,3,2),(2227,'Chequilla',16304,16307,3,1),(2228,'Chera',39840,39843,3,1),(2229,'Chercos',1876,1879,3,1),(2230,'Cheste',39844,39849,3,2),(2231,'Chía',18702,18705,3,1),(2232,'Chiclana de la Frontera',10290,10295,3,2),(2233,'Chiclana de Segura',19650,19657,3,3),(2234,'Chilches/Xilxes',11476,11481,3,2),(2235,'Chillarón de Cuenca',13210,13217,3,3),(2236,'Chillarón del Rey',16308,16311,3,1),(2237,'Chillón',12088,12091,3,1),(2238,'Chilluévar',19658,19663,3,2),(2239,'Chiloeches',16312,16319,3,3),(2240,'Chimeneas',15322,15325,3,1),(2241,'Chimillas',18706,18709,3,1),(2242,'Chinchilla de Monte-Aragón',528,541,3,6),(2243,'Chinchón',26042,26045,3,1),(2244,'Chipiona',10296,10299,3,1),(2245,'Chiprana',43858,43861,3,1),(2246,'Chirivel',1880,1883,3,1),(2247,'Chiva',39850,39853,3,1),(2248,'Chodes',43862,43865,3,1),(2249,'Chodos/Xodos',11482,11485,3,1),(2250,'Chóvar',11486,11489,3,1),(2251,'Chozas de Abajo',22156,22167,3,5),(2252,'Chozas de Canales',38694,38697,3,1),(2253,'Chucena',17950,17953,3,1),(2254,'Chueca',38698,38701,3,1),(2255,'Chulilla',39854,39857,3,1),(2256,'Chumillas',13218,13221,3,1),(2257,'Churriana de la Vega',15326,15329,3,1),(2258,'Ciadoncha',7690,7693,3,1),(2259,'Cidamón',21302,21305,3,1),(2260,'Cidones',35914,35917,3,1),(2261,'Ciempozuelos',26046,26049,3,1),(2262,'Cieza',27714,27719,3,2),(2263,'Cieza',10686,10687,3,0),(2264,'Cifuentes',16320,16331,3,5),(2265,'Cigales',40868,40871,3,1),(2266,'Cigudosa',35918,35921,3,1),(2267,'Ciguñuela',40872,40875,3,1),(2268,'Cihuela',35922,35925,3,1),(2269,'Cihuri',21306,21309,3,1),(2270,'Cijuela',15330,15333,3,1),(2271,'Cillán',3614,3617,3,1),(2272,'Cillaperlata',7694,7697,3,1),(2273,'Cilleros',9434,9437,3,1),(2274,'Cilleros de la Bastida',32710,32713,3,1),(2275,'Cilleruelo de Abajo',7698,7701,3,1),(2276,'Cilleruelo de Arriba',7702,7705,3,1),(2277,'Cilleruelo de San Mamés',34300,34303,3,1),(2278,'Cillorigo de Liébana',10688,10697,3,4),(2279,'Cimanes de la Vega',22168,22171,3,1),(2280,'Cimanes del Tejar',22172,22181,3,4),(2281,'Cimballa',43866,43869,3,1),(2282,'Cinco Olivas',43870,43873,3,1),(2283,'Cincovillas',16332,16335,3,1),(2284,'Cinctorres',11490,11493,3,1),(2285,'Cintruénigo',28464,28467,3,1),(2286,'Cipérez',32714,32719,3,2),(2287,'Cirat',11494,11499,3,2),(2288,'Cirauqui/Zirauki',28468,28471,3,1),(2289,'Ciria',35926,35929,3,1),(2290,'Ciriza/Ziritza',28472,28475,3,1),(2291,'Ciruelas',16336,16339,3,1),(2292,'Ciruelos',38702,38705,3,1),(2293,'Ciruelos de Cervera',7706,7709,3,1),(2294,'Ciruelos del Pinar',16340,16343,3,1),(2295,'Cirueña',21310,21313,3,1),(2296,'Cirujales del Río',35930,35933,3,1),(2297,'Cisla',3618,3621,3,1),(2298,'Cisneros',30652,30655,3,1),(2299,'Cistella',14194,14197,3,1),(2300,'Cistérniga',40876,40879,3,1),(2301,'Cistierna',22182,22193,3,5),(2302,'Ciudad Real',12092,12111,3,9),(2303,'Ciudad Rodrigo',32720,32735,3,7),(2304,'Ciutadella de Menorca',5728,5735,3,3),(2305,'Ciutadilla',23738,23741,3,1),(2306,'Cizur',28476,28481,3,2),(2307,'Clarés de Ribota',43874,43877,3,1),(2308,'Clariana de Cardener',23742,23745,3,1),(2309,'Clavijo',21314,21317,3,1),(2310,'Coaña',2566,2579,3,6),(2311,'Cóbdar',1884,1887,3,1),(2312,'Cobeja',38706,38709,3,1),(2313,'Cobeña',26050,26053,3,1),(2314,'Cobeta',16344,16347,3,1),(2315,'Cobisa',38710,38713,3,1),(2316,'Cobos de Cerrato',30656,30659,3,1),(2317,'Cobos de Fuentidueña',34304,34307,3,1),(2318,'Cobreros',42428,42435,3,3),(2319,'Coca',34308,34313,3,2),(2320,'Coca de Alba',32736,32739,3,1),(2321,'Cocentaina',1176,1181,3,2),(2322,'Codo',43878,43881,3,1),(2323,'Codorniz',34314,34319,3,2),(2324,'Codos',43882,43885,3,1),(2325,'Cofrentes',39858,39861,3,1),(2326,'Cogeces de Íscar',40880,40883,3,1),(2327,'Cogeces del Monte',40884,40887,3,1),(2328,'Cogollor',16348,16351,3,1),(2329,'Cogollos',7710,7713,3,1),(2330,'Cogollos de Guadix',15334,15337,3,1),(2331,'Cogollos de la Vega',15338,15341,3,1),(2332,'Cogolludo',16352,16361,3,4),(2333,'Coín',27124,27127,3,1),(2334,'Coirós',20404,20407,3,1),(2335,'Colera',14198,14201,3,1),(2336,'Coles',29742,29751,3,4),(2337,'Colindres',10698,10701,3,1),(2338,'Coll de Nargó',23746,23753,3,3),(2339,'Collado de Contreras',3622,3625,3,1),(2340,'Collado de la Vera',9438,9443,3,2),(2341,'Collado del Mirón',3626,3629,3,1),(2342,'Collado Hermoso',34320,34323,3,1),(2343,'Collado Mediano',26054,26057,3,1),(2344,'Collado Villalba',26058,26061,3,1),(2345,'Collazos de Boedo',30660,30665,3,2),(2346,'Collbató',6174,6177,3,1),(2347,'Colldejou',36728,36731,3,1),(2348,'Collsuspina',6178,6181,3,1),(2349,'Colmenar',27128,27131,3,1),(2350,'Colmenar de Montemayor',32740,32743,3,1),(2351,'Colmenar de Oreja',26062,26065,3,1),(2352,'Colmenar del Arroyo',26066,26069,3,1),(2353,'Colmenar Viejo',26070,26079,3,4),(2354,'Colmenarejo',26080,26085,3,2),(2355,'Colomera',15342,15345,3,1),(2356,'Colomers',14202,14205,3,1),(2357,'Colunga',2580,2603,3,11),(2358,'Colungo',18710,18713,3,1),(2359,'Comares',27132,27135,3,1),(2360,'Comillas',10702,10707,3,2),(2361,'Cómpeta',27136,27139,3,1),(2362,'Conca de Dalt',23754,23761,3,3),(2363,'Condado de Castilnovo',34324,34327,3,1),(2364,'Condado de Treviño',7714,7729,3,7),(2365,'Condemios de Abajo',16362,16365,3,1),(2366,'Condemios de Arriba',16366,16371,3,2),(2367,'Conesa',36732,36737,3,2),(2368,'Confrides',1182,1185,3,1),(2369,'Congosto',22194,22197,3,1),(2370,'Congosto de Valdavia',30666,30671,3,2),(2371,'Congostrina',16372,16375,3,1),(2372,'Conil de la Frontera',10300,10305,3,2),(2373,'Conquista',12528,12531,3,1),(2374,'Conquista de la Sierra',9444,9447,3,1),(2375,'Consell',5434,5437,3,1),(2376,'Constantí',36738,36741,3,1),(2377,'Constantina',35192,35195,3,1),(2378,'Constanzana',3630,3633,3,1),(2379,'Consuegra',38714,38717,3,1),(2380,'Contamina',43886,43889,3,1),(2381,'Contreras',7730,7733,3,1),(2382,'Coomonte',42436,42439,3,1),(2383,'Copernal',16376,16379,3,1),(2384,'Copons',6182,6185,3,1),(2385,'Corbalán',37762,37765,3,1),(2386,'Corbera',39862,39865,3,1),(2387,'Corbera d\'Ebre',36742,36745,3,1),(2388,'Corbera de Llobregat',6186,6189,3,1),(2389,'Corbillos de los Oteros',22198,22201,3,1),(2390,'Corbins',23762,23765,3,1),(2391,'Corçà',14206,14209,3,1),(2392,'Corcos',40888,40893,3,2),(2393,'Corcubión',20408,20413,3,2),(2394,'Córdoba',12532,12591,3,29),(2395,'Cordobilla de Lácara',4696,4699,3,1),(2396,'Cordovilla',32744,32747,3,1),(2397,'Cordovilla la Real',30672,30675,3,1),(2398,'Cordovín',21318,21321,3,1),(2399,'Corduente',16380,16391,3,5),(2400,'Corella',28482,28485,3,1),(2401,'Corera',21322,21325,3,1),(2402,'Coreses',42440,42443,3,1),(2403,'Coria',9448,9453,3,2),(2404,'Coria del Río',35196,35199,3,1),(2405,'Coripe',35200,35203,3,1),(2406,'Coristanco',20414,20419,3,2),(2407,'Cornago',21326,21331,3,2),(2408,'Cornellà de Llobregat',6190,6193,3,1),(2409,'Cornellà del Terri',14210,14213,3,1),(2410,'Cornudella de Montsant',36746,36751,3,2),(2411,'Corpa',26086,26089,3,1),(2412,'Corporales',21332,21335,3,1),(2413,'Corral de Almaguer',38718,38721,3,1),(2414,'Corral de Ayllón',34328,34331,3,1),(2415,'Corral de Calatrava',12112,12115,3,1),(2416,'Corral-Rubio',542,545,3,1),(2417,'Corrales de Duero',40894,40897,3,1),(2418,'Corrales del Vino',42444,42449,3,2),(2419,'Corte de Peleas',4700,4703,3,1),(2420,'Corteconcepción',17954,17957,3,1),(2421,'Cortegada',29752,29759,3,3),(2422,'Cortegana',17958,17965,3,3),(2423,'Cortelazor',17966,17969,3,1),(2424,'Cortes',28486,28489,3,1),(2425,'Cortes de Aragón',37766,37769,3,1),(2426,'Cortes de Arenoso',11500,11505,3,2),(2427,'Cortes de Baza',15346,15353,3,3),(2428,'Cortes de la Frontera',27140,27147,3,3),(2429,'Cortes de Pallás',39866,39869,3,1),(2430,'Cortes y Graena',15354,15357,3,1),(2431,'Corullón',22202,22211,3,4),(2432,'Coruña del Conde',7734,7737,3,1),(2433,'Corvera de Asturias',2604,2615,3,5),(2434,'Corvera de Toranzo',10708,10717,3,4),(2435,'Cosa',37770,37775,3,2),(2436,'Coscurita',35934,35941,3,3),(2437,'Coslada',26090,26099,3,4),(2438,'Cospeito',25090,25101,3,5),(2439,'Costitx',5438,5441,3,1),(2440,'Costur',11506,11509,3,1),(2441,'Cosuenda',43890,43893,3,1),(2442,'Cotanes del Monte',42450,42453,3,1),(2443,'Cotes',39870,39873,3,1),(2444,'Cotillas',546,549,3,1),(2445,'Covaleda',35942,35945,3,1),(2446,'Covarrubias',7738,7743,3,2),(2447,'Covelo',31602,31615,3,6),(2448,'Cox',1186,1189,3,1),(2449,'Cózar',12116,12119,3,1),(2450,'Cozuelos de Fuentidueña',34332,34335,3,1),(2451,'Crecente',31616,31633,3,8),(2452,'Creixell',36752,36757,3,2),(2453,'Crémenes',22212,22225,3,6),(2454,'Crespià',14214,14217,3,1),(2455,'Crespos',3634,3639,3,2),(2456,'Cretas',37776,37779,3,1),(2457,'Crevillent',1190,1197,3,3),(2458,'Cristina',4704,4707,3,1),(2459,'Cristóbal',32748,32751,3,1),(2460,'Crivillén',37780,37783,3,1),(2461,'Cruïlles, Monells i Sant Sadurní de l\'Heura',14218,14229,3,5),(2462,'Cuacos de Yuste',9454,9457,3,1),(2463,'Cuadros',22226,22235,3,4),(2464,'Cualedro',29760,29767,3,3),(2465,'Cuart de les Valls',39874,39877,3,1),(2466,'Cuart de Poblet',39878,39881,3,1),(2467,'Cuarte de Huerva',43894,43897,3,1),(2468,'Cuartell',39882,39885,3,1),(2469,'Cuatretonda',39886,39889,3,1),(2470,'Cubas de la Sagra',26100,26103,3,1),(2471,'Cubel',43898,43901,3,1),(2472,'Cubelles',6194,6197,3,1),(2473,'Cubells',23766,23769,3,1),(2474,'Cubilla',35946,35949,3,1),(2475,'Cubillas de Cerrato',30676,30679,3,1),(2476,'Cubillas de los Oteros',22236,22239,3,1),(2477,'Cubillas de Rueda',22240,22245,3,2),(2478,'Cubillas de Santa Marta',40898,40901,3,1),(2479,'Cubillo',34336,34339,3,1),(2480,'Cubillo del Campo',7744,7747,3,1),(2481,'Cubillos',42454,42457,3,1),(2482,'Cubillos del Sil',22246,22249,3,1),(2483,'Cubla',37784,37787,3,1),(2484,'Cubo de Benavente',42458,42461,3,1),(2485,'Cubo de Bureba',7748,7751,3,1),(2486,'Cubo de la Solana',35950,35955,3,2),(2487,'Cucalón',37788,37791,3,1),(2488,'Cudillero',2616,2629,3,6),(2489,'Cuelgamures',42462,42465,3,1),(2490,'Cuéllar',34340,34359,3,9),(2491,'Cuenca',13222,13239,3,8),(2492,'Cuenca de Campos',40902,40905,3,1),(2493,'Cuerva',38722,38725,3,1),(2494,'Cueva de Ágreda',35956,35959,3,1),(2495,'Cueva del Hierro',13240,13243,3,1),(2496,'Cuevas Bajas',27148,27151,3,1),(2497,'Cuevas de Almudén',37792,37795,3,1),(2498,'Cuevas de Provanco',34360,34363,3,1),(2499,'Cuevas de San Clemente',7752,7755,3,1),(2500,'Cuevas de San Marcos',27152,27155,3,1),(2501,'Cuevas del Almanzora',1888,1903,3,7),(2502,'Cuevas del Becerro',27156,27159,3,1),(2503,'Cuevas del Campo',15358,15361,3,1),(2504,'Cuevas del Valle',3640,3643,3,1),(2505,'Cuevas Labradas',37796,37799,3,1),(2506,'Culla',11510,11513,3,1),(2507,'Cúllar',15362,15371,3,4),(2508,'Cúllar Vega',15372,15375,3,1),(2509,'Cullera',39890,39897,3,3),(2510,'Culleredo',20420,20435,3,7),(2511,'Cumbres de Enmedio',17970,17973,3,1),(2512,'Cumbres de San Bartolomé',17974,17977,3,1),(2513,'Cumbres Mayores',17978,17981,3,1),(2514,'Cunit',36758,36761,3,1),(2515,'Cuntis',31634,31645,3,5),(2516,'Curiel de Duero',40906,40909,3,1),(2517,'Curtis',20436,20441,3,2),(2518,'Cútar',27160,27163,3,1),(2519,'Cuzcurrita de Río Tirón',21336,21339,3,1),(2520,'Daganzo de Arriba',26104,26107,3,1),(2521,'Daimiel',12120,12123,3,1),(2522,'Daimús',39898,39901,3,1),(2523,'Dalías',1904,1907,3,1),(2524,'Darnius',14230,14233,3,1),(2525,'Daroca',43902,43905,3,1),(2526,'Daroca de Rioja',21340,21343,3,1),(2527,'Darro',15376,15379,3,1),(2528,'Das',14234,14237,3,1),(2529,'Daya Nueva',1198,1201,3,1),(2530,'Daya Vieja',1202,1205,3,1),(2531,'Deba',17486,17491,3,2),(2532,'Degaña',2630,2635,3,2),(2533,'Dehesa de Montejo',30680,30687,3,3),(2534,'Dehesa de Romanos',30688,30691,3,1),(2535,'Dehesas de Guadix',15380,15383,3,1),(2536,'Dehesas Viejas',15384,15385,3,0),(2537,'Deià',5442,5445,3,1),(2538,'Deifontes',15386,15389,3,1),(2539,'Deleitosa',9458,9461,3,1),(2540,'Deltebre',36762,36765,3,1),(2541,'Dénia',1206,1217,3,5),(2542,'Derio',41836,41841,3,2),(2543,'Descargamaría',9462,9465,3,1),(2544,'Desojo',28490,28493,3,1),(2545,'Destriana',22250,22253,3,1),(2546,'Dévanos',35960,35963,3,1),(2547,'Deza',35964,35969,3,2),(2548,'Dicastillo',28494,28497,3,1),(2549,'Diego del Carpio',3644,3647,3,1),(2550,'Diezma',15390,15393,3,1),(2551,'Dílar',15394,15397,3,1),(2552,'Dima',41842,41845,3,1),(2553,'Dios le Guarde',32752,32755,3,1),(2554,'Dodro',20442,20449,3,3),(2555,'Dólar',15398,15401,3,1),(2556,'Dolores',1218,1221,3,1),(2557,'Domeño',39902,39905,3,1),(2558,'Domingo García',34364,34367,3,1),(2559,'Domingo Pérez',38726,38729,3,1),(2560,'Domingo Pérez de Granada',15402,15403,3,0),(2561,'Don Álvaro',4708,4711,3,1),(2562,'Don Benito',4712,4723,3,5),(2563,'Doña Mencía',12592,12595,3,1),(2564,'Donamaria',28498,28501,3,1),(2565,'Doneztebe/Santesteban',28502,28505,3,1),(2566,'Donhierro',34368,34371,3,1),(2567,'Doñinos de Ledesma',32756,32763,3,3),(2568,'Doñinos de Salamanca',32764,32771,3,3),(2569,'Donjimeno',3648,3651,3,1),(2570,'Donostia/San Sebastián',17492,17533,3,20),(2571,'Donvidas',3652,3655,3,1),(2572,'Dos Aguas',39906,39909,3,1),(2573,'Dos Hermanas',35204,35223,3,9),(2574,'Dos Torres',12596,12599,3,1),(2575,'Dosbarrios',38730,38733,3,1),(2576,'Dosrius',6198,6203,3,2),(2577,'Dozón',31646,31651,3,2),(2578,'Driebes',16392,16395,3,1),(2579,'Dúdar',15404,15407,3,1),(2580,'Dueñas',30692,30697,3,2),(2581,'Duesaigües',36766,36769,3,1),(2582,'Dumbría',20450,20457,3,3),(2583,'Durango',41846,41849,3,1),(2584,'Dúrcal',15408,15411,3,1),(2585,'Durón',16396,16401,3,2),(2586,'Duruelo',34372,34375,3,1),(2587,'Duruelo de la Sierra',35970,35973,3,1),(2588,'Ea',41850,41855,3,2),(2589,'Echarri/Etxarri',28506,28509,3,1),(2590,'Écija',35224,35233,3,4),(2591,'Eibar',17534,17537,3,1),(2592,'Eivissa',5276,5279,3,1),(2593,'Ejea de los Caballeros',43906,43915,3,4),(2594,'Éjeme',32772,32775,3,1),(2595,'Ejulve',37800,37803,3,1),(2596,'El Acebrón',13244,13247,3,1),(2597,'El Álamo',26108,26113,3,2),(2598,'El Almendro',17982,17985,3,1),(2599,'El Arco',32776,32779,3,1),(2600,'El Arenal',3656,3659,3,1),(2601,'El Astillero',10718,10725,3,3),(2602,'El Atazar',26114,26117,3,1),(2603,'El Ballestero',550,553,3,1),(2604,'El Barco de Ávila',3660,3663,3,1),(2605,'El Barraco',3664,3669,3,2),(2606,'El Berrueco',26118,26121,3,1),(2607,'El Boalo',26122,26129,3,3),(2608,'El Bodón',32780,32783,3,1),(2609,'El Bohodón',3670,3673,3,1),(2610,'El Bonillo',554,559,3,2),(2611,'El Borge',27164,27167,3,1),(2612,'El Bosque',10306,10309,3,1),(2613,'El Bruc',6204,6207,3,1),(2614,'El Brull',6208,6211,3,1),(2615,'El Burgo',27168,27171,3,1),(2616,'El Burgo de Ebro',43916,43919,3,1),(2617,'El Burgo Ranero',22254,22259,3,2),(2618,'El Buste',43920,43923,3,1),(2619,'El Busto',28510,28513,3,1),(2620,'El Cabaco',32784,32787,3,1),(2621,'el Campello',1222,1225,3,1),(2622,'El Campillo',17986,17991,3,2),(2623,'El Campillo',21736,21736,4,-1),(2624,'El Campillo de la Jara',38734,38737,3,1),(2625,'El Campo de Peñaranda',32788,32791,3,1),(2626,'El Cañavate',13248,13251,3,1),(2627,'El Cardoso de la Sierra',16402,16405,3,1),(2628,'El Carpio',12600,12605,3,2),(2629,'El Carpio de Tajo',38738,38741,3,1),(2630,'El Carrascalejo',4724,4727,3,1),(2631,'El Casar',16406,16411,3,2),(2632,'El Casar de Escalona',38742,38745,3,1),(2633,'el Castell de Guadalest',1226,1229,3,1),(2634,'El Castellar',37804,37807,3,1),(2635,'El Castillo de las Guardas',35234,35243,3,4),(2636,'El Catllar',36770,36775,3,2),(2637,'El Cerro',32792,32799,3,3),(2638,'El Cerro de Andévalo',17992,17999,3,3),(2639,'El Cogul',23770,23773,3,1),(2640,'El Coronil',35244,35247,3,1),(2641,'El Cubillo de Uceda',16412,16415,3,1),(2642,'El Cubo de Don Sancho',32800,32805,3,2),(2643,'El Cubo de Tierra del Vino',42466,42469,3,1),(2644,'El Cuervo',37808,37811,3,1),(2645,'El Cuervo de Sevilla',35248,35251,3,1),(2646,'El Ejido',1908,1921,3,6),(2647,'El Escorial',26130,26141,3,5),(2648,'El Espinar',34376,34385,3,4),(2649,'El Far d\'Empordà',14238,14241,3,1),(2650,'el Fondó de les Neus/Hondón de las Nieves',1230,1235,3,2),(2651,'El Frago',43924,43927,3,1),(2652,'El Franco',2636,2647,3,5),(2653,'El Frasno',43928,43937,3,4),(2654,'El Fresno',3674,3677,3,1),(2655,'El Garrobo',35252,35255,3,1),(2656,'El Gastor',10310,10313,3,1),(2657,'El Gordo',9466,9469,3,1),(2658,'El Grado',18714,18719,3,2),(2659,'El Granado',18000,18003,3,1),(2660,'El Guijo',12606,12609,3,1),(2661,'El Herrumblar',13252,13255,3,1),(2662,'El Hito',13256,13259,3,1),(2663,'El Hornillo',3678,3681,3,1),(2664,'El Hoyo de Pinares',3682,3685,3,1),(2665,'El Lloar',36776,36779,3,1),(2666,'El Losar del Barco',3686,3689,3,1),(2667,'El Maderal',42470,42473,3,1),(2668,'El Madroño',35256,35261,3,2),(2669,'El Maíllo',32806,32809,3,1),(2670,'El Manzano',32810,32813,3,1),(2671,'El Masnou',6212,6215,3,1),(2672,'El Masroig',36780,36783,3,1),(2673,'El Milà',36784,36787,3,1),(2674,'El Milano',32814,32817,3,1),(2675,'El Mirón',3690,3695,3,2),(2676,'El Molar',26142,26145,3,1),(2677,'El Molar',36788,36789,3,0),(2678,'El Montmell',36790,36801,3,5),(2679,'El Morell',36802,36805,3,1),(2680,'El Olivar',16416,16419,3,1),(2681,'El Ordial',16420,16425,3,2),(2682,'El Oso',3696,3699,3,1),(2683,'El Palau d\'Anglesola',23774,23777,3,1),(2684,'el Palomar',39910,39913,3,1),(2685,'El Papiol',6216,6219,3,1),(2686,'El Parral',3700,3703,3,1),(2687,'El Payo',32818,32821,3,1),(2688,'El Pedernoso',13260,13263,3,1),(2689,'El Pedregal',16426,16429,3,1),(2690,'El Pedroso',35262,35265,3,1),(2691,'El Pedroso de la Armuña',32822,32825,3,1),(2692,'El Pego',42474,42477,3,1),(2693,'El Peral',13264,13267,3,1),(2694,'El Perdigón',42478,42485,3,3),(2695,'El Perelló',36806,36809,3,1),(2696,'El Picazo',13268,13271,3,1),(2697,'El Pinar',15412,15417,3,2),(2698,'El Pinell de Brai',36810,36813,3,1),(2699,'El Piñero',42486,42489,3,1),(2700,'El Pino de Tormes',32826,32829,3,1),(2701,'el Pinós/Pinoso',1236,1245,3,4),(2702,'El Pla de Santa Maria',36814,36817,3,1),(2703,'El Pla del Penedès',6220,6223,3,1),(2704,'El Poal',23778,23781,3,1),(2705,'El Pobo',37812,37815,3,1),(2706,'El Pobo de Dueñas',16430,16433,3,1),(2707,'El Pont d\'Armentera',36818,36821,3,1),(2708,'El Pont de Bar',23782,23789,3,3),(2709,'El Pont de Suert',23790,23807,3,8),(2710,'El Pont de Vilomara i Rocafort',6224,6227,3,1),(2711,'El Port de la Selva',14242,14245,3,1),(2712,'El Pozuelo',13272,13275,3,1),(2713,'El Prat de Llobregat',6228,6231,3,1),(2714,'El Provencio',13276,13279,3,1),(2715,'El Puente del Arzobispo',38746,38749,3,1),(2716,'El Puerto de Santa María',10314,10317,3,1),(2717,'El Pueyo de Araguás',18720,18723,3,1),(2718,'El Puig',39914,39919,3,2),(2719,'el Ràfol d\'Almúnia',1246,1249,3,1),(2720,'El Rasillo de Cameros',21344,21347,3,1),(2721,'El Real de Gandia',39920,39923,3,1),(2722,'El Real de la Jara',35266,35269,3,1),(2723,'El Real de San Vicente',38750,38755,3,2),(2724,'El Recuenco',16434,16437,3,1),(2725,'El Redal',21348,21351,3,1),(2726,'El Robledo',12124,12127,3,1),(2727,'El Romeral',38756,38759,3,1),(2728,'El Ronquillo',35270,35273,3,1),(2729,'El Rourell',36822,36825,3,1),(2730,'El Royo',35974,35979,3,2),(2731,'El Rubio',35274,35277,3,1),(2732,'El Sahugo',32830,32833,3,1),(2733,'El Saucejo',35278,35283,3,2),(2734,'El Soleràs',23808,23811,3,1),(2735,'El Sotillo',16438,16441,3,1),(2736,'El Tejado',32834,32837,3,1),(2737,'El Tiemblo',3704,3713,3,4),(2738,'El Toboso',38760,38763,3,1),(2739,'El Tornadizo',32838,32841,3,1),(2740,'El Torno',9470,9473,3,1),(2741,'El Toro',11514,11517,3,1),(2742,'El Valle',15418,15421,3,1),(2743,'El Valle de Altomira',13280,13289,3,4),(2744,'El Vallecillo',37816,37819,3,1),(2745,'El Vellón',26146,26149,3,1),(2746,'El Vendrell',36826,36831,3,2),(2747,'el Verger',1250,1253,3,1),(2748,'El Villar de Arnedo',21352,21355,3,1),(2749,'El Vilosell',23812,23817,3,2),(2750,'El Viso',12610,12613,3,1),(2751,'El Viso de San Juan',38764,38767,3,1),(2752,'El Viso del Alcor',35284,35287,3,1),(2753,'Elantxobe',41856,41859,3,1),(2754,'Elburgo/Burgelu',122,127,3,2),(2755,'Elche de la Sierra',560,569,3,4),(2756,'Elche/Elx',1254,1295,3,20),(2757,'Elciego',128,131,3,1),(2758,'Elda',1296,1299,3,1),(2759,'Elduain',17538,17541,3,1),(2760,'Elgeta',17542,17545,3,1),(2761,'Elgoibar',17546,17551,3,2),(2762,'Elgorriaga',28514,28517,3,1),(2763,'Eljas',9474,9477,3,1),(2764,'Elorrio',41860,41863,3,1),(2765,'Els Alamús',23818,23821,3,1),(2766,'Els Garidells',36832,36835,3,1),(2767,'Els Guiamets',36836,36839,3,1),(2768,'Els Hostalets de Pierola',6232,6235,3,1),(2769,'Els Omellons',23822,23825,3,1),(2770,'Els Omells de na Gaia',23826,23829,3,1),(2771,'Els Pallaresos',36840,36843,3,1),(2772,'Els Plans de Sió',23830,23835,3,2),(2773,'els Poblets',1300,1303,3,1),(2774,'Els Prats de Rei',6236,6239,3,1),(2775,'Els Torms',23836,23839,3,1),(2776,'Elvillar/Bilar',132,135,3,1),(2777,'Embid',16442,16445,3,1),(2778,'Embid de Ariza',43938,43941,3,1),(2779,'Emperador',39924,39927,3,1),(2780,'Encina de San Silvestre',32842,32845,3,1),(2781,'Encinacorba',43942,43945,3,1),(2782,'Encinas',34386,34389,3,1),(2783,'Encinas de Abajo',32846,32851,3,2),(2784,'Encinas de Arriba',32852,32855,3,1),(2785,'Encinas de Esgueva',40912,40915,3,1),(2786,'Encinas Reales',12614,12617,3,1),(2787,'Encinasola',18004,18007,3,1),(2788,'Encinasola de los Comendadores',32856,32859,3,1),(2789,'Encinedo',22260,22271,3,5),(2790,'Encinillas',34390,34393,3,1),(2791,'Encío',7756,7761,3,2),(2792,'Enciso',21356,21359,3,1),(2793,'Endrinal',32860,32865,3,2),(2794,'Enériz/Eneritz',28518,28521,3,1),(2795,'Enguera',39928,39933,3,2),(2796,'Enguídanos',13290,13293,3,1),(2797,'Enix',1922,1925,3,1),(2798,'Énova',39934,39937,3,1),(2799,'Entrala',42490,42493,3,1),(2800,'Entrambasaguas',10726,10733,3,3),(2801,'Entrena',21360,21363,3,1),(2802,'Entrimo',29768,29777,3,4),(2803,'Entrín Bajo',4728,4731,3,1),(2804,'Épila',43946,43951,3,2),(2805,'Erandio',41864,41867,3,1),(2806,'Eratsun',28522,28525,3,1),(2807,'Ereño',41868,41871,3,1),(2808,'Ergoiena',28526,28529,3,1),(2809,'Erla',43952,43955,3,1),(2810,'Ermua',41872,41875,3,1),(2811,'Errenteria',17552,17555,3,1),(2812,'Errezil',17556,17559,3,1),(2813,'Erriberagoitia/Ribera Alta',136,149,3,6),(2814,'Errigoiti',41876,41879,3,1),(2815,'Erro',28530,28545,3,7),(2816,'Erustes',38768,38771,3,1),(2817,'Es Bòrdes',23840,23843,3,1),(2818,'es Castell',5736,5739,3,1),(2819,'Es Mercadal',5740,5745,3,2),(2820,'Es Migjorn Gran',5746,5749,3,1),(2821,'Escacena del Campo',18008,18011,3,1),(2822,'Escalante',10734,10739,3,2),(2823,'Escalona',38772,38775,3,1),(2824,'Escalona del Prado',34394,34397,3,1),(2825,'Escalonilla',38776,38779,3,1),(2826,'Escamilla',16446,16449,3,1),(2827,'Escañuela',19664,19667,3,1),(2828,'Escarabajosa de Cabezas',34398,34401,3,1),(2829,'Escariche',16450,16453,3,1),(2830,'Escatrón',43956,43961,3,2),(2831,'Escobar de Campos',22272,22275,3,1),(2832,'Escobar de Polendos',34402,34407,3,2),(2833,'Escobosa de Almazán',35980,35983,3,1),(2834,'Escopete',16454,16457,3,1),(2835,'Escorca',5446,5449,3,1),(2836,'Escorihuela',37820,37823,3,1),(2837,'Escucha',37824,37829,3,2),(2838,'Escurial',9478,9481,3,1),(2839,'Escurial de la Sierra',32866,32869,3,1),(2840,'Escúzar',15422,15425,3,1),(2841,'Esgos',29778,29783,3,2),(2842,'Esguevillas de Esgueva',40916,40919,3,1),(2843,'Eskoriatza',17560,17565,3,2),(2844,'Eslava',28546,28549,3,1),(2845,'Eslida',11518,11521,3,1),(2846,'Espadaña',32870,32873,3,1),(2847,'Espadañedo',42494,42505,3,5),(2848,'Espadilla',11522,11525,3,1),(2849,'Esparragalejo',4732,4735,3,1),(2850,'Esparragosa de la Serena',4736,4739,3,1),(2851,'Esparragosa de Lares',4740,4743,3,1),(2852,'Esparreguera',6240,6243,3,1),(2853,'Espartinas',35288,35291,3,1),(2854,'Esparza de Salazar/Espartza Zaraitzu',28550,28553,3,1),(2855,'Espeja',32874,32877,3,1),(2856,'Espeja de San Marcelino',35984,35989,3,2),(2857,'Espejo',12618,12621,3,1),(2858,'Espejón',35990,35993,3,1),(2859,'Espeluy',19668,19673,3,2),(2860,'Espera',10318,10321,3,1),(2861,'Espiel',12622,12629,3,3),(2862,'Espinelves',14246,14249,3,1),(2863,'Espino de la Orbada',32878,32881,3,1),(2864,'Espinosa de Cerrato',30698,30701,3,1),(2865,'Espinosa de Cervera',7762,7765,3,1),(2866,'Espinosa de Henares',16458,16463,3,2),(2867,'Espinosa de los Caballeros',3714,3717,3,1),(2868,'Espinosa de los Monteros',7766,7775,3,4),(2869,'Espinosa de Villagonzalo',30702,30707,3,2),(2870,'Espinosa del Camino',7776,7779,3,1),(2871,'Espinoso del Rey',38780,38783,3,1),(2872,'Espirdo',34408,34411,3,1),(2873,'Esplegares',16464,16467,3,1),(2874,'Esplugues de Llobregat',6244,6247,3,1),(2875,'Esplús',18724,18727,3,1),(2876,'Espolla',14250,14253,3,1),(2877,'Esponellà',14254,14257,3,1),(2878,'Esporles',5450,5453,3,1),(2879,'Espot',23844,23847,3,1),(2880,'Espronceda',28554,28557,3,1),(2881,'Esquivias',38784,38787,3,1),(2882,'Establés',16468,16471,3,1),(2883,'Estada',18728,18731,3,1),(2884,'Estadilla',18732,18735,3,1),(2885,'Estamariu',23848,23851,3,1),(2886,'Estaràs',23852,23859,3,3),(2887,'Estella-Lizarra',28558,28561,3,1),(2888,'Estellencs',5454,5457,3,1),(2889,'Estepa',35292,35295,3,1),(2890,'Estepa de San Juan',35994,35997,3,1),(2891,'Estépar',7780,7785,3,2),(2892,'Estepona',27172,27183,3,5),(2893,'Estercuel',37830,37833,3,1),(2894,'Esteribar',28562,28573,3,5),(2895,'Esterri d\'Àneu',23860,23863,3,1),(2896,'Esterri de Cardós',23864,23867,3,1),(2897,'Estivella',39938,39941,3,1),(2898,'Estollo',21364,21367,3,1),(2899,'Estopiñán del Castillo',18736,18741,3,2),(2900,'Estremera',26150,26153,3,1),(2901,'Estriégana',16472,16475,3,1),(2902,'Estubeny',39942,39945,3,1),(2903,'Etayo',28574,28577,3,1),(2904,'Etxalar',28578,28581,3,1),(2905,'Etxarri Aranatz',28582,28585,3,1),(2906,'Etxauri',28586,28589,3,1),(2907,'Etxebarri',41880,41883,3,1),(2908,'Etxebarria',41884,41887,3,1),(2909,'Eulate',28590,28593,3,1),(2910,'Ezcabarte',28594,28599,3,2),(2911,'Ezcaray',21368,21373,3,2),(2912,'Ezcároz/Ezkaroze',28600,28603,3,1),(2913,'Ezkio-Itsaso',17566,17571,3,2),(2914,'Ezkurra',28604,28609,3,2),(2915,'Ezprogui',28610,28615,3,2),(2916,'Fabara',43962,43965,3,1),(2917,'Fabero',22276,22285,3,4),(2918,'Facheca',1304,1307,3,1),(2919,'Fago',18742,18745,3,1),(2920,'Falces',28616,28619,3,1),(2921,'Falset',36844,36847,3,1),(2922,'Famorca',1308,1311,3,1),(2923,'Fanlo',18746,18749,3,1),(2924,'Fanzara',11526,11529,3,1),(2925,'Faraján',27184,27187,3,1),(2926,'Faramontanos de Tábara',42506,42509,3,1),(2927,'Fariza',42510,42515,3,2),(2928,'Farlete',43966,43969,3,1),(2929,'Farrera',23868,23871,3,1),(2930,'Faura',39946,39949,3,1),(2931,'Favara',39950,39953,3,1),(2932,'Fayón',43970,43973,3,1),(2933,'Felanitx',5458,5469,3,5),(2934,'Felix',1926,1929,3,1),(2935,'Fene',20458,20469,3,5),(2936,'Férez',570,573,3,1),(2937,'Feria',4744,4747,3,1),(2938,'Fermoselle',42516,42519,3,1),(2939,'Fernán Caballero',12128,12131,3,1),(2940,'Fernán-Núñez',12630,12633,3,1),(2941,'Ferreira',15426,15429,3,1),(2942,'Ferreras de Abajo',42520,42525,3,2),(2943,'Ferreras de Arriba',42526,42531,3,2),(2944,'Ferreries',5750,5753,3,1),(2945,'Ferreruela',42532,42537,3,2),(2946,'Ferreruela de Huerva',37834,37837,3,1),(2947,'Ferrol',20470,20497,3,13),(2948,'Figaró-Montmany',6248,6251,3,1),(2949,'Fígols',6252,6255,3,1),(2950,'Fígols i Alinyà',23872,23875,3,1),(2951,'Figueres',14258,14263,3,2),(2952,'Figuerola del Camp',36848,36851,3,1),(2953,'Figueroles',11530,11533,3,1),(2954,'Figueruela de Arriba',42538,42543,3,2),(2955,'Figueruelas',43974,43977,3,1),(2956,'Fiñana',1930,1933,3,1),(2957,'Fines',1934,1937,3,1),(2958,'Finestrat',1312,1315,3,1),(2959,'Fiscal',18750,18757,3,3),(2960,'Fisterra',20498,20505,3,3),(2961,'Fitero',28620,28623,3,1),(2962,'Flaçà',14264,14267,3,1),(2963,'Flix',36852,36855,3,1),(2964,'Flores de Ávila',3718,3721,3,1),(2965,'Florida de Liébana',32882,32885,3,1),(2966,'Fogars de la Selva',6256,6259,3,1),(2967,'Fogars de Montclús',6260,6265,3,2),(2968,'Foios',39954,39957,3,1),(2969,'Foixà',14268,14275,3,3),(2970,'Folgoso de la Ribera',22286,22295,3,4),(2971,'Folgoso do Courel',25102,25115,3,6),(2972,'Folgueroles',6266,6269,3,1),(2973,'Fombellida',40920,40923,3,1),(2974,'Fombuena',43978,43981,3,1),(2975,'Fompedraza',40924,40927,3,1),(2976,'Foncea',21374,21377,3,1),(2977,'Fondarella',23876,23879,3,1),(2978,'Fondón',1938,1943,3,2),(2979,'Fonelas',15430,15433,3,1),(2980,'Fonfría',37838,37849,3,5),(2981,'Fonfría',42544,42545,3,0),(2982,'Fonollosa',6270,6273,3,1),(2983,'Font-rubí',6274,6279,3,2),(2984,'Fontanals de Cerdanya',14276,14279,3,1),(2985,'Fontanar',16476,16479,3,1),(2986,'Fontanarejo',12132,12135,3,1),(2987,'Fontanares',39958,39961,3,1),(2988,'Fontanilles',14280,14283,3,1),(2989,'Fontcoberta',14284,14287,3,1),(2990,'Fontellas',28624,28627,3,1),(2991,'Fontihoyuelo',40928,40931,3,1),(2992,'Fontioso',7786,7789,3,1),(2993,'Fontiveros',3722,3725,3,1),(2994,'Fonz',18758,18763,3,2),(2995,'Fonzaleche',21378,21383,3,2),(2996,'Foradada',23880,23883,3,1),(2997,'Foradada del Toscar',18764,18775,3,5),(2998,'Forallac',14288,14295,3,3),(2999,'Forcall',11534,11537,3,1),(3000,'Forcarei',31652,31671,3,9),(3001,'Forès',36856,36859,3,1),(3002,'Forfoleda',32886,32889,3,1),(3003,'Formentera',5280,5289,3,4),(3004,'Formentera del Segura',1316,1321,3,2),(3005,'Formiche Alto',37850,37855,3,2),(3006,'Fornalutx',5470,5473,3,1),(3007,'Fornells de la Selva',14296,14299,3,1),(3008,'Fornelos de Montes',31672,31689,3,8),(3009,'Fórnoles',37856,37859,3,1),(3010,'Fortaleny',39962,39965,3,1),(3011,'Fortanete',37860,37863,3,1),(3012,'Fortià',14300,14303,3,1),(3013,'Fortuna',27720,27729,3,4),(3014,'Forua',41888,41891,3,1),(3015,'Foz',25116,25133,3,8),(3016,'Foz-Calanda',37864,37867,3,1),(3017,'Frades',20506,20511,3,2),(3018,'Frades de la Sierra',32890,32893,3,1),(3019,'Fraga',18776,18783,3,3),(3020,'Frailes',19674,19683,3,4),(3021,'Frandovínez',7790,7793,3,1),(3022,'Frechilla',30708,30711,3,1),(3023,'Frechilla de Almazán',35998,36001,3,1),(3024,'Fregenal de la Sierra',4748,4751,3,1),(3025,'Freginals',36860,36863,3,1),(3026,'Freila',15434,15437,3,1),(3027,'Fréscano',43982,43985,3,1),(3028,'Fresneda de Altarejos',13294,13299,3,2),(3029,'Fresneda de Cuéllar',34412,34415,3,1),(3030,'Fresneda de la Sierra',13300,13303,3,1),(3031,'Fresneda de la Sierra Tirón',7794,7797,3,1),(3032,'Fresnedilla',3726,3729,3,1),(3033,'Fresnedillas de la Oliva',26154,26157,3,1),(3034,'Fresnedoso',32894,32897,3,1),(3035,'Fresnedoso de Ibor',9482,9485,3,1),(3036,'Fresneña',7798,7801,3,1),(3037,'Fresnillo de las Dueñas',7802,7805,3,1),(3038,'Fresno Alhándiga',32898,32901,3,1),(3039,'Fresno de Cantespino',34416,34425,3,4),(3040,'Fresno de Caracena',36002,36005,3,1),(3041,'Fresno de la Fuente',34426,34429,3,1),(3042,'Fresno de la Polvorosa',42546,42549,3,1),(3043,'Fresno de la Ribera',42550,42553,3,1),(3044,'Fresno de la Vega',22296,22299,3,1),(3045,'Fresno de Río Tirón',7806,7809,3,1),(3046,'Fresno de Rodilla',7810,7813,3,1),(3047,'Fresno de Sayago',42554,42559,3,2),(3048,'Fresno de Torote',26158,26161,3,1),(3049,'Fresno del Río',30712,30715,3,1),(3050,'Fresno el Viejo',40932,40935,3,1),(3051,'Frías',7814,7817,3,1),(3052,'Frías de Albarracín',37868,37871,3,1),(3053,'Friera de Valverde',42560,42563,3,1),(3054,'Frigiliana',27188,27193,3,2),(3055,'Friol',25134,25151,3,8),(3056,'Frómista',30716,30719,3,1),(3057,'Fruiz',41892,41895,3,1),(3058,'Frumales',34430,34433,3,1),(3059,'Fuembellida',16480,16483,3,1),(3060,'Fuencaliente',12136,12139,3,1),(3061,'Fuencemillán',16484,16487,3,1),(3062,'Fuendejalón',43986,43989,3,1),(3063,'Fuendetodos',43990,43993,3,1),(3064,'Fuenferrada',37872,37875,3,1),(3065,'Fuengirola',27194,27197,3,1),(3066,'Fuenlabrada',26162,26179,3,8),(3067,'Fuenlabrada de los Montes',4752,4755,3,1),(3068,'Fuenllana',12140,12143,3,1),(3069,'Fuenmayor',21384,21387,3,1),(3070,'Fuensaldaña',40936,40939,3,1),(3071,'Fuensalida',38788,38793,3,2),(3072,'Fuensanta',574,577,3,1),(3073,'Fuensanta de Martos',19684,19689,3,2),(3074,'Fuente Álamo de Murcia',27730,27743,3,6),(3075,'Fuente de Cantos',4756,4759,3,1),(3076,'Fuente de Pedro Naharro',13304,13307,3,1),(3077,'Fuente de Piedra',27198,27201,3,1),(3078,'Fuente de Santa Cruz',34434,34437,3,1),(3079,'Fuente del Arco',4760,4763,3,1),(3080,'Fuente del Maestre',4764,4767,3,1),(3081,'Fuente el Fresno',12144,12149,3,2),(3082,'Fuente el Olmo de Fuentidueña',34438,34441,3,1),(3083,'Fuente el Olmo de Íscar',34442,34445,3,1),(3084,'Fuente el Saúz',3730,3733,3,1),(3085,'Fuente el Saz de Jarama',26180,26183,3,1),(3086,'Fuente el Sol',40940,40943,3,1),(3087,'Fuente Encalada',42564,42567,3,1),(3088,'Fuente Encarroz',39966,39969,3,1),(3089,'Fuente la Higuera',39970,39975,3,2),(3090,'Fuente la Lancha',12634,12637,3,1),(3091,'Fuente la Reina',11538,11541,3,1),(3092,'Fuente Obejuna',12638,12653,3,7),(3093,'Fuente Palmera',12654,12669,3,7),(3094,'Fuente Vaqueros',15438,15441,3,1),(3095,'Fuente-Álamo',578,581,3,1),(3096,'Fuente-Olmedo',40944,40947,3,1),(3097,'Fuente-Tójar',12670,12673,3,1),(3098,'Fuentealbilla',582,589,3,3),(3099,'Fuentearmegil',36006,36011,3,2),(3100,'Fuentebureba',7818,7821,3,1),(3101,'Fuentecambrón',36012,36015,3,1),(3102,'Fuentecantos',36016,36019,3,1),(3103,'Fuentecén',7822,7825,3,1),(3104,'Fuenteguinaldo',32902,32905,3,1),(3105,'Fuenteheridos',18012,18015,3,1),(3106,'Fuentelahiguera de Albatages',16488,16491,3,1),(3107,'Fuentelapeña',42568,42571,3,1),(3108,'Fuentelcésped',7826,7829,3,1),(3109,'Fuentelencina',16492,16495,3,1),(3110,'Fuentelespino de Haro',13308,13311,3,1),(3111,'Fuentelespino de Moya',13312,13315,3,1),(3112,'Fuenteliante',32906,32909,3,1),(3113,'Fuentelisendo',7830,7833,3,1),(3114,'Fuentelmonge',36020,36023,3,1),(3115,'Fuentelsaz',16496,16499,3,1),(3116,'Fuentelsaz de Soria',36024,36029,3,2),(3117,'Fuentelviejo',16500,16503,3,1),(3118,'Fuentemolinos',7834,7837,3,1),(3119,'Fuentenava de Jábaga',13316,13323,3,3),(3120,'Fuentenebro',7838,7841,3,1),(3121,'Fuentenovilla',16504,16509,3,2),(3122,'Fuentepelayo',34446,34449,3,1),(3123,'Fuentepiñel',34450,34453,3,1),(3124,'Fuentepinilla',36030,36035,3,2),(3125,'Fuenterrebollo',34454,34457,3,1),(3126,'Fuenterroble de Salvatierra',32910,32913,3,1),(3127,'Fuenterrobles',39976,39979,3,1),(3128,'Fuentes',13324,13327,3,1),(3129,'Fuentes Calientes',37876,37879,3,1),(3130,'Fuentes Claras',37880,37883,3,1),(3131,'Fuentes de Andalucía',35296,35301,3,2),(3132,'Fuentes de Año',3734,3737,3,1),(3133,'Fuentes de Ayódar',11542,11545,3,1),(3134,'Fuentes de Béjar',32914,32917,3,1),(3135,'Fuentes de Carbajal',22300,22303,3,1),(3136,'Fuentes de Ebro',43994,43999,3,2),(3137,'Fuentes de Jiloca',44000,44003,3,1),(3138,'Fuentes de León',4768,4771,3,1),(3139,'Fuentes de Magaña',36036,36039,3,1),(3140,'Fuentes de Nava',30720,30723,3,1),(3141,'Fuentes de Oñoro',32918,32923,3,2),(3142,'Fuentes de Ropel',42572,42575,3,1),(3143,'Fuentes de Rubielos',37884,37887,3,1),(3144,'Fuentes de Valdepero',30724,30727,3,1),(3145,'Fuentesaúco',42576,42579,3,1),(3146,'Fuentesaúco de Fuentidueña',34458,34461,3,1),(3147,'Fuentesecas',42580,42583,3,1),(3148,'Fuentesoto',34462,34465,3,1),(3149,'Fuentespalda',37888,37891,3,1),(3150,'Fuentespina',7842,7845,3,1),(3151,'Fuentespreadas',42584,42587,3,1),(3152,'Fuentestrún',36040,36043,3,1),(3153,'Fuentidueña',34466,34469,3,1),(3154,'Fuentidueña de Tajo',26184,26187,3,1),(3155,'Fuerte del Rey',19690,19693,3,1),(3156,'Fuertescusa',13328,13331,3,1),(3157,'Fulleda',23884,23887,3,1),(3158,'Funes',28628,28631,3,1),(3159,'Fustiñana',28632,28635,3,1),(3160,'Gabaldón',13332,13335,3,1),(3161,'Gabiria',17572,17575,3,1),(3162,'Gádor',1944,1947,3,1),(3163,'Gaià',6280,6287,3,3),(3164,'Gaianes',1322,1325,3,1),(3165,'Gaibiel',11546,11549,3,1),(3166,'Gaintza',17576,17579,3,1),(3167,'Gajanejos',16510,16513,3,1),(3168,'Gajates',32924,32931,3,3),(3169,'Galapagar',26188,26201,3,6),(3170,'Galápagos',16514,16517,3,1),(3171,'Galar',28636,28639,3,1),(3172,'Galaroza',18016,18019,3,1),(3173,'Galbarros',7846,7849,3,1),(3174,'Galbárruli',21388,21391,3,1),(3175,'Galdakao',41896,41899,3,1),(3176,'Galdames',41900,41903,3,1),(3177,'Galende',42588,42601,3,6),(3178,'Galera',15442,15447,3,2),(3179,'Galilea',21392,21395,3,1),(3180,'Galindo y Perahuy',32932,32937,3,2),(3181,'Galinduste',32938,32943,3,2),(3182,'Galisancho',32944,32947,3,1),(3183,'Galisteo',9486,9491,3,2),(3184,'Gallegos',34470,34473,3,1),(3185,'Gallegos de Altamiros',3738,3741,3,1),(3186,'Gallegos de Argañán',32948,32951,3,1),(3187,'Gallegos de Hornija',40948,40951,3,1),(3188,'Gallegos de Sobrinos',3742,3745,3,1),(3189,'Gallegos de Solmirón',32952,32955,3,1),(3190,'Gallegos del Pan',42602,42605,3,1),(3191,'Gallegos del Río',42606,42613,3,3),(3192,'Gallifa',6288,6291,3,1),(3193,'Gallinero de Cameros',21396,21399,3,1),(3194,'Gallipienzo/Galipentzu',28640,28643,3,1),(3195,'Gallocanta',44004,44007,3,1),(3196,'Gallués/Galoze',28644,28647,3,1),(3197,'Gallur',44008,44011,3,1),(3198,'Galve',37892,37895,3,1),(3199,'Galve de Sorbe',16518,16521,3,1),(3200,'Gálvez',38794,38797,3,1),(3201,'Gamiz-Fika',41904,41907,3,1),(3202,'Gamones',42614,42617,3,1),(3203,'Gandesa',36864,36867,3,1),(3204,'Gandia',39980,39993,3,6),(3205,'Garaballa',13336,13339,3,1),(3206,'Garai',41908,41911,3,1),(3207,'Garaioa',28648,28651,3,1),(3208,'Garbayuela',4772,4775,3,1),(3209,'Garcia',36868,36871,3,1),(3210,'Garciaz',9492,9495,3,1),(3211,'Garcibuey',32956,32959,3,1),(3212,'Garcihernández',32960,32965,3,2),(3213,'Garcillán',34474,34477,3,1),(3214,'Garciotum',38798,38801,3,1),(3215,'Garcirrey',32966,32971,3,2),(3216,'Garde',28652,28655,3,1),(3217,'Gargallo',37896,37899,3,1),(3218,'Garganta de los Montes',26202,26207,3,2),(3219,'Garganta del Villar',3746,3749,3,1),(3220,'Garganta la Olla',9496,9499,3,1),(3221,'Gargantilla',9500,9503,3,1),(3222,'Gargantilla del Lozoya y Pinilla de Buitrago',26208,26211,3,1),(3223,'Gargüera',9504,9507,3,1),(3224,'Garínoain',28656,28659,3,1),(3225,'Garlitos',4776,4779,3,1),(3226,'Garrafe de Torío',22304,22311,3,3),(3227,'Garralda',28660,28663,3,1),(3228,'Garray',36044,36049,3,2),(3229,'Garrigàs',14304,14307,3,1),(3230,'Garrigoles',14308,14311,3,1),(3231,'Garriguella',14312,14315,3,1),(3232,'Garrovillas de Alconétar',9508,9511,3,1),(3233,'Garrucha',1948,1951,3,1),(3234,'Garvín',9512,9515,3,1),(3235,'Gascones',26212,26215,3,1),(3236,'Gascueña',13340,13343,3,1),(3237,'Gascueña de Bornova',16522,16525,3,1),(3238,'Gata',9516,9521,3,2),(3239,'Gata de Gorgos',1326,1329,3,1),(3240,'Gatika',41912,41915,3,1),(3241,'Gatón de Campos',40952,40955,3,1),(3242,'Gátova',39994,39997,3,1),(3243,'Gaucín',27202,27205,3,1),(3244,'Gautegiz Arteaga',41916,41919,3,1),(3245,'Gavà',6292,6295,3,1),(3246,'Gavarda',39998,40001,3,1),(3247,'Gavet de la Conca',23888,23895,3,3),(3248,'Gavilanes',3750,3755,3,2),(3249,'Gaztelu',17580,17583,3,1),(3250,'Gea de Albarracín',37900,37903,3,1),(3251,'Gejuelo del Barro',32972,32975,3,1),(3252,'Geldo',11550,11555,3,2),(3253,'Gelida',6296,6299,3,1),(3254,'Gelsa',44012,44015,3,1),(3255,'Gelves',35302,35307,3,2),(3256,'Gema',42618,42621,3,1),(3257,'Gemuño',3756,3759,3,1),(3258,'Genalguacil',27206,27209,3,1),(3259,'Génave',19694,19697,3,1),(3260,'Genevilla',28664,28667,3,1),(3261,'Genovés',40002,40005,3,1),(3262,'Ger',14316,14319,3,1),(3263,'Gerena',35308,35311,3,1),(3264,'Gérgal',1952,1961,3,4),(3265,'Geria',40956,40959,3,1),(3266,'Gerindote',38802,38805,3,1),(3267,'Gernika-Lumo',41920,41923,3,1),(3268,'Gestalgar',40006,40009,3,1),(3269,'Getafe',26216,26233,3,8),(3270,'Getaria',17584,17587,3,1),(3271,'Getxo',41924,41935,3,5),(3272,'Gibraleón',18020,18023,3,1),(3273,'Gijón',2648,2701,3,26),(3274,'Gil García',3760,3763,3,1),(3275,'Gilbuena',3764,3767,3,1),(3276,'Gilena',35312,35315,3,1),(3277,'Gilet',40010,40013,3,1),(3278,'Gimenells i el Pla de la Font',23896,23901,3,2),(3279,'Gimialcón',3768,3771,3,1),(3280,'Gimileo',21400,21403,3,1),(3281,'Gines',35316,35319,3,1),(3282,'Ginestar',36872,36875,3,1),(3283,'Girona',14320,14337,3,8),(3284,'Gironella',6300,6303,3,1),(3285,'Gisclareny',6304,6307,3,1),(3286,'Gistaín',18784,18787,3,1),(3287,'Gizaburuaga',41936,41939,3,1),(3288,'Gobernador',15448,15453,3,2),(3289,'Godall',36876,36879,3,1),(3290,'Godella',40014,40017,3,1),(3291,'Godelleta',40018,40021,3,1),(3292,'Godojos',44016,44019,3,1),(3293,'Goizueta',28668,28671,3,1),(3294,'Gójar',15454,15457,3,1),(3295,'Golmayo',36050,36061,3,5),(3296,'Golmés',23902,23905,3,1),(3297,'Golosalvo',590,593,3,1),(3298,'Golpejas',32976,32979,3,1),(3299,'Gómara',36062,36069,3,3),(3300,'Gombrèn',14338,14341,3,1),(3301,'Gomecello',32980,32983,3,1),(3302,'Gomesende',29784,29787,3,1),(3303,'Gomezserracín',34478,34481,3,1),(3304,'Gondomar',31690,31709,3,9),(3305,'Goñi',28672,28675,3,1),(3306,'Gor',15458,15461,3,1),(3307,'Gorafe',15462,15465,3,1),(3308,'Gordaliza del Pino',22312,22315,3,1),(3309,'Gordexola',41940,41945,3,2),(3310,'Gordoncillo',22316,22319,3,1),(3311,'Gorga',1330,1333,3,1),(3312,'Gorliz',41946,41951,3,2),(3313,'Gormaz',36070,36073,3,1),(3314,'Gósol',23906,23909,3,1),(3315,'Gotarrendura',3772,3775,3,1),(3316,'Gotor',44020,44023,3,1),(3317,'Gozón',2702,2715,3,6),(3318,'Gradefes',22320,22333,3,6),(3319,'Grado',2716,2729,3,6),(3320,'Graja de Campalbo',13344,13347,3,1),(3321,'Graja de Iniesta',13348,13351,3,1),(3322,'Grajal de Campos',22334,22337,3,1),(3323,'Grajera',34482,34485,3,1),(3324,'Granada',15466,15505,3,19),(3325,'Granátula de Calatrava',12150,12153,3,1),(3326,'Grandas de Salime',2730,2733,3,1),(3327,'Grandes y San Martín',3776,3779,3,1),(3328,'Grañén',18788,18799,3,5),(3329,'Granera',6308,6311,3,1),(3330,'Granja de Moreruela',42622,42627,3,2),(3331,'Granja de Rocamora',1334,1337,3,1),(3332,'Granja de Torrehermosa',4780,4783,3,1),(3333,'Granollers',6312,6321,3,4),(3334,'Grañón',21404,21407,3,1),(3335,'Granucillo',42628,42633,3,2),(3336,'Granyanella',23910,23913,3,1),(3337,'Granyena de les Garrigues',23914,23917,3,1),(3338,'Granyena de Segarra',23918,23921,3,1),(3339,'Gratallops',36880,36883,3,1),(3340,'Graus',18800,18819,3,9),(3341,'Grávalos',21408,21411,3,1),(3342,'Grazalema',10322,10327,3,2),(3343,'Griegos',37904,37907,3,1),(3344,'Grijalba',7850,7853,3,1),(3345,'Grijota',30728,30731,3,1),(3346,'Griñón',26234,26237,3,1),(3347,'Grisaleña',7854,7857,3,1),(3348,'Grisel',44024,44027,3,1),(3349,'Grisén',44028,44031,3,1),(3350,'Guadahortuna',15506,15509,3,1),(3351,'Guadalajara',16526,16549,3,11),(3352,'Guadalaviar',37908,37911,3,1),(3353,'Guadalcanal',35320,35323,3,1),(3354,'Guadalcázar',12674,12677,3,1),(3355,'Guadalix de la Sierra',26238,26241,3,1),(3356,'Guadalmez',12154,12159,3,2),(3357,'Guadalupe',9522,9525,3,1),(3358,'Guadamur',38806,38809,3,1),(3359,'Guadarrama',26242,26249,3,3),(3360,'Guadasequies',40022,40025,3,1),(3361,'Guadasuar',40026,40031,3,2),(3362,'Guadiana del Caudillo',4784,4787,3,1),(3363,'Guadix',15510,15521,3,5),(3364,'Guadramiro',32984,32987,3,1),(3365,'Gualba',6322,6325,3,1),(3366,'Gualchos',15522,15527,3,2),(3367,'Gualta',14342,14345,3,1),(3368,'Guardamar de la Safor',40032,40035,3,1),(3369,'Guardamar del Segura',1338,1341,3,1),(3370,'Guardiola de Berguedà',6326,6329,3,1),(3371,'Guardo',30732,30741,3,4),(3372,'Guareña',4788,4793,3,2),(3373,'Guaro',27210,27213,3,1),(3374,'Guarrate',42634,42637,3,1),(3375,'Guarromán',19698,19701,3,1),(3376,'Guaza de Campos',30742,30745,3,1),(3377,'Gúdar',37912,37915,3,1),(3378,'Güéjar Sierra',15528,15533,3,2),(3379,'Güeñes',41952,41959,3,3),(3380,'Güesa/Gorza',28676,28679,3,1),(3381,'Guesálaz/Gesalatz',28680,28687,3,3),(3382,'Güevéjar',15534,15537,3,1),(3383,'Guijo de Ávila',32988,32991,3,1),(3384,'Guijo de Coria',9526,9529,3,1),(3385,'Guijo de Galisteo',9530,9537,3,3),(3386,'Guijo de Granadilla',9538,9545,3,3),(3387,'Guijo de Santa Bárbara',9546,9549,3,1),(3388,'Guijuelo',32992,33001,3,4),(3389,'Guillena',35324,35331,3,3),(3390,'Guils de Cerdanya',14346,14349,3,1),(3391,'Guimerà',23922,23925,3,1),(3392,'Guirguillano',28688,28693,3,2),(3393,'Guisando',3780,3783,3,1),(3394,'Guissona',23926,23929,3,1),(3395,'Guitiriz',25152,25175,3,11),(3396,'Guixers',23930,23933,3,1),(3397,'Gumiel de Izán',7858,7861,3,1),(3398,'Gumiel de Mercado',7862,7865,3,1),(3399,'Guntín',25176,25197,3,10),(3400,'Gurb',6330,6333,3,1),(3401,'Guriezo',10740,10753,3,6),(3402,'Gurrea de Gállego',18820,18825,3,2),(3403,'Gusendos de los Oteros',22338,22341,3,1),(3404,'Gutierre-Muñoz',3784,3787,3,1),(3405,'Hacinas',7866,7869,3,1),(3406,'Harana/Valle de Arana',150,153,3,1),(3407,'Haro',21412,21417,3,2),(3408,'Haza',7870,7875,3,2),(3409,'Hazas de Cesto',10754,10761,3,3),(3410,'Helechosa de los Montes',4794,4797,3,1),(3411,'Hellín',594,607,3,6),(3412,'Henarejos',13352,13355,3,1),(3413,'Henche',16550,16553,3,1),(3414,'Heras de Ayuso',16554,16557,3,1),(3415,'Herbés',11556,11559,3,1),(3416,'Herce',21418,21421,3,1),(3417,'Herencia',12160,12163,3,1),(3418,'Herguijuela',9550,9555,3,2),(3419,'Herguijuela de Ciudad Rodrigo',33002,33007,3,2),(3420,'Herguijuela de la Sierra',33008,33013,3,2),(3421,'Herguijuela del Campo',33014,33017,3,1),(3422,'Hermandad de Campoo de Suso',10762,10771,3,4),(3423,'Hérmedes de Cerrato',30746,30749,3,1),(3424,'Hermisende',42638,42643,3,2),(3425,'Hernán-Pérez',9556,9561,3,2),(3426,'Hernani',17588,17593,3,2),(3427,'Hernansancho',3788,3791,3,1),(3428,'Hernialde',17594,17597,3,1),(3429,'Herradón de Pinares',3792,3799,3,3),(3430,'Herramélluri',21422,21425,3,1),(3431,'Herrera',35332,35335,3,1),(3432,'Herrera de Alcántara',9562,9565,3,1),(3433,'Herrera de los Navarros',44032,44035,3,1),(3434,'Herrera de Pisuerga',30750,30757,3,3),(3435,'Herrera de Soria',36074,36077,3,1),(3436,'Herrera de Valdecañas',30758,30761,3,1),(3437,'Herrera del Duque',4798,4803,3,2),(3438,'Herrería',16558,16561,3,1),(3439,'Herrerías',10772,10781,3,4),(3440,'Herreros de Suso',3800,3803,3,1),(3441,'Herreruela',9566,9569,3,1),(3442,'Herreruela de Oropesa',38810,38813,3,1),(3443,'Herrín de Campos',40960,40963,3,1),(3444,'Hervás',9570,9573,3,1),(3445,'Hervías',21426,21429,3,1),(3446,'Hiendelaencina',16562,16565,3,1),(3447,'Higuera',9574,9577,3,1),(3448,'Higuera de Calatrava',19702,19705,3,1),(3449,'Higuera de la Serena',4804,4807,3,1),(3450,'Higuera de la Sierra',18024,18027,3,1),(3451,'Higuera de las Dueñas',3804,3807,3,1),(3452,'Higuera de Llerena',4808,4811,3,1),(3453,'Higuera de Vargas',4812,4815,3,1),(3454,'Higuera la Real',4816,4819,3,1),(3455,'Higueras',11560,11563,3,1),(3456,'Higueruela',608,613,3,2),(3457,'Higueruelas',40036,40039,3,1),(3458,'Híjar',37916,37919,3,1),(3459,'Hijes',16566,16569,3,1),(3460,'Hinojal',9578,9581,3,1),(3461,'Hinojales',18028,18031,3,1),(3462,'Hinojares',19706,19709,3,1),(3463,'Hinojos',18032,18035,3,1),(3464,'Hinojosa de Duero',33018,33021,3,1),(3465,'Hinojosa de Jarque',37920,37923,3,1),(3466,'Hinojosa de San Vicente',38814,38817,3,1),(3467,'Hinojosa del Campo',36078,36081,3,1),(3468,'Hinojosa del Duque',12678,12681,3,1),(3469,'Hinojosa del Valle',4820,4823,3,1),(3470,'Hinojosas de Calatrava',12164,12167,3,1),(3471,'Hiriberri/Villanueva de Aezkoa',28694,28697,3,1),(3472,'Hita',16570,16573,3,1),(3473,'Holguera',9582,9587,3,2),(3474,'Hombrados',16574,16577,3,1),(3475,'Hondarribia',17598,17601,3,1),(3476,'Hondón de los Frailes',1342,1345,3,1),(3477,'Honrubia',13356,13359,3,1),(3478,'Honrubia de la Cuesta',34486,34489,3,1),(3479,'Hontalbilla',34490,34493,3,1),(3480,'Hontanar',38818,38821,3,1),(3481,'Hontanares de Eresma',34494,34497,3,1),(3482,'Hontanas',7876,7879,3,1),(3483,'Hontanaya',13360,13363,3,1),(3484,'Hontangas',7880,7883,3,1),(3485,'Hontecillas',13364,13367,3,1),(3486,'Hontoba',16578,16581,3,1),(3487,'Hontoria de Cerrato',30762,30765,3,1),(3488,'Hontoria de la Cantera',7884,7887,3,1),(3489,'Hontoria de Valdearados',7888,7891,3,1),(3490,'Hontoria del Pinar',7892,7897,3,2),(3491,'Horcajo de la Sierra-Aoslos',26250,26253,3,1),(3492,'Horcajo de las Torres',3808,3811,3,1),(3493,'Horcajo de los Montes',12168,12171,3,1),(3494,'Horcajo de Montemayor',33022,33025,3,1),(3495,'Horcajo de Santiago',13368,13371,3,1),(3496,'Horcajo Medianero',33026,33033,3,3),(3497,'Horcajuelo de la Sierra',26254,26257,3,1),(3498,'Horche',16582,16589,3,3),(3499,'Hormigos',38822,38825,3,1),(3500,'Hormilla',21430,21433,3,1),(3501,'Hormilleja',21434,21437,3,1),(3502,'Hornachos',4824,4827,3,1),(3503,'Hornachuelos',12682,12693,3,5),(3504,'Hornillos de Cameros',21438,21441,3,1),(3505,'Hornillos de Cerrato',30766,30769,3,1),(3506,'Hornillos de Eresma',40964,40967,3,1),(3507,'Hornillos del Camino',7898,7901,3,1),(3508,'Hornos',19710,19719,3,4),(3509,'Hornos de Moncalvillo',21442,21445,3,1),(3510,'Horta de Sant Joan',36884,36887,3,1),(3511,'Hortezuela de Océn',16590,16593,3,1),(3512,'Hortigüela',7902,7905,3,1),(3513,'Hospital de Órbigo',22342,22345,3,1),(3514,'Hostalric',14350,14353,3,1),(3515,'Hoya-Gonzalo',614,617,3,1),(3516,'Hoyales de Roa',7906,7909,3,1),(3517,'Hoyo de Manzanares',26258,26263,3,2),(3518,'Hoyocasero',3812,3815,3,1),(3519,'Hoyorredondo',3816,3819,3,1),(3520,'Hoyos',9588,9591,3,1),(3521,'Hoyos de Miguel Muñoz',3820,3823,3,1),(3522,'Hoyos del Collado',3824,3827,3,1),(3523,'Hoyos del Espino',3828,3833,3,2),(3524,'Hoz de Jaca',18826,18829,3,1),(3525,'Hoz y Costean',18830,18835,3,2),(3526,'Huarte/Uharte',28698,28701,3,1),(3527,'Huecas',38826,38829,3,1),(3528,'Huécija',1962,1965,3,1),(3529,'Huélaga',9592,9595,3,1),(3530,'Huélago',15538,15541,3,1),(3531,'Huélamo',13372,13375,3,1),(3532,'Huelma',19720,19725,3,2),(3533,'Huelva',18036,18053,3,8),(3534,'Huelves',13376,13379,3,1),(3535,'Huéneja',15542,15545,3,1),(3536,'Huércal de Almería',1966,1969,3,1),(3537,'Huércal-Overa',1970,1987,3,8),(3538,'Huércanos',21446,21449,3,1),(3539,'Huérguina',13380,13383,3,1),(3540,'Huérmeces',7910,7915,3,2),(3541,'Huérmeces del Cerro',16594,16597,3,1),(3542,'Huerta',33034,33037,3,1),(3543,'Huerta de Arriba',7916,7919,3,1),(3544,'Huerta de la Obispalía',13384,13387,3,1),(3545,'Huerta de Rey',7920,7925,3,2),(3546,'Huerta de Valdecarábanos',38830,38833,3,1),(3547,'Huerta del Marquesado',13388,13391,3,1),(3548,'Huertahernando',16598,16601,3,1),(3549,'Huerto',18836,18841,3,2),(3550,'Huesa',19726,19729,3,1),(3551,'Huesa del Común',37924,37929,3,2),(3552,'Huesca',18842,18875,3,16),(3553,'Huéscar',15546,15549,3,1),(3554,'Huete',13392,13407,3,7),(3555,'Huétor de Santillán',15550,15555,3,2),(3556,'Huétor Tájar',15556,15559,3,1),(3557,'Huétor Vega',15560,15563,3,1),(3558,'Hueva',16602,16605,3,1),(3559,'Huévar del Aljarafe',35336,35339,3,1),(3560,'Humada',7926,7931,3,2),(3561,'Humanes',16606,16613,3,3),(3562,'Humanes de Madrid',26264,26267,3,1),(3563,'Humilladero',27214,27219,3,2),(3564,'Hurones',7932,7935,3,1),(3565,'Hurtumpascual',3834,3837,3,1),(3566,'Husillos',30770,30773,3,1),(3567,'Ibahernando',9596,9599,3,1),(3568,'Ibargoiti',28702,28707,3,2),(3569,'Ibarra',17602,17605,3,1),(3570,'Ibarrangelu',41960,41963,3,1),(3571,'Ibdes',44036,44039,3,1),(3572,'Ibeas de Juarros',7936,7943,3,3),(3573,'Ibi',1346,1349,3,1),(3574,'Ibias',2734,2741,3,3),(3575,'Ibieca',18876,18879,3,1),(3576,'Ibrillos',7944,7947,3,1),(3577,'Ibros',19730,19735,3,2),(3578,'Idiazabal',17606,17609,3,1),(3579,'Igantzi',28708,28711,3,1),(3580,'Igea',21450,21453,3,1),(3581,'Iglesiarrubia',7948,7953,3,2),(3582,'Iglesias',7954,7957,3,1),(3583,'Igorre',41964,41967,3,1),(3584,'Igriés',18880,18883,3,1),(3585,'Igualada',6334,6337,3,1),(3586,'Igualeja',27220,27223,3,1),(3587,'Igüeña',22346,22361,3,7),(3588,'Igúzquiza',28712,28717,3,2),(3589,'Ikaztegieta',17610,17613,3,1),(3590,'Ilche',18884,18887,3,1),(3591,'Illán de Vacas',38834,38837,3,1),(3592,'Illana',16614,16617,3,1),(3593,'Illano',2742,2749,3,3),(3594,'Íllar',1988,1991,3,1),(3595,'Illas',2750,2757,3,3),(3596,'Illescas',38838,38841,3,1),(3597,'Íllora',15564,15579,3,7),(3598,'Illueca',44040,44043,3,1),(3599,'Imotz',28718,28723,3,2),(3600,'Inca',5474,5477,3,1),(3601,'Iniesta',13408,13415,3,3),(3602,'Iniéstola',16618,16621,3,1),(3603,'Instinción',1992,1995,3,1),(3604,'Irañeta',28724,28727,3,1),(3605,'Irixoa',20512,20515,3,1),(3606,'Iruelos',33038,33041,3,1),(3607,'Irueste',16622,16625,3,1),(3608,'Irun',17614,17625,3,5),(3609,'Iruña Oka/Iruña de Oca',154,163,3,4),(3610,'Irura',17626,17629,3,1),(3611,'Iruraiz-Gauna',164,171,3,3),(3612,'Irurtzun',28728,28731,3,1),(3613,'Isaba/Izaba',28732,28735,3,1),(3614,'Isábena',18888,18895,3,3),(3615,'Isar',7958,7965,3,3),(3616,'Íscar',40968,40971,3,1),(3617,'Isla Cristina',18054,18065,3,5),(3618,'Isla Mayor',35340,35345,3,2),(3619,'Isona i Conca Dellà',23934,23949,3,7),(3620,'Isòvol',14354,14357,3,1),(3621,'Ispaster',41968,41971,3,1),(3622,'Istán',27224,27227,3,1),(3623,'Isuerre',44044,44047,3,1),(3624,'Itero de la Vega',30774,30777,3,1),(3625,'Itero del Castillo',7966,7969,3,1),(3626,'Ítrabo',15580,15583,3,1),(3627,'Itsasondo',17630,17633,3,1),(3628,'Ituero de Azaba',33042,33045,3,1),(3629,'Ituero y Lama',34498,34501,3,1),(3630,'Ituren',28736,28739,3,1),(3631,'Iturmendi',28740,28743,3,1),(3632,'Iurreta',41972,41975,3,1),(3633,'Ivars d\'Urgell',23950,23955,3,2),(3634,'Ivars de Noguera',23956,23959,3,1),(3635,'Ivorra',23960,23963,3,1),(3636,'Iza/Itza',28744,28755,3,5),(3637,'Izagaondoa',28756,28759,3,1),(3638,'Izagre',22362,22365,3,1),(3639,'Izalzu/Itzaltzu',28760,28763,3,1),(3640,'Iznájar',12694,12703,3,4),(3641,'Iznalloz',15584,15589,3,2),(3642,'Iznate',27228,27231,3,1),(3643,'Iznatoraf',19736,19739,3,1),(3644,'Izurtza',41976,41979,3,1),(3645,'Jabaloyas',37930,37935,3,2),(3646,'Jabalquinto',19740,19745,3,2),(3647,'Jabugo',18066,18071,3,2),(3648,'Jaca',18896,18923,3,13),(3649,'Jacarilla',1350,1353,3,1),(3650,'Jadraque',16626,16631,3,2),(3651,'Jaén',19746,19771,3,12),(3652,'Jafre',14358,14361,3,1),(3653,'Jalance',40040,40043,3,1),(3654,'Jalón de Cameros',21454,21457,3,1),(3655,'Jambrina',42644,42647,3,1),(3656,'Jamilena',19772,19775,3,1),(3657,'Jaraba',44048,44051,3,1),(3658,'Jaraco',40044,40047,3,1),(3659,'Jarafuel',40048,40051,3,1),(3660,'Jaraicejo',9600,9605,3,2),(3661,'Jaraíz de la Vera',9606,9609,3,1),(3662,'Jaramillo de la Fuente',7970,7973,3,1),(3663,'Jaramillo Quemado',7974,7977,3,1),(3664,'Jarandilla de la Vera',9610,9613,3,1),(3665,'Jarilla',9614,9617,3,1),(3666,'Jarque',44052,44055,3,1),(3667,'Jarque de la Val',37936,37939,3,1),(3668,'Jasa',18924,18927,3,1),(3669,'Játar',15590,15591,3,0),(3670,'Jatiel',37940,37943,3,1),(3671,'Játiva',40052,40057,3,2),(3672,'Jaulín',44056,44059,3,1),(3673,'Jaurrieta',28764,28767,3,1),(3674,'Jávea/Xàbia',1354,1363,3,4),(3675,'Javier',28768,28773,3,2),(3676,'Jayena',15592,15595,3,1),(3677,'Jeresa',40058,40061,3,1),(3678,'Jerez de la Frontera',10328,10365,3,18),(3679,'Jerez de los Caballeros',4828,4833,3,2),(3680,'Jerez del Marquesado',15596,15599,3,1),(3681,'Jérica',11564,11567,3,1),(3682,'Jerte',9618,9621,3,1),(3683,'Jete',15600,15603,3,1),(3684,'Jijona/Xixona',1364,1367,3,1),(3685,'Jimena',19776,19779,3,1),(3686,'Jimena de la Frontera',10366,10375,3,4),(3687,'Jimera de Líbar',27232,27235,3,1),(3688,'Jirueque',16632,16635,3,1),(3689,'Joarilla de las Matas',22366,22369,3,1),(3690,'Jódar',19780,19783,3,1),(3691,'Jorba',6338,6343,3,2),(3692,'Jorcas',37944,37947,3,1),(3693,'Jorquera',618,623,3,2),(3694,'Josa',37948,37951,3,1),(3695,'Josa i Tuixén',23964,23969,3,2),(3696,'Juarros de Riomoros',34502,34505,3,1),(3697,'Juarros de Voltoya',34506,34509,3,1),(3698,'Jubrique',27236,27239,3,1),(3699,'Juià',14362,14365,3,1),(3700,'Jumilla',27744,27753,3,4),(3701,'Jun',15604,15607,3,1),(3702,'Junciana',3838,3841,3,1),(3703,'Juncosa',23970,23973,3,1),(3704,'Juneda',23974,23977,3,1),(3705,'Junta de Traslaloma',7978,7983,3,2),(3706,'Junta de Villalba de Losa',7984,7987,3,1),(3707,'Jurisdicción de Lara',7988,7993,3,2),(3708,'Jurisdicción de San Zadornil',7994,7997,3,1),(3709,'Juslapeña',28774,28781,3,3),(3710,'Justel',42648,42653,3,2),(3711,'Juviles',15608,15611,3,1),(3712,'Juzbado',33046,33049,3,1),(3713,'Júzcar',27240,27243,3,1),(3714,'Karrantza Harana/Valle de Carranza',41980,41985,3,2),(3715,'Kortezubi',41986,41989,3,1),(3716,'Kripan',172,175,3,1),(3717,'Kuartango',176,181,3,2),(3718,'L\'Albagés',23978,23981,3,1),(3719,'L\'Albi',23982,23985,3,1),(3720,'L\'Albiol',36888,36891,3,1),(3721,'l\'Alcora',11568,11575,3,3),(3722,'L\'Aldea',36892,36895,3,1),(3723,'L\'Aleixar',36896,36899,3,1),(3724,'l\'Alfàs del Pi',1368,1373,3,2),(3725,'l\'Alqueria d\'Asnar',1374,1377,3,1),(3726,'L\'Ametlla de Mar',36900,36903,3,1),(3727,'L\'Ametlla del Vallès',6344,6347,3,1),(3728,'L\'Ampolla',36904,36907,3,1),(3729,'L\'Arboç',36908,36911,3,1),(3730,'L\'Argentera',36912,36915,3,1),(3731,'L\'Armentera',14366,14369,3,1),(3732,'l\'Atzúbia',1378,1381,3,1),(3733,'L\'Escala',14370,14373,3,1),(3734,'L\'Espluga Calba',23986,23989,3,1),(3735,'L\'Espluga de Francolí',36916,36919,3,1),(3736,'L\'Espunyola',6348,6351,3,1),(3737,'L\'Esquirol',6352,6357,3,2),(3738,'L\'Estany',6358,6363,3,2),(3739,'L\'Hospitalet de Llobregat',6364,6381,3,8),(3740,'La Acebeda',26268,26271,3,1),(3741,'La Adrada',3842,3845,3,1),(3742,'La Alameda de Gardón',33050,33053,3,1),(3743,'La Alamedilla',33054,33057,3,1),(3744,'La Alberca',33058,33061,3,1),(3745,'La Alberca de Záncara',13416,13419,3,1),(3746,'La Alberguería de Argañán',33062,33065,3,1),(3747,'La Albuera',4834,4837,3,1),(3748,'La Alcudia',40062,40065,3,1),(3749,'La Aldea del Obispo',9622,9625,3,1),(3750,'La Aldehuela',3846,3849,3,1),(3751,'La Algaba',35346,35351,3,2),(3752,'La Almarcha',13420,13423,3,1),(3753,'La Almolda',44060,44063,3,1),(3754,'La Almunia de Doña Godina',44064,44067,3,1),(3755,'La Antigua',22370,22373,3,1),(3756,'La Atalaya',33066,33069,3,1),(3757,'La Bañeza',22374,22381,3,3),(3758,'La Baronia de Rialb',23990,23993,3,1),(3759,'La Bastida',33070,33073,3,1),(3760,'La Bisbal d\'Empordà',14374,14377,3,1),(3761,'La Bisbal de Falset',36920,36923,3,1),(3762,'La Bisbal del Penedès',36924,36927,3,1),(3763,'La Bodera',16636,16639,3,1),(3764,'La Bouza',33074,33077,3,1),(3765,'La Bóveda de Toro',42654,42657,3,1),(3766,'La Cabeza de Béjar',33078,33081,3,1),(3767,'La Cabrera',26272,26275,3,1),(3768,'La Calahorra',15612,15615,3,1),(3769,'La Calzada de Béjar',33082,33085,3,1),(3770,'La Campana',35352,35355,3,1),(3771,'La Cañada de Verich',37952,37955,3,1),(3772,'La Canonja',36928,36933,3,2),(3773,'La Carlota',12704,12713,3,4),(3774,'La Carolina',19784,19791,3,3),(3775,'La Carrera',3850,3853,3,1),(3776,'La Cellera de Ter',14378,14383,3,2),(3777,'La Cerollera',37956,37959,3,1),(3778,'La Cierva',13424,13427,3,1),(3779,'La Codoñera',37960,37963,3,1),(3780,'La Codosera',4838,4841,3,1),(3781,'La Colilla',3854,3857,3,1),(3782,'La Coma i la Pedra',23994,23997,3,1),(3783,'La Coronada',4842,4845,3,1),(3784,'La Cuba',37964,37967,3,1),(3785,'La Cueva de Roa',7998,8001,3,1),(3786,'La Cumbre',9626,9629,3,1),(3787,'La Eliana',40066,40069,3,1),(3788,'La Encina',33086,33089,3,1),(3789,'La Ercina',22382,22391,3,4),(3790,'La Estrella',38842,38845,3,1),(3791,'La Fatarella',36934,36937,3,1),(3792,'La Febró',36938,36941,3,1),(3793,'La Figuera',36942,36945,3,1),(3794,'La Floresta',23998,24001,3,1),(3795,'La Fregeneda',33090,33093,3,1),(3796,'La Fresneda',37968,37971,3,1),(3797,'La Frontera',13428,13431,3,1),(3798,'La Fuente de San Esteban',33094,33105,3,5),(3799,'La Fueva',18928,18939,3,5),(3800,'La Fuliola',24002,24005,3,1),(3801,'La Galera',36946,36949,3,1),(3802,'La Gallega',8002,8005,3,1),(3803,'La Garganta',9630,9633,3,1),(3804,'La Garriga',6382,6385,3,1),(3805,'La Garrovilla',4846,4849,3,1),(3806,'La Ginebrosa',37972,37975,3,1),(3807,'La Gineta',624,627,3,1),(3808,'La Granada',6386,6389,3,1),(3809,'La Granada de Río-Tinto',18072,18075,3,1),(3810,'La Granadella',24006,24009,3,1),(3811,'La Granja',9634,9637,3,1),(3812,'La Granja d\'Escarp',24010,24013,3,1),(3813,'La Granja de la Costera',40070,40073,3,1),(3814,'La Granjuela',12714,12717,3,1),(3815,'La Guardia',38846,38849,3,1),(3816,'La Guardia de Jaén',19792,19795,3,1),(3817,'La Guingueta d\'Àneu',24014,24023,3,4),(3818,'La Haba',4850,4855,3,2),(3819,'La Herrera',628,631,3,1),(3820,'La Hija de Dios',3858,3861,3,1),(3821,'La Hiniesta',42658,42661,3,1),(3822,'La Hinojosa',13432,13435,3,1),(3823,'La Hiruela',26276,26279,3,1),(3824,'La Horcajada',3862,3867,3,2),(3825,'La Horra',8006,8009,3,1),(3826,'La Hoya',33106,33109,3,1),(3827,'La Hoz de la Vieja',37976,37979,3,1),(3828,'La Huerce',16640,16643,3,1),(3829,'La Iglesuela',38850,38853,3,1),(3830,'La Iglesuela del Cid',37980,37983,3,1),(3831,'La Iruela',19796,19801,3,2),(3832,'la Jana',11576,11579,3,1),(3833,'La Jonquera',14384,14389,3,2),(3834,'La Joyosa',44068,44071,3,1),(3835,'La Lapa',4856,4859,3,1),(3836,'La Lastrilla',34510,34513,3,1),(3837,'La Línea de la Concepción',10376,10379,3,1),(3838,'La Llacuna',6390,6393,3,1),(3839,'La Llagosta',6394,6397,3,1),(3840,'la Llosa',11580,11583,3,1),(3841,'la Llosa de Ranes',40074,40077,3,1),(3842,'La Losa',34514,34517,3,1),(3843,'La Losilla',36082,36085,3,1),(3844,'La Luisiana',35356,35361,3,2),(3845,'La Malahá',15616,15619,3,1),(3846,'La Masó',36950,36953,3,1),(3847,'La Mata',38854,38857,3,1),(3848,'La Mata de Ledesma',33110,33117,3,3),(3849,'La Mata de los Olmos',37984,37987,3,1),(3850,'la Mata de Morella',11584,11587,3,1),(3851,'La Matilla',34518,34521,3,1),(3852,'La Maya',33118,33121,3,1),(3853,'La Mierla',16644,16647,3,1),(3854,'La Miñosa',16648,16653,3,2),(3855,'La Mojonera',1996,2001,3,2),(3856,'La Molsosa',24024,24027,3,1),(3857,'La Morera',4860,4863,3,1),(3858,'La Morera de Montsant',36954,36959,3,2),(3859,'La Mudarra',40972,40975,3,1),(3860,'La Muela',44072,44077,3,2),(3861,'La Nava',18076,18079,3,1),(3862,'La Nava de Ricomalillo',38858,38861,3,1),(3863,'La Nava de Santiago',4864,4867,3,1),(3864,'La Nou de Berguedà',6398,6401,3,1),(3865,'La Nou de Gaià',36960,36963,3,1),(3866,'la Nucia',1382,1385,3,1),(3867,'La Olmeda de Jadraque',16654,16657,3,1),(3868,'La Orbada',33122,33127,3,2),(3869,'La Palma d\'Ebre',36964,36967,3,1),(3870,'La Palma de Cervelló',6402,6405,3,1),(3871,'La Palma del Condado',18080,18083,3,1),(3872,'La Parra',4868,4871,3,1),(3873,'La Parra de las Vegas',13436,13439,3,1),(3874,'La Parrilla',40976,40979,3,1),(3875,'La Pedraja de Portillo',40980,40983,3,1),(3876,'La Peña',33128,33131,3,1),(3877,'La Pera',14390,14393,3,1),(3878,'La Peraleja',13440,13443,3,1),(3879,'La Pernía',30778,30785,3,3),(3880,'La Pesga',9638,9641,3,1),(3881,'La Pesquera',13444,13447,3,1),(3882,'La Peza',15620,15625,3,2),(3883,'la Pobla de Benifassà',11588,11591,3,1),(3884,'La Pobla de Cérvoles',24028,24031,3,1),(3885,'La Pobla de Claramunt',6406,6409,3,1),(3886,'La Pobla de Lillet',6410,6413,3,1),(3887,'La Pobla de Mafumet',36968,36971,3,1),(3888,'La Pobla de Massaluca',36972,36975,3,1),(3889,'La Pobla de Montornès',36976,36979,3,1),(3890,'La Pobla de Segur',24032,24039,3,3),(3891,'la Pobla Tornesa',11592,11595,3,1),(3892,'La Pola de Gordón',22392,22409,3,8),(3893,'La Portella',24040,24043,3,1),(3894,'La Portellada',37988,37991,3,1),(3895,'La Póveda de Soria',36086,36089,3,1),(3896,'La Puebla de Alfindén',44078,44083,3,2),(3897,'La Puebla de Almoradiel',38862,38865,3,1),(3898,'La Puebla de Arganzón',8010,8013,3,1),(3899,'La Puebla de Castro',18940,18943,3,1),(3900,'La Puebla de Cazalla',35362,35365,3,1),(3901,'La Puebla de Híjar',37992,37997,3,2),(3902,'La Puebla de los Infantes',35366,35371,3,2),(3903,'La Puebla de Montalbán',38866,38871,3,2),(3904,'La Puebla de Valdavia',30786,30789,3,1),(3905,'La Puebla de Valverde',37998,38001,3,1),(3906,'La Puebla del Río',35372,35375,3,1),(3907,'La Pueblanueva',38872,38877,3,2),(3908,'La Puerta de Segura',19802,19807,3,2),(3909,'La Quar',6414,6417,3,1),(3910,'La Rambla',12718,12721,3,1),(3911,'La Recueja',632,635,3,1),(3912,'La Redonda',33132,33135,3,1),(3913,'La Revilla y Ahedo',8014,8017,3,1),(3914,'La Riba',36980,36983,3,1),(3915,'La Riba de Escalote',36090,36093,3,1),(3916,'La Riera de Gaià',36984,36987,3,1),(3917,'La Rinconada',35376,35381,3,2),(3918,'La Rinconada de la Sierra',33136,33139,3,1),(3919,'La Robla',22410,22417,3,3),(3920,'La Roca de la Sierra',4872,4875,3,1),(3921,'La Roca del Vallès',6418,6421,3,1),(3922,'La Roda',636,641,3,2),(3923,'La Roda de Andalucía',35382,35387,3,2),(3924,'la Romana',1386,1389,3,1),(3925,'La Sagrada',33140,33143,3,1),(3926,'la Salzadella',11596,11599,3,1),(3927,'La Seca',40984,40987,3,1),(3928,'La Secuita',36988,36993,3,2),(3929,'La Selva de Mar',14394,14397,3,1),(3930,'La Selva del Camp',36994,36997,3,1),(3931,'La Sénia',36998,37001,3,1),(3932,'La Sentiu de Sió',24044,24047,3,1),(3933,'La Sequera de Haza',8018,8021,3,1),(3934,'La Serna',30790,30793,3,1),(3935,'La Serna del Monte',26280,26283,3,1),(3936,'La Serrada',3868,3871,3,1),(3937,'la Serratella',11600,11603,3,1),(3938,'La Seu d\'Urgell',24048,24053,3,2),(3939,'La Sierpe',33144,33147,3,1),(3940,'La Solana',12172,12175,3,1),(3941,'La Sotonera',18944,18953,3,4),(3942,'La Taha',15626,15631,3,2),(3943,'La Tala',33148,33151,3,1),(3944,'La Tallada d\'Empordà',14398,14403,3,2),(3945,'La Toba',16658,16661,3,1),(3946,'La Torre',3872,3877,3,2),(3947,'la Torre d\'En Besora',11604,11607,3,1),(3948,'la Torre d\'en Doménec',11608,11611,3,1),(3949,'La Torre de Cabdella',24054,24065,3,5),(3950,'La Torre de Claramunt',6422,6425,3,1),(3951,'La Torre de Esteban Hambrán',38878,38881,3,1),(3952,'La Torre de Fontaubella',37002,37005,3,1),(3953,'La Torre de l\'Espanyol',37006,37009,3,1),(3954,'La Torre del Valle',42662,42665,3,1),(3955,'La Unión',27754,27763,3,4),(3956,'La Unión de Campos',40988,40991,3,1),(3957,'La Vajol',14404,14407,3,1),(3958,'la Vall d\'Alcalà',1390,1393,3,1),(3959,'la Vall d\'Ebo',1394,1397,3,1),(3960,'La Vall d\'en Bas',14408,14417,3,4),(3961,'la Vall d\'Uixó',11612,11615,3,1),(3962,'La Vall de Bianya',14418,14423,3,2),(3963,'La Vall de Boí',24066,24075,3,4),(3964,'la Vall de Laguar',1398,1401,3,1),(3965,'La Vansa i Fórnols',24076,24079,3,1),(3966,'La Vecilla',22418,22425,3,3),(3967,'La Vellés',33152,33155,3,1),(3968,'La Victoria',12722,12725,3,1),(3969,'La Vid de Bureba',8022,8025,3,1),(3970,'La Vid de Ojeda',30794,30797,3,1),(3971,'La Vid y Barrios',8026,8031,3,2),(3972,'La Vídola',33156,33159,3,1),(3973,'la Vilavella',11616,11619,3,1),(3974,'La Vilella Alta',37010,37013,3,1),(3975,'La Vilella Baixa',37014,37017,3,1),(3976,'La Villa de Don Fadrique',38882,38885,3,1),(3977,'La Vilueña',44084,44087,3,1),(3978,'La Yesa',40078,40081,3,1),(3979,'La Yunta',16662,16665,3,1),(3980,'La Zaida',44088,44091,3,1),(3981,'La Zarza',40992,40995,3,1),(3982,'La Zarza',4876,4877,3,0),(3983,'La Zarza de Pumareda',33160,33163,3,1),(3984,'La Zoma',38002,38005,3,1),(3985,'La Zubia',15632,15635,3,1),(3986,'Labajos',34522,34525,3,1),(3987,'Labastida/Bastida',182,189,3,3),(3988,'Labuerda',18954,18957,3,1),(3989,'Láchar',15636,15641,3,2),(3990,'Ladrillar',9642,9647,3,2),(3991,'Lagartera',38886,38889,3,1),(3992,'Lagartos',30798,30803,3,2),(3993,'Lagata',44092,44095,3,1),(3994,'Lagrán',190,195,3,2),(3995,'Laguardia',196,205,3,4),(3996,'Lagueruela',38006,38009,3,1),(3997,'Laguna Dalga',22426,22433,3,3),(3998,'Laguna de Cameros',21458,21461,3,1),(3999,'Laguna de Contreras',34526,34529,3,1),(4000,'Laguna de Duero',40996,41001,3,2),(4001,'Laguna de Negrillos',22434,22437,3,1),(4002,'Laguna del Marquesado',13448,13451,3,1),(4003,'Lagunaseca',13452,13455,3,1),(4004,'Lagunilla',33164,33167,3,1),(4005,'Lagunilla del Jubera',21462,21465,3,1),(4006,'Lahiguera',19808,19811,3,1),(4007,'Lakuntza',28782,28785,3,1),(4008,'Lalín',31710,31737,3,13),(4009,'Laluenga',18958,18961,3,1),(4010,'Lalueza',18962,18969,3,3),(4011,'Lamasón',10782,10785,3,1),(4012,'Lana',28786,28789,3,1),(4013,'Lanaja',18970,18977,3,3),(4014,'Láncara',25198,25221,3,11),(4015,'Lanciego/Lantziego',206,209,3,1),(4016,'Landete',13456,13461,3,2),(4017,'Lanestosa',41990,41993,3,1),(4018,'Langa',3878,3881,3,1),(4019,'Langa de Duero',36094,36101,3,3),(4020,'Langa del Castillo',44096,44099,3,1),(4021,'Langayo',41002,41005,3,1),(4022,'Langreo',2758,2775,3,8),(4023,'Languilla',34530,34533,3,1),(4024,'Lanjarón',15642,15645,3,1),(4025,'Lantadilla',30804,30807,3,1),(4026,'Lantarón',210,215,3,2),(4027,'Lanteira',15646,15649,3,1),(4028,'Lantejuela',35388,35391,3,1),(4029,'Lantz',28790,28793,3,1),(4030,'Lanzahíta',3882,3885,3,1),(4031,'Lanzuela',38010,38013,3,1),(4032,'Laperdiguera',18978,18981,3,1),(4033,'Lapoblación',28794,28797,3,1),(4034,'Lapuebla de Labarca',216,219,3,1),(4035,'Lardero',21466,21469,3,1),(4036,'Laredo',10786,10791,3,2),(4037,'Larouco',29788,29797,3,4),(4038,'Laroya',2002,2005,3,1),(4039,'Larrabetzu',41994,41997,3,1),(4040,'Larraga',28798,28801,3,1),(4041,'Larraona',28802,28805,3,1),(4042,'Larraul',17634,17637,3,1),(4043,'Larraun',28806,28815,3,4),(4044,'Larrodrigo',33168,33171,3,1),(4045,'Larva',19812,19815,3,1),(4046,'Las Aldehuelas',36102,36107,3,2),(4047,'Las Berlanas',3886,3889,3,1),(4048,'Las Cabezas de San Juan',35392,35397,3,2),(4049,'Las Casas del Conde',33172,33175,3,1),(4050,'Las Cuerlas',44100,44103,3,1),(4051,'Las Gabias',15650,15655,3,2),(4052,'Las Herencias',38890,38895,3,2),(4053,'Las Hormazas',8032,8037,3,2),(4054,'Las Inviernas',16666,16669,3,1),(4055,'Las Labores',12176,12179,3,1),(4056,'Las Majadas',13462,13465,3,1),(4057,'Las Mesas',13466,13469,3,1),(4058,'Las Navas de Jadraque',16670,16673,3,1),(4059,'Las Navas de la Concepción',35398,35401,3,1),(4060,'Las Navas del Marqués',3890,3895,3,2),(4061,'Las Omañas',22438,22441,3,1),(4062,'Las Parras de Castellote',38014,38017,3,1),(4063,'Las Pedroñeras',13470,13473,3,1),(4064,'Las Pedrosas',44104,44109,3,2),(4065,'Las Peñas de Riglos',18982,18995,3,6),(4066,'Las Quintanillas',8038,8041,3,1),(4067,'Las Regueras',2776,2785,3,4),(4068,'Las Rozas de Madrid',26284,26293,3,4),(4069,'Las Rozas de Valdearroyo',10792,10797,3,2),(4070,'Las Torres de Cotillas',27764,27767,3,1),(4071,'Las Tres Villas',2006,2011,3,2),(4072,'Las Valeras',13474,13479,3,2),(4073,'Las Veguillas',33176,33185,3,4),(4074,'Las Ventas con Peña Aguilera',38896,38899,3,1),(4075,'Las Ventas de Retamosa',38900,38903,3,1),(4076,'Las Ventas de San Julián',38904,38907,3,1),(4077,'Lasarte-Oria',17638,17641,3,1),(4078,'Lascellas-Ponzano',18996,18999,3,1),(4079,'Lascuarre',19000,19003,3,1),(4080,'Laspaúles',19004,19013,3,4),(4081,'Laspuña',19014,19017,3,1),(4082,'Lastras de Cuéllar',34534,34537,3,1),(4083,'Lastras del Pozo',34538,34541,3,1),(4084,'Laudio/Llodio',220,223,3,1),(4085,'Láujar de Andarax',2012,2015,3,1),(4086,'Laukiz',41998,42001,3,1),(4087,'Laviana',2786,2803,3,8),(4088,'Laxe',20516,20521,3,2),(4089,'Layana',44110,44113,3,1),(4090,'Layos',38908,38911,3,1),(4091,'Laza',29798,29807,3,4),(4092,'Lazagurría',28816,28819,3,1),(4093,'Lazkao',17642,17645,3,1),(4094,'Leaburu',17646,17649,3,1),(4095,'Leache/Leatxe',28820,28823,3,1),(4096,'Lebrija',35402,35405,3,1),(4097,'Lécera',44114,44117,3,1),(4098,'Lechón',44118,44121,3,1),(4099,'Leciñena',44122,44125,3,1),(4100,'Lecrín',15656,15663,3,3),(4101,'Ledaña',13480,13483,3,1),(4102,'Ledanca',16674,16677,3,1),(4103,'Ledesma',33186,33195,3,4),(4104,'Ledesma de la Cogolla',21470,21473,3,1),(4105,'Ledigos',30808,30811,3,1),(4106,'Ledrada',33196,33199,3,1),(4107,'Leganés',26294,26313,3,9),(4108,'Leganiel',13484,13487,3,1),(4109,'Legarda',28824,28827,3,1),(4110,'Legaria',28828,28831,3,1),(4111,'Legazpi',17650,17655,3,2),(4112,'Legorreta',17656,17659,3,1),(4113,'Legutio',224,231,3,3),(4114,'Leintz-Gatzaga',17660,17663,3,1),(4115,'Leioa',42002,42005,3,1),(4116,'Leiro',29808,29821,3,6),(4117,'Leitza',28832,28835,3,1),(4118,'Leiva',21474,21477,3,1),(4119,'Lekeitio',42006,42009,3,1),(4120,'Lekunberri',28836,28839,3,1),(4121,'Lemoa',42010,42013,3,1),(4122,'Lemoiz',42014,42017,3,1),(4123,'Lena',2804,2829,3,12),(4124,'Lentegí',15664,15667,3,1),(4125,'León',22442,22469,3,13),(4126,'Leoz/Leotz',28840,28845,3,2),(4127,'Lepe',18084,18091,3,3),(4128,'Lerga',28846,28849,3,1),(4129,'Lerín',28850,28853,3,1),(4130,'Lerma',8042,8053,3,5),(4131,'Les',24080,24083,3,1),(4132,'les Alqueries/Alquerías del Niño Perdido',11620,11623,3,1),(4133,'Les Avellanes i Santa Linya',24084,24089,3,2),(4134,'Les Borges Blanques',24090,24093,3,1),(4135,'Les Borges del Camp',37018,37021,3,1),(4136,'Les Cabanyes',6426,6429,3,1),(4137,'les Coves de Vinromà',11624,11627,3,1),(4138,'Les Franqueses del Vallès',6430,6435,3,2),(4139,'Les Llosses',14424,14431,3,3),(4140,'Les Masies de Roda',6436,6439,3,1),(4141,'Les Masies de Voltregà',6440,6445,3,2),(4142,'Les Oluges',24094,24097,3,1),(4143,'Les Piles',37022,37027,3,2),(4144,'Les Planes d\'Hostoles',14432,14437,3,2),(4145,'Les Preses',14438,14441,3,1),(4146,'Les Valls d\'Aguilar',24098,24103,3,2),(4147,'Les Valls de Valira',24104,24107,3,1),(4148,'Lesaka',28854,28859,3,2),(4149,'Letur',642,645,3,1),(4150,'Letux',44126,44129,3,1),(4151,'Leza',232,235,3,1),(4152,'Leza de Río Leza',21478,21481,3,1),(4153,'Lezama',42018,42021,3,1),(4154,'Lezáun',28860,28863,3,1),(4155,'Lezo',17664,17669,3,2),(4156,'Lezuza',646,651,3,2),(4157,'Librilla',27768,27771,3,1),(4158,'Libros',38018,38021,3,1),(4159,'Liceras',36108,36111,3,1),(4160,'Lidón',38022,38025,3,1),(4161,'Liédena',28864,28867,3,1),(4162,'Liendo',10798,10801,3,1),(4163,'Liérganes',10802,10809,3,3),(4164,'Liétor',652,659,3,3),(4165,'Líjar',2016,2019,3,1),(4166,'Lillo',38912,38915,3,1),(4167,'Limpias',10810,10815,3,2),(4168,'Linares',19816,19823,3,3),(4169,'Linares de la Sierra',18092,18095,3,1),(4170,'Linares de Mora',38026,38029,3,1),(4171,'Linares de Riofrío',33200,33203,3,1),(4172,'Linyola',24108,24111,3,1),(4173,'Liria',40082,40085,3,1),(4174,'Litago',44130,44133,3,1),(4175,'Lituénigo',44134,44137,3,1),(4176,'Lizartza',17670,17673,3,1),(4177,'Lizoáin-Arriasgoiti',28868,28877,3,4),(4178,'Lladó',14442,14445,3,1),(4179,'Lladorre',24112,24119,3,3),(4180,'Lladurs',24120,24125,3,2),(4181,'Llagostera',14446,14449,3,1),(4182,'Llamas de la Ribera',22470,22473,3,1),(4183,'Llambilles',14450,14453,3,1),(4184,'Llanars',14454,14457,3,1),(4185,'Llançà',14458,14461,3,1),(4186,'Llanera',2830,2851,3,10),(4187,'Llanera de Ranes',40086,40089,3,1),(4188,'Llanes',2852,2873,3,10),(4189,'Llano de Bureba',8054,8057,3,1),(4190,'Llano de Olmedo',41006,41009,3,1),(4191,'Llanos del Caudillo',12180,12183,3,1),(4192,'Llardecans',24126,24129,3,1),(4193,'Llaurí',40090,40093,3,1),(4194,'Llavorsí',24130,24135,3,2),(4195,'Lledó',38030,38033,3,1),(4196,'Lleida',24136,24177,3,20),(4197,'Llera',4878,4881,3,1),(4198,'Llerena',4882,4885,3,1),(4199,'Llers',14462,14465,3,1),(4200,'Lles de Cerdanya',24178,24181,3,1),(4201,'Llíber',1402,1405,3,1),(4202,'Lliçà d\'Amunt',6446,6449,3,1),(4203,'Lliçà de Vall',6450,6453,3,1),(4204,'Llimiana',24182,24187,3,2),(4205,'Llinars del Vallès',6454,6457,3,1),(4206,'Llívia',14466,14469,3,1),(4207,'Llobera',24188,24191,3,1),(4208,'Llombay',40094,40097,3,1),(4209,'Llorac',37028,37031,3,1),(4210,'Llorenç del Penedès',37032,37037,3,2),(4211,'Lloret de Mar',14470,14475,3,2),(4212,'Lloret de Vistalegre',5478,5481,3,1),(4213,'Lloseta',5482,5485,3,1),(4214,'Llubí',5486,5489,3,1),(4215,'Lluçà',6458,6461,3,1),(4216,'Llucena/Lucena del Cid',11628,11631,3,1),(4217,'Llucmajor',5490,5499,3,4),(4218,'Loarre',19018,19021,3,1),(4219,'Lobeira',29822,29835,3,6),(4220,'Lobera de Onsella',44138,44141,3,1),(4221,'Lobios',29836,29851,3,7),(4222,'Lobón',4886,4891,3,2),(4223,'Lobras',15668,15671,3,1),(4224,'Lodosa',28878,28881,3,1),(4225,'Loeches',26314,26317,3,1),(4226,'Logroño',21482,21501,3,9),(4227,'Logrosán',9648,9651,3,1),(4228,'Loiu',42022,42025,3,1),(4229,'Loja',15672,15683,3,5),(4230,'Loma de Ucieza',30812,30821,3,4),(4231,'Lomas',30822,30825,3,1),(4232,'Lominchar',38916,38919,3,1),(4233,'Lomoviejo',41010,41013,3,1),(4234,'Longares',44142,44145,3,1),(4235,'Longás',44146,44149,3,1),(4236,'Lónguida/Longida',28882,28889,3,3),(4237,'Lopera',19824,19827,3,1),(4238,'Loporzano',19022,19029,3,3),(4239,'Lora de Estepa',35406,35409,3,1),(4240,'Lora del Río',35410,35413,3,1),(4241,'Loranca de Tajuña',16678,16681,3,1),(4242,'Lorca',27772,27809,3,18),(4243,'Lorcha/l\'Orxa',1406,1409,3,1),(4244,'Loriguilla',40098,40101,3,1),(4245,'Lorquí',27810,27813,3,1),(4246,'Los Alcázares',27814,27817,3,1),(4247,'Los Altos',8058,8065,3,3),(4248,'Los Arcos',28890,28893,3,1),(4249,'Los Ausines',8066,8073,3,3),(4250,'Los Balbases',8074,8077,3,1),(4251,'Los Barrios',10380,10385,3,2),(4252,'Los Barrios de Bureba',8078,8083,3,2),(4253,'Los Barrios de Luna',22474,22479,3,2),(4254,'Los Blázquez',12726,12729,3,1),(4255,'Los Cerralbos',38920,38923,3,1),(4256,'Los Corrales',35414,35417,3,1),(4257,'Los Corrales de Buelna',10816,10823,3,3),(4258,'Los Cortijos',12184,12187,3,1),(4259,'Los Fayos',44150,44153,3,1),(4260,'Los Gallardos',2020,2027,3,3),(4261,'Los Guájares',15684,15687,3,1),(4262,'Los Hinojosos',13488,13491,3,1),(4263,'Los Huertos',34542,34545,3,1),(4264,'Los Llanos de Tormes',3896,3899,3,1),(4265,'Los Marines',18096,18099,3,1),(4266,'Los Molares',35418,35421,3,1),(4267,'Los Molinos',26318,26321,3,1),(4268,'Los Montesinos',1410,1413,3,1),(4269,'Los Navalmorales',38924,38927,3,1),(4270,'Los Navalucillos',38928,38935,3,3),(4271,'Los Olmos',38034,38037,3,1),(4272,'Los Palacios y Villafranca',35422,35429,3,3),(4273,'Los Pintanos',44154,44157,3,1),(4274,'Los Pozuelos de Calatrava',12188,12191,3,1),(4275,'Los Rábanos',36112,36117,3,2),(4276,'Los Santos',33204,33207,3,1),(4277,'Los Santos de la Humosa',26322,26325,3,1),(4278,'Los Santos de Maimona',4892,4895,3,1),(4279,'Los Tojos',10824,10829,3,2),(4280,'Los Valdecolmenas',13492,13495,3,1),(4281,'Los Villares',19828,19831,3,1),(4282,'Los Villares de Soria',36118,36123,3,2),(4283,'Los Yébenes',38936,38941,3,2),(4284,'Losa del Obispo',40102,40105,3,1),(4285,'Losacino',42666,42671,3,2),(4286,'Losacio',42672,42675,3,1),(4287,'Losar de la Vera',9652,9657,3,2),(4288,'Loscorrales',19030,19033,3,1),(4289,'Loscos',38038,38043,3,2),(4290,'Lourenzá',25222,25229,3,3),(4291,'Lousame',20522,20533,3,5),(4292,'Lozoya',26326,26329,3,1),(4293,'Lozoyuela-Navas-Sieteiglesias',26330,26337,3,3),(4294,'Lubián',42676,42683,3,3),(4295,'Lubrín',2028,2031,3,1),(4296,'Lucainena de las Torres',2032,2039,3,3),(4297,'Lúcar',2040,2045,3,2),(4298,'Lucena',12730,12743,3,6),(4299,'Lucena de Jalón',44158,44161,3,1),(4300,'Lucena del Puerto',18100,18103,3,1),(4301,'Luceni',44162,44165,3,1),(4302,'Luchente',40106,40109,3,1),(4303,'Luciana',12192,12195,3,1),(4304,'Lucillo',22480,22487,3,3),(4305,'Lucillos',38942,38945,3,1),(4306,'Ludiente',11632,11635,3,1),(4307,'Luelmo',42684,42687,3,1),(4308,'Luena',10830,10837,3,3),(4309,'Luesia',44166,44169,3,1),(4310,'Luesma',44170,44173,3,1),(4311,'Lugar Nuevo de Fenollet',40110,40113,3,1),(4312,'Lugar Nuevo de la Corona',40114,40117,3,1),(4313,'Lugar Nuevo de San Jerónimo',40118,40121,3,1),(4314,'Lugo',25230,25293,3,31),(4315,'Lugros',15688,15691,3,1),(4316,'Lújar',15692,15695,3,1),(4317,'Lumbier',28894,28897,3,1),(4318,'Lumbrales',33208,33211,3,1),(4319,'Lumbreras',21502,21505,3,1),(4320,'Lumpiaque',44174,44177,3,1),(4321,'Luna',44178,44183,3,2),(4322,'Lupiana',16682,16685,3,1),(4323,'Lupiñén-Ortilla',19034,19039,3,2),(4324,'Lupión',19832,19837,3,2),(4325,'Luque',12744,12751,3,3),(4326,'Luquin',28898,28901,3,1),(4327,'Luyego',22488,22493,3,2),(4328,'Luzaga',16686,16689,3,1),(4329,'Luzaide/Valcarlos',28902,28907,3,2),(4330,'Luzón',16690,16693,3,1),(4331,'Macael',2046,2049,3,1),(4332,'Maçanet de Cabrenys',14476,14481,3,2),(4333,'Maçanet de la Selva',14482,14485,3,1),(4334,'Macastre',40122,40125,3,1),(4335,'Maceda',29852,29867,3,7),(4336,'Machacón',33212,33215,3,1),(4337,'Macharaviaya',27244,27247,3,1),(4338,'Macotera',33216,33219,3,1),(4339,'Madarcos',26338,26341,3,1),(4340,'Maderuelo',34546,34549,3,1),(4341,'Madremanya',14486,14489,3,1),(4342,'Madrid',26342,26457,3,57),(4343,'Madridanos',42688,42691,3,1),(4344,'Madridejos',38946,38949,3,1),(4345,'Madrigal de la Vera',9658,9661,3,1),(4346,'Madrigal de las Altas Torres',3900,3903,3,1),(4347,'Madrigal del Monte',8084,8087,3,1),(4348,'Madrigalejo',9662,9665,3,1),(4349,'Madrigalejo del Monte',8088,8093,3,2),(4350,'Madrigueras',660,663,3,1),(4351,'Madroñal',33220,33223,3,1),(4352,'Madroñera',9666,9669,3,1),(4353,'Maella',44184,44187,3,1),(4354,'Maello',3904,3907,3,1),(4355,'Magacela',4896,4899,3,1),(4356,'Magallón',44188,44191,3,1),(4357,'Magán',38950,38953,3,1),(4358,'Magaña',36124,36127,3,1),(4359,'Magaz de Cepeda',22494,22499,3,2),(4360,'Magaz de Pisuerga',30826,30829,3,1),(4361,'Maguilla',4900,4903,3,1),(4362,'Mahamud',8094,8097,3,1),(4363,'Mahide',42692,42699,3,3),(4364,'Mahora',664,667,3,1),(4365,'Maià de Montcal',14490,14493,3,1),(4366,'Maials',24192,24195,3,1),(4367,'Maicas',38044,38047,3,1),(4368,'Mainar',44192,44195,3,1),(4369,'Maire de Castroponce',42700,42703,3,1),(4370,'Mairena del Alcor',35430,35433,3,1),(4371,'Mairena del Aljarafe',35434,35441,3,3),(4372,'Majadahonda',26458,26465,3,3),(4373,'Majadas',9670,9673,3,1),(4374,'Majaelrayo',16694,16697,3,1),(4375,'Maján',36128,36131,3,1),(4376,'Málaga',27248,27305,3,28),(4377,'Málaga del Fresno',16698,16701,3,1),(4378,'Malagón',12196,12205,3,4),(4379,'Malaguilla',16702,16705,3,1),(4380,'Malanquilla',44196,44199,3,1),(4381,'Malcocinado',4904,4907,3,1),(4382,'Maldà',24196,24199,3,1),(4383,'Maleján',44200,44203,3,1),(4384,'Malgrat de Mar',6462,6465,3,1),(4385,'Malla',6466,6469,3,1),(4386,'Mallabia',42026,42029,3,1),(4387,'Mallén',44204,44207,3,1),(4388,'Malón',44208,44211,3,1),(4389,'Malpartida',33224,33227,3,1),(4390,'Malpartida de Cáceres',9674,9679,3,2),(4391,'Malpartida de Corneja',3908,3911,3,1),(4392,'Malpartida de la Serena',4908,4911,3,1),(4393,'Malpartida de Plasencia',9680,9689,3,4),(4394,'Malpica de Bergantiños',20534,20541,3,3),(4395,'Malpica de Tajo',38954,38959,3,2),(4396,'Maluenda',44212,44215,3,1),(4397,'Malva',42704,42707,3,1),(4398,'Mamblas',3912,3915,3,1),(4399,'Mambrilla de Castrejón',8098,8101,3,1),(4400,'Mambrillas de Lara',8102,8107,3,2),(4401,'Mamolar',8108,8111,3,1),(4402,'Manacor',5500,5513,3,6),(4403,'Mañaria',42030,42033,3,1),(4404,'Mancera de Abajo',33228,33231,3,1),(4405,'Mancera de Arriba',3916,3919,3,1),(4406,'Mancha Real',19838,19843,3,2),(4407,'Manchita',4912,4915,3,1),(4408,'Manchones',44216,44219,3,1),(4409,'Manciles',8112,8115,3,1),(4410,'Mancor de la Vall',5514,5517,3,1),(4411,'Mandayona',16706,16709,3,1),(4412,'Mañeru',28908,28911,3,1),(4413,'Manganeses de la Lampreana',42708,42713,3,2),(4414,'Manganeses de la Polvorosa',42714,42717,3,1),(4415,'Manilva',27306,27311,3,2),(4416,'Manises',40126,40129,3,1),(4417,'Manjabálago y Ortigosa de Rioalmar',3920,3923,3,1),(4418,'Manjarrés',21506,21509,3,1),(4419,'Manlleu',6470,6473,3,1),(4420,'Mañón',20542,20547,3,2),(4421,'Manquillos',30830,30833,3,1),(4422,'Manresa',6474,6483,3,4),(4423,'Mansilla de la Sierra',21510,21513,3,1),(4424,'Mansilla de las Mulas',22500,22505,3,2),(4425,'Mansilla Mayor',22506,22509,3,1),(4426,'Mantiel',16710,16713,3,1),(4427,'Mantinos',30834,30837,3,1),(4428,'Manuel',40130,40133,3,1),(4429,'Manzanal de Arriba',42718,42723,3,2),(4430,'Manzanal de los Infantes',42724,42729,3,2),(4431,'Manzanal del Barco',42730,42733,3,1),(4432,'Manzanares',12206,12209,3,1),(4433,'Manzanares de Rioja',21514,21517,3,1),(4434,'Manzanares el Real',26466,26473,3,3),(4435,'Manzaneda',29868,29881,3,6),(4436,'Manzaneque',38960,38963,3,1),(4437,'Manzanera',38048,38055,3,3),(4438,'Manzanilla',18104,18107,3,1),(4439,'Manzanillo',41014,41017,3,1),(4440,'Maó-Mahón',5754,5767,3,6),(4441,'Maqueda',38964,38967,3,1),(4442,'Mara',44220,44223,3,1),(4443,'Maracena',15696,15699,3,1),(4444,'Maraña',22510,22513,3,1),(4445,'Maranchón',16714,16721,3,3),(4446,'Marañón',28912,28915,3,1),(4447,'Marazoleja',34550,34553,3,1),(4448,'Marazuela',34554,34557,3,1),(4449,'Marbella',27312,27329,3,8),(4450,'Marçà',37038,37043,3,2),(4451,'Marchagaz',9690,9693,3,1),(4452,'Marchal',15700,15703,3,1),(4453,'Marchamalo',16722,16725,3,1),(4454,'Marchena',35442,35445,3,1),(4455,'Marcilla',28916,28919,3,1),(4456,'Marcilla de Campos',30838,30841,3,1),(4457,'Margalef',37044,37047,3,1),(4458,'Marganell',6484,6487,3,1),(4459,'María',2050,2055,3,2),(4460,'María de Huerva',44224,44227,3,1),(4461,'Maria de la Salut',5518,5521,3,1),(4462,'Mariana',13496,13501,3,2),(4463,'Marín',31738,31753,3,7),(4464,'Marina de Cudeyo',10838,10847,3,4),(4465,'Marinaleda',35446,35449,3,1),(4466,'Marines',40134,40137,3,1),(4467,'Marjaliza',38968,38971,3,1),(4468,'Markina-Xemein',42034,42041,3,3),(4469,'Marlín',3924,3927,3,1),(4470,'Marmolejo',19844,19847,3,1),(4471,'Marracos',44228,44231,3,1),(4472,'Marratxí',5522,5525,3,1),(4473,'Marrupe',38972,38975,3,1),(4474,'Martiago',33232,33235,3,1),(4475,'Martiherrero',3928,3931,3,1),(4476,'Martín de la Jara',35450,35453,3,1),(4477,'Martín de Yeltes',33236,33241,3,2),(4478,'Martín del Río',38056,38061,3,2),(4479,'Martín Miguel',34558,34561,3,1),(4480,'Martín Muñoz de la Dehesa',34562,34565,3,1),(4481,'Martín Muñoz de las Posadas',34566,34569,3,1),(4482,'Martinamor',33242,33245,3,1),(4483,'Martínez',3932,3937,3,2),(4484,'Martorell',6488,6491,3,1),(4485,'Martorelles',6492,6495,3,1),(4486,'Martos',19848,19855,3,3),(4487,'Marugán',34570,34573,3,1),(4488,'Maruri-Jatabe',42042,42045,3,1),(4489,'Marzales',41018,41021,3,1),(4490,'Mas de Barberans',37048,37051,3,1),(4491,'Mas de las Matas',38062,38065,3,1),(4492,'Masalavés',40138,40141,3,1),(4493,'Masalfasar',40142,40145,3,1),(4494,'Masamagrell',40146,40149,3,1),(4495,'Masanasa',40150,40153,3,1),(4496,'Masarac',14494,14499,3,2),(4497,'Mascaraque',38976,38979,3,1),(4498,'Masdenverge',37052,37057,3,2),(4499,'Masegosa',13502,13505,3,1),(4500,'Masegoso',668,671,3,1),(4501,'Masegoso de Tajuña',16726,16729,3,1),(4502,'Maside',29882,29899,3,8),(4503,'Masllorenç',37058,37061,3,1),(4504,'Maspujols',37062,37065,3,1),(4505,'Masquefa',6496,6501,3,2),(4506,'Massalcoreig',24200,24203,3,1),(4507,'Massanes',14500,14503,3,1),(4508,'Massoteres',24204,24207,3,1),(4509,'Masueco',33246,33249,3,1),(4510,'Mata de Alcántara',9694,9697,3,1),(4511,'Mata de Cuéllar',34574,34577,3,1),(4512,'Matabuena',34578,34581,3,1),(4513,'Matadeón de los Oteros',22514,22517,3,1),(4514,'Matadepera',6502,6505,3,1),(4515,'Matalebreras',36132,36135,3,1),(4516,'Matallana de Torío',22518,22531,3,6),(4517,'Matamala de Almazán',36136,36139,3,1),(4518,'Matanza',22532,22535,3,1),(4519,'Matapozuelos',41022,41027,3,2),(4520,'Mataró',6506,6515,3,4),(4521,'Matarrubia',16730,16733,3,1),(4522,'Matet',11636,11639,3,1),(4523,'Matilla de Arzón',42734,42737,3,1),(4524,'Matilla de los Caños',41028,41031,3,1),(4525,'Matilla de los Caños del Río',33250,33255,3,2),(4526,'Matilla la Seca',42738,42741,3,1),(4527,'Matillas',16734,16737,3,1),(4528,'Matute',21518,21521,3,1),(4529,'Mayalde',42742,42745,3,1),(4530,'Mayorga',41032,41035,3,1),(4531,'Mazaleón',38066,38069,3,1),(4532,'Mazarambroz',38980,38985,3,2),(4533,'Mazarete',16738,16741,3,1),(4534,'Mazaricos',20548,20553,3,2),(4535,'Mazariegos',30842,30845,3,1),(4536,'Mazarrón',27818,27839,3,10),(4537,'Mazcuerras',10848,10853,3,2),(4538,'Mazuecos',16742,16745,3,1),(4539,'Mazuecos de Valdeginate',30846,30849,3,1),(4540,'Mazuela',8116,8119,3,1),(4541,'Meaño',31754,31763,3,4),(4542,'Mecerreyes',8120,8123,3,1),(4543,'Meco',26474,26477,3,1),(4544,'Medellín',4916,4919,3,1),(4545,'Mediana de Aragón',44232,44235,3,1),(4546,'Mediana de Voltoya',3938,3941,3,1),(4547,'Medina de las Torres',4920,4923,3,1),(4548,'Medina de Pomar',8124,8135,3,5),(4549,'Medina de Rioseco',41036,41041,3,2),(4550,'Medina del Campo',41042,41049,3,3),(4551,'Medina-Sidonia',10386,10391,3,2),(4552,'Medinaceli',36140,36149,3,4),(4553,'Medinilla',3942,3945,3,1),(4554,'Medio Cudeyo',10854,10865,3,5),(4555,'Mediona',6516,6519,3,1),(4556,'Medranda',16746,16749,3,1),(4557,'Medrano',21522,21525,3,1),(4558,'Megeces',41050,41053,3,1),(4559,'Megina',16750,16753,3,1),(4560,'Meira',25294,25301,3,3),(4561,'Meis',31764,31771,3,3),(4562,'Mejorada',38986,38991,3,2),(4563,'Mejorada del Campo',26478,26481,3,1),(4564,'Melgar de Abajo',41054,41057,3,1),(4565,'Melgar de Arriba',41058,41061,3,1),(4566,'Melgar de Fernamental',8136,8143,3,3),(4567,'Melgar de Tera',42746,42749,3,1),(4568,'Melgar de Yuso',30850,30853,3,1),(4569,'Meliana',40154,40157,3,1),(4570,'Mélida',28920,28923,3,1),(4571,'Melide',20554,20563,3,4),(4573,'Melón',29900,29905,3,2),(4574,'Melque de Cercos',34582,34585,3,1),(4575,'Membibre de la Hoz',34586,34589,3,1),(4576,'Membribe de la Sierra',33256,33259,3,1),(4577,'Membrilla',12210,12213,3,1),(4578,'Membrillera',16754,16757,3,1),(4579,'Membrío',9698,9701,3,1),(4580,'Meñaka',42046,42049,3,1),(4581,'Menàrguens',24208,24211,3,1),(4582,'Menasalbas',38992,38999,3,3),(4583,'Mendaro',17674,17677,3,1),(4584,'Mendata',42050,42053,3,1),(4585,'Mendavia',28924,28927,3,1),(4586,'Mendaza',28928,28933,3,2),(4587,'Mendexa',42054,42057,3,1),(4588,'Mendigorría',28934,28937,3,1),(4589,'Meneses de Campos',30854,30857,3,1),(4590,'Mengabril',4924,4927,3,1),(4591,'Mengamuñoz',3946,3949,3,1),(4592,'Mengíbar',19856,19859,3,1),(4593,'Méntrida',39000,39003,3,1),(4594,'Mequinenza',44236,44239,3,1),(4595,'Meranges',14504,14507,3,1),(4596,'Mérida',4928,4931,3,1),(4597,'Merindad de Cuesta-Urria',8144,8153,3,4),(4598,'Merindad de Montija',8154,8159,3,2),(4599,'Merindad de Río Ubierna',8160,8171,3,5),(4600,'Merindad de Sotoscueva',8172,8179,3,3),(4601,'Merindad de Valdeporres',8180,8187,3,3),(4602,'Merindad de Valdivielso',8188,8191,3,1),(4603,'Meruelo',10866,10869,3,1),(4604,'Mesas de Ibor',9702,9705,3,1),(4605,'Mesegar de Corneja',3950,3953,3,1),(4606,'Mesegar de Tajo',39004,39007,3,1),(4607,'Mesía',20564,20571,3,3),(4608,'Mesones de Isuela',44240,44243,3,1),(4609,'Mestanza',12214,12219,3,2),(4610,'Metauten',28938,28941,3,1),(4611,'Mezalocha',44244,44247,3,1),(4612,'Mezquita de Jarque',38070,38073,3,1),(4613,'Miajadas',9706,9711,3,2),(4614,'Mianos',44248,44251,3,1),(4615,'Micereces de Tera',42750,42753,3,1),(4616,'Micieces de Ojeda',30858,30861,3,1),(4617,'Miedes de Aragón',44252,44255,3,1),(4618,'Miedes de Atienza',16758,16761,3,1),(4619,'Miengo',10870,10877,3,3),(4620,'Miera',10878,10885,3,3),(4621,'Mieres',14508,14569,3,30),(4622,'Mieres',2874,2907,3,16),(4623,'Mieza',33260,33263,3,1),(4624,'Miguel Esteban',39008,39013,3,2),(4625,'Migueláñez',34590,34593,3,1),(4626,'Miguelturra',12220,12225,3,2),(4627,'Mijares',3954,3957,3,1),(4628,'Mijas',27330,27341,3,5),(4629,'Milagro',28942,28945,3,1),(4630,'Milagros',8192,8195,3,1),(4631,'Millana',16762,16765,3,1),(4632,'Millanes',9712,9715,3,1),(4633,'Millares',40158,40161,3,1),(4634,'Millena',1414,1417,3,1),(4635,'Milles de la Polvorosa',42754,42757,3,1),(4636,'Milmarcos',16766,16769,3,1),(4637,'Minas de Riotinto',18108,18113,3,2),(4638,'Minaya',672,675,3,1),(4639,'Minglanilla',13506,13509,3,1),(4640,'Mingorría',3958,3963,3,2),(4641,'Miño',20572,20581,3,4),(4642,'Miño de Medinaceli',36150,36155,3,2),(4643,'Miño de San Esteban',36156,36159,3,1),(4644,'Mira',13510,13513,3,1),(4645,'Mirabel',9716,9719,3,1),(4646,'Mirabueno',16770,16773,3,1),(4647,'Miraflores de la Sierra',26482,26485,3,1),(4648,'Mirafuentes',28946,28949,3,1),(4649,'Miralcamp',24212,24215,3,1),(4650,'Miralrío',16774,16777,3,1),(4651,'Miramar',40162,40165,3,1),(4652,'Mirambel',38074,38077,3,1),(4653,'Miranda de Arga',28950,28955,3,2),(4654,'Miranda de Azán',33264,33267,3,1),(4655,'Miranda de Ebro',8196,8209,3,6),(4656,'Miranda del Castañar',33268,33271,3,1),(4657,'Mirandilla',4932,4935,3,1),(4658,'Miraveche',8210,8213,3,1),(4659,'Miravet',37066,37069,3,1),(4660,'Miravete de la Sierra',38078,38081,3,1),(4661,'Mironcillo',3964,3967,3,1),(4662,'Mirueña de los Infanzones',3968,3971,3,1),(4663,'Mislata',40166,40169,3,1),(4664,'Moaña',31772,31785,3,6),(4665,'Mocejón',39014,39017,3,1),(4666,'Mochales',16778,16781,3,1),(4667,'Moclín',15704,15711,3,3),(4668,'Moclinejo',27342,27345,3,1),(4669,'Modúbar de la Emparedada',8214,8217,3,1),(4670,'Moeche',20582,20587,3,2),(4671,'Mogarraz',33272,33275,3,1),(4672,'Mogente',40170,40173,3,1),(4673,'Moguer',18114,18119,3,2),(4674,'Mohedas de Granadilla',9720,9723,3,1),(4675,'Mohedas de la Jara',39018,39023,3,2),(4676,'Mohernando',16782,16785,3,1),(4677,'Moià',6520,6523,3,1),(4678,'Mojácar',2056,2061,3,2),(4679,'Mojados',41062,41065,3,1),(4680,'Molacillos',42758,42761,3,1),(4681,'Molezuelas de la Carballeda',42762,42765,3,1),(4682,'Molina de Aragón',16786,16797,3,5),(4683,'Molina de Segura',27840,27851,3,5),(4684,'Molinaseca',22536,22541,3,2),(4685,'Molinicos',676,683,3,3),(4686,'Molinillo',33276,33279,3,1),(4687,'Molinos',38082,38085,3,1),(4688,'Molinos de Duero',36160,36165,3,2),(4689,'Molins de Rei',6524,6527,3,1),(4690,'Molledo',10886,10895,3,4),(4691,'Mollerussa',24216,24219,3,1),(4692,'Mollet de Peralada',14570,14573,3,1),(4693,'Mollet del Vallès',6528,6533,3,2),(4694,'Mollina',27346,27349,3,1),(4695,'Molló',14574,14577,3,1),(4696,'Molvízar',15712,15715,3,1),(4697,'Mombeltrán',3972,3977,3,2),(4698,'Momblona',36166,36169,3,1),(4699,'Mombuey',42766,42773,3,3),(4700,'Monachil',15716,15721,3,2),(4701,'Monasterio',16798,16801,3,1),(4702,'Monasterio de la Sierra',8218,8221,3,1),(4703,'Monasterio de Rodilla',8222,8225,3,1),(4704,'Monasterio de Vega',41066,41069,3,1),(4705,'Moncada',40174,40177,3,1),(4706,'Moncalvillo',8226,8229,3,1),(4707,'Moncofa',11640,11643,3,1),(4708,'Monda',27350,27353,3,1),(4709,'Mondariz',31786,31801,3,7),(4710,'Mondariz-Balneario',31802,31805,3,1),(4711,'Mondéjar',16802,16805,3,1),(4712,'Mondoñedo',25302,25317,3,7),(4713,'Monegrillo',44256,44259,3,1),(4714,'Monesma y Cajigar',19040,19043,3,1),(4715,'Monesterio',4936,4939,3,1),(4716,'Moneva',44260,44263,3,1),(4717,'Monfarracinos',42774,42777,3,1),(4718,'Monfero',20588,20597,3,4),(4719,'Monflorite-Lascasas',19044,19049,3,2),(4720,'Monforte de la Sierra',33280,33283,3,1),(4721,'Monforte de Lemos',25318,25349,3,15),(4722,'Monforte de Moyuela',38086,38089,3,1),(4723,'Monforte del Cid',1418,1423,3,2),(4724,'Monistrol de Calders',6534,6537,3,1),(4725,'Monistrol de Montserrat',6538,6541,3,1),(4726,'Monleón',33284,33287,3,1),(4727,'Monleras',33288,33291,3,1),(4728,'Monóvar/Monòver',1424,1429,3,2),(4729,'Monreal de Ariza',44264,44269,3,2),(4730,'Monreal del Campo',38090,38093,3,1),(4731,'Monreal del Llano',13514,13517,3,1),(4732,'Monreal/Elo',28956,28959,3,1),(4733,'Monroy',9724,9727,3,1),(4734,'Monroyo',38094,38097,3,1),(4735,'Monsagro',33292,33295,3,1),(4736,'Monsalupe',3978,3981,3,1),(4737,'Mont-ral',37070,37075,3,2),(4738,'Mont-ras',14578,14581,3,1),(4739,'Mont-roig del Camp',37076,37083,3,3),(4740,'Montagut i Oix',14582,14587,3,2),(4741,'Montalbán',38098,38103,3,2),(4742,'Montalbán de Córdoba',12752,12755,3,1),(4743,'Montalbanejo',13518,13521,3,1),(4744,'Montalbo',13522,13525,3,1),(4745,'Montalvos',684,687,3,1),(4746,'Montamarta',42778,42781,3,1),(4747,'Montán',11644,11647,3,1),(4748,'Montánchez',9728,9731,3,1),(4749,'Montanejos',11648,11651,3,1),(4750,'Montanuy',19050,19059,3,4),(4751,'Montarrón',16806,16809,3,1),(4752,'Montaverner',40178,40181,3,1),(4753,'Montblanc',37084,37095,3,5),(4754,'Montbrió del Camp',37096,37099,3,1),(4755,'Montcada i Reixac',6542,6545,3,1),(4756,'Montclar',6546,6549,3,1),(4757,'Monteagudo',28960,28963,3,1),(4758,'Monteagudo de las Salinas',13526,13529,3,1),(4759,'Monteagudo de las Vicarías',36170,36173,3,1),(4760,'Monteagudo del Castillo',38104,38107,3,1),(4761,'Montealegre de Campos',41070,41075,3,2),(4762,'Montealegre del Castillo',688,691,3,1),(4763,'Montearagón',39024,39027,3,1),(4764,'Montecorto',27354,27355,3,0),(4765,'Montederramo',29906,29915,3,4),(4766,'Montefrío',15722,15725,3,1),(4767,'Montehermoso',9732,9735,3,1),(4768,'Montejaque',27356,27359,3,1),(4769,'Montejícar',15726,15729,3,1),(4770,'Montejo',33296,33299,3,1),(4771,'Montejo de Arévalo',34594,34597,3,1),(4772,'Montejo de la Sierra',26486,26489,3,1),(4773,'Montejo de la Vega de la Serrezuela',34598,34601,3,1),(4774,'Montejo de Tiermes',36174,36187,3,6),(4775,'Montellà i Martinet',24220,24225,3,2),(4776,'Montellano',35454,35457,3,1),(4777,'Montemayor',12756,12761,3,2),(4778,'Montemayor de Pililla',41076,41079,3,1),(4779,'Montemayor del Río',33300,33303,3,1),(4780,'Montemolín',4940,4947,3,3),(4781,'Montenegro de Cameros',36188,36191,3,1),(4782,'Monterde',44270,44273,3,1),(4783,'Monterde de Albarracín',38108,38111,3,1),(4784,'Monterrei',29916,29923,3,3),(4785,'Monterroso',25350,25361,3,5),(4786,'Monterrubio',34602,34605,3,1),(4787,'Monterrubio de Armuña',33304,33307,3,1),(4788,'Monterrubio de la Demanda',8230,8233,3,1),(4789,'Monterrubio de la Serena',4948,4951,3,1),(4790,'Monterrubio de la Sierra',33308,33311,3,1),(4791,'Montesa',40182,40185,3,1),(4792,'Montesclaros',39028,39031,3,1),(4793,'Montesquiu',6550,6553,3,1),(4794,'Montferrer i Castellbò',24226,24233,3,3),(4795,'Montferri',37100,37103,3,1),(4796,'Montgai',24234,24239,3,2),(4797,'Montgat',6554,6557,3,1),(4798,'Montichelvo',40186,40189,3,1),(4799,'Montiel',12226,12229,3,1),(4800,'Montijo',4952,4965,3,6),(4801,'Montilla',12762,12765,3,1),(4802,'Montillana',15730,15733,3,1),(4803,'Montizón',19860,19867,3,3),(4804,'Montmajor',6558,6561,3,1),(4805,'Montmaneu',6562,6565,3,1),(4806,'Montmeló',6566,6569,3,1),(4807,'Montoliu de Lleida',24240,24243,3,1),(4808,'Montoliu de Segarra',24244,24247,3,1),(4809,'Montón',44274,44277,3,1),(4810,'Montorio',8234,8237,3,1),(4811,'Montornès de Segarra',24248,24251,3,1),(4812,'Montornès del Vallès',6570,6573,3,1),(4813,'Montoro',12766,12769,3,1),(4814,'Montroy',40190,40193,3,1),(4815,'Montseny',6574,6577,3,1),(4816,'Montserrat',40194,40197,3,1),(4817,'Montuïri',5526,5529,3,1),(4818,'Monturque',12770,12773,3,1),(4819,'Monzón',19060,19067,3,3),(4820,'Monzón de Campos',30862,30867,3,2),(4821,'Mora',39032,39035,3,1),(4822,'Móra d\'Ebre',37104,37107,3,1),(4823,'Mora de Rubielos',38112,38115,3,1),(4824,'Móra la Nova',37108,37111,3,1),(4825,'Moradillo de Roa',8238,8241,3,1),(4826,'Moral de Calatrava',12230,12233,3,1),(4827,'Moral de Hornuez',34606,34609,3,1),(4828,'Moral de la Reina',41080,41083,3,1),(4829,'Moral de Sayago',42782,42785,3,1),(4830,'Moraleda de Zafayona',15734,15737,3,1),(4831,'Moraleja',9736,9739,3,1),(4832,'Moraleja de Enmedio',26490,26493,3,1),(4833,'Moraleja de las Panaderas',41084,41087,3,1),(4834,'Moraleja de Matacabras',3982,3985,3,1),(4835,'Moraleja de Sayago',42786,42789,3,1),(4836,'Moraleja del Vino',42790,42793,3,1),(4837,'Morales de Campos',41088,41091,3,1),(4838,'Morales de Rey',42794,42797,3,1),(4839,'Morales de Toro',42798,42801,3,1),(4840,'Morales de Valverde',42802,42805,3,1),(4841,'Morales del Vino',42806,42811,3,2),(4842,'Moralina',42812,42815,3,1),(4843,'Moralzarzal',26494,26497,3,1),(4844,'Moraña',31806,31813,3,3),(4845,'Morasverdes',33312,33315,3,1),(4846,'Morata de Jalón',44278,44281,3,1),(4847,'Morata de Jiloca',44282,44285,3,1),(4848,'Morata de Tajuña',26498,26501,3,1),(4849,'Moratalla',27852,27871,3,9),(4850,'Moratilla de los Meleros',16810,16813,3,1),(4851,'Moratinos',30868,30871,3,1),(4852,'Morcillo',9740,9743,3,1),(4853,'Morcín',2908,2915,3,3),(4854,'Moreda de Álava/Moreda Araba',236,239,3,1),(4855,'Morelábor',15738,15741,3,1),(4856,'Morella',11652,11655,3,1),(4857,'Morenilla',16814,16817,3,1),(4858,'Morentin',28964,28967,3,1),(4859,'Moreruela de los Infanzones',42816,42819,3,1),(4860,'Moreruela de Tábara',42820,42823,3,1),(4861,'Morés',44286,44291,3,2),(4862,'Morga',42058,42061,3,1),(4863,'Moriles',12774,12777,3,1),(4864,'Morille',33316,33319,3,1),(4865,'Moríñigo',33320,33323,3,1),(4866,'Moriscos',33324,33327,3,1),(4867,'Morón de Almazán',36192,36197,3,2),(4868,'Morón de la Frontera',35458,35461,3,1),(4869,'Moronta',33328,33335,3,3),(4870,'Moros',44292,44295,3,1),(4871,'Mos',31814,31827,3,6),(4872,'Moscardón',38116,38119,3,1),(4873,'Mosqueruela',38120,38123,3,1),(4874,'Móstoles',26502,26521,3,9),(4875,'Mota de Altarejos',13530,13533,3,1),(4876,'Mota del Cuervo',13534,13537,3,1),(4877,'Mota del Marqués',41092,41095,3,1),(4878,'Motilla del Palancar',13538,13541,3,1),(4879,'Motilleja',692,695,3,1),(4880,'Motril',15742,15757,3,7),(4882,'Moyuela',44296,44299,3,1),(4883,'Mozárbez',33336,33345,3,4),(4884,'Mozoncillo',34610,34613,3,1),(4885,'Mozota',44300,44303,3,1),(4886,'Mucientes',41096,41099,3,1),(4887,'Mudá',30872,30875,3,1),(4888,'Muduex',16818,16821,3,1),(4889,'Muel',44304,44309,3,2),(4890,'Muelas de los Caballeros',42824,42831,3,3),(4891,'Muelas del Pan',42832,42839,3,3),(4892,'Mues',28968,28971,3,1),(4893,'Muga de Sayago',42840,42843,3,1),(4894,'Mugardos',20598,20605,3,3),(4895,'Muíños',29924,29933,3,4),(4896,'Mula',27872,27881,3,4),(4897,'Muñana',3986,3989,3,1),(4898,'Mundaka',42062,42065,3,1),(4899,'Munébrega',44310,44313,3,1),(4900,'Munera',696,699,3,1),(4901,'Mungia',42066,42071,3,2),(4902,'Muñico',3990,3993,3,1),(4903,'Muniesa',38124,38127,3,1),(4904,'Munilla',21526,21529,3,1),(4905,'Munitibar-Arbatzegi Gerrikaitz',42072,42075,3,1),(4906,'Muñogalindo',3994,3997,3,1),(4907,'Muñogrande',3998,4003,3,2),(4908,'Muñomer del Peco',4004,4007,3,1),(4909,'Muñopedro',34614,34617,3,1),(4910,'Muñopepe',4008,4011,3,1),(4911,'Muñosancho',4012,4015,3,1),(4912,'Muñotello',4016,4019,3,1),(4913,'Muñoveros',34618,34621,3,1),(4914,'Muntanyola',6578,6583,3,2),(4915,'Mura',6584,6587,3,1),(4916,'Muras',25362,25371,3,4),(4917,'Murchante',28972,28975,3,1),(4918,'Murcia',27882,28005,3,61),(4919,'Murero',44314,44317,3,1),(4920,'Murias de Paredes',22542,22555,3,6),(4921,'Muriel',41100,41103,3,1),(4922,'Muriel de la Fuente',36198,36201,3,1),(4923,'Muriel Viejo',36202,36205,3,1),(4924,'Murieta',28976,28979,3,1),(4925,'Murillo de Gállego',44318,44323,3,2),(4926,'Murillo de Río Leza',21530,21533,3,1),(4927,'Murillo el Cuende',28980,28987,3,3),(4928,'Murillo el Fruto',28988,28991,3,1),(4929,'Murla',1430,1433,3,1),(4930,'Muro',5530,5535,3,2),(4931,'Muro de Aguas',21534,21537,3,1),(4932,'Muro de Alcoy',1434,1439,3,2),(4933,'Muro en Cameros',21538,21541,3,1),(4934,'Muros',20606,20619,3,6),(4935,'Muros de Nalón',2916,2921,3,2),(4936,'Murtas',15758,15763,3,2),(4937,'Murueta',42076,42079,3,1),(4938,'Muruzábal',28992,28995,3,1),(4939,'Museros',40198,40201,3,1),(4940,'Muskiz',42080,42083,3,1),(4941,'Mutiloa',17678,17681,3,1),(4942,'Mutriku',17682,17685,3,1),(4943,'Mutxamel',1440,1443,3,1),(4944,'Muxía',20620,20627,3,3),(4945,'Muxika',42084,42089,3,2),(4946,'Nabarniz',42090,42093,3,1),(4947,'Nacimiento',2062,2065,3,1),(4948,'Nafría de Ucero',36206,36209,3,1),(4949,'Nájera',21542,21547,3,2),(4950,'Nalda',21548,21553,3,2),(4951,'Nalec',24252,24255,3,1),(4952,'Nambroca',39036,39041,3,2),(4953,'Náquera',40202,40205,3,1),(4954,'Narboneta',13544,13547,3,1),(4955,'Narón',20628,20647,3,9),(4956,'Narrillos del Álamo',4020,4023,3,1),(4957,'Narrillos del Rebollar',4024,4027,3,1),(4958,'Narros',36210,36213,3,1),(4959,'Narros de Matalayegua',33346,33351,3,2),(4960,'Narros de Saldueña',4028,4031,3,1),(4961,'Narros del Castillo',4032,4035,3,1),(4962,'Narros del Puerto',4036,4039,3,1),(4963,'Naut Aran',24256,24263,3,3),(4964,'Nava',2922,2933,3,5),(4965,'Nava de Arévalo',4040,4043,3,1),(4966,'Nava de Béjar',33352,33355,3,1),(4967,'Nava de Francia',33356,33359,3,1),(4968,'Nava de la Asunción',34622,34627,3,2),(4969,'Nava de Roa',8242,8245,3,1),(4970,'Nava de Sotrobal',33360,33363,3,1),(4971,'Nava del Barco',4044,4047,3,1),(4972,'Nava del Rey',41104,41107,3,1),(4973,'Navacarros',33364,33367,3,1),(4974,'Navacepedilla de Corneja',4048,4051,3,1),(4975,'Navacerrada',26522,26525,3,1),(4976,'Navaconcejo',9744,9747,3,1),(4977,'Navadijos',4052,4055,3,1),(4978,'Navaescurial',4056,4059,3,1),(4979,'Navafría',34628,34631,3,1),(4980,'Navahermosa',39042,39047,3,2),(4981,'Navahondilla',4060,4063,3,1),(4982,'Navajas',11656,11659,3,1),(4983,'Navajún',21554,21557,3,1),(4984,'Naval',19068,19073,3,2),(4985,'Navalacruz',4064,4067,3,1),(4986,'Navalafuente',26526,26529,3,1),(4987,'Navalagamella',26530,26537,3,3),(4988,'Navalcán',39048,39051,3,1),(4989,'Navalcarnero',26538,26541,3,1),(4990,'Navaleno',36214,36217,3,1),(4991,'Navales',33368,33371,3,1),(4992,'Navalilla',34632,34635,3,1),(4993,'Navalmanzano',34636,34639,3,1),(4994,'Navalmoral',4068,4071,3,1),(4995,'Navalmoral de Béjar',33372,33375,3,1),(4996,'Navalmoral de la Mata',9748,9751,3,1),(4997,'Navalmoralejo',39052,39055,3,1),(4998,'Navalonguilla',4072,4075,3,1),(4999,'Navalosa',4076,4079,3,1),(5000,'Navalperal de Pinares',4080,4083,3,1),(5001,'Navalperal de Tormes',4084,4089,3,2),(5002,'Navalpino',12234,12237,3,1),(5003,'Navaluenga',4090,4093,3,1),(5004,'Navalvillar de Ibor',9752,9755,3,1),(5005,'Navalvillar de Pela',4966,4973,3,3),(5006,'Navamorales',33376,33379,3,1),(5007,'Navamorcuende',39056,39059,3,1),(5008,'Navaquesera',4094,4097,3,1),(5009,'Navarcles',6588,6591,3,1),(5010,'Navardún',44324,44329,3,2),(5011,'Navares de Ayuso',34640,34645,3,2),(5012,'Navares de Enmedio',34646,34649,3,1),(5013,'Navares de las Cuevas',34650,34653,3,1),(5014,'Navaridas',240,243,3,1),(5015,'Navarredonda de Gredos',4098,4101,3,1),(5016,'Navarredonda de la Rinconada',33380,33383,3,1),(5017,'Navarredonda y San Mamés',26542,26545,3,1),(5018,'Navarredondilla',4102,4105,3,1),(5019,'Navarrés',40206,40209,3,1),(5020,'Navarrete',21558,21561,3,1),(5021,'Navarrevisca',4106,4109,3,1),(5022,'Navàs',6592,6597,3,2),(5023,'Navas de Bureba',8246,8249,3,1),(5024,'Navas de Estena',12238,12241,3,1),(5025,'Navas de Jorquera',700,703,3,1),(5026,'Navas de Oro',34654,34657,3,1),(5027,'Navas de Riofrío',34658,34661,3,1),(5028,'Navas de San Antonio',34662,34665,3,1),(5029,'Navas de San Juan',19868,19871,3,1),(5030,'Navas del Madroño',9756,9759,3,1),(5031,'Navas del Rey',26546,26549,3,1),(5032,'Navascués/Nabaskoze',28996,29003,3,3),(5033,'Navasfrías',33384,33387,3,1),(5034,'Navata',14588,14591,3,1),(5035,'Navatalgordo',4110,4113,3,1),(5036,'Navatejares',4114,4117,3,1),(5037,'Navès',24264,24267,3,1),(5038,'Navezuelas',9760,9763,3,1),(5039,'Navia',2934,2943,3,4),(5040,'Navia de Suarna',25372,25393,3,10),(5041,'Navianos de Valverde',42844,42847,3,1),(5042,'Nazar',29004,29007,3,1),(5043,'Nebreda',8250,8253,3,1),(5044,'Neda',20648,20655,3,3),(5045,'Negredo',16822,16825,3,1),(5046,'Negreira',20656,20665,3,4),(5047,'Negrilla de Palencia',33388,33391,3,1),(5048,'Negueira de Muñiz',25394,25397,3,1),(5049,'Neila',8254,8257,3,1),(5050,'Neila de San Miguel',4118,4121,3,1),(5051,'Nepas',36218,36221,3,1),(5052,'Nerja',27360,27365,3,2),(5053,'Nerpio',704,719,3,7),(5054,'Nerva',18120,18123,3,1),(5055,'Nestares',21562,21565,3,1),(5056,'Nevada',15764,15769,3,2),(5057,'Niebla',18124,18127,3,1),(5058,'Nieva',34666,34669,3,1),(5059,'Nieva de Cameros',21566,21569,3,1),(5060,'Nigrán',31828,31841,3,6),(5061,'Nigüelas',15770,15773,3,1),(5062,'Nigüella',44330,44333,3,1),(5063,'Niharra',4122,4125,3,1),(5064,'Níjar',2066,2093,3,13),(5065,'Nívar',15774,15777,3,1),(5066,'Noáin (Valle de Elorz)/Noain (Elortzibar)',29008,29015,3,3),(5067,'Noalejo',19872,19875,3,1),(5068,'Noblejas',39060,39063,3,1),(5069,'Noceda del Bierzo',22556,22561,3,2),(5070,'Noez',39064,39067,3,1),(5071,'Nogal de las Huertas',30876,30879,3,1),(5072,'Nogales',4974,4977,3,1),(5073,'Nogueira de Ramuín',29934,29953,3,9),(5074,'Noguera de Albarracín',38128,38131,3,1),(5075,'Nogueras',38132,38135,3,1),(5076,'Nogueruelas',38136,38139,3,1),(5077,'Noia',20666,20677,3,5),(5078,'Noja',10896,10899,3,1),(5079,'Nolay',36222,36225,3,1),(5080,'Nombela',39068,39071,3,1),(5081,'Nombrevilla',44334,44337,3,1),(5082,'Nonaspe',44338,44341,3,1),(5083,'Noreña',2944,2947,3,1),(5084,'Novales',19074,19077,3,1),(5085,'Novallas',44342,44345,3,1),(5086,'Novelda',1444,1447,3,1),(5087,'Novelé',40210,40213,3,1),(5088,'Novés',39072,39075,3,1),(5089,'Noviercas',36226,36231,3,2),(5090,'Novillas',44346,44349,3,1),(5091,'Nueno',19078,19083,3,2),(5092,'Nueva Carteya',12778,12783,3,2),(5093,'Nueva Villa de las Torres',41108,41111,3,1),(5094,'Nuévalos',44350,44355,3,2),(5095,'Nuevo Baztán',26550,26553,3,1),(5096,'Nuez de Ebro',44356,44359,3,1),(5097,'Nules',11660,11665,3,2),(5098,'Nulles',37112,37115,3,1),(5099,'Numancia de la Sagra',39076,39079,3,1),(5100,'Nuño Gómez',39080,39083,3,1),(5101,'Nuñomoral',9764,9775,3,5),(5102,'O Barco de Valdeorras',29954,29967,3,6),(5103,'O Bolo',29968,29979,3,5),(5104,'O Carballiño',29980,29997,3,8),(5105,'O Corgo',25398,25411,3,6),(5106,'O Grove',31842,31851,3,4),(5107,'O Incio',25412,25425,3,6),(5108,'O Irixo',29998,30013,3,7),(5109,'O Páramo',25426,25437,3,5),(5110,'O Pereiro de Aguiar',30014,30023,3,4),(5111,'O Pino',20678,20689,3,5),(5112,'O Porriño',31852,31869,3,8),(5113,'O Rosal',31870,31877,3,3),(5114,'O Saviñao',25438,25459,3,10),(5115,'O Valadouro',25460,25471,3,5),(5116,'O Vicedo',25472,25479,3,3),(5117,'Obanos',29016,29019,3,1),(5118,'Obejo',12784,12791,3,3),(5119,'Obón',38140,38143,3,1),(5120,'Ocaña',39084,39087,3,1),(5121,'Ocentejo',16826,16829,3,1),(5122,'Ochagavía/Otsagabia',29020,29023,3,1),(5123,'Ochánduri',21570,21573,3,1),(5124,'Oco',29024,29027,3,1),(5125,'Ocón',21574,21583,3,4),(5126,'Odèn',24268,24273,3,2),(5127,'Òdena',6598,6601,3,1),(5128,'Odieta',29028,29033,3,2),(5129,'Odón',38144,38147,3,1),(5130,'Oencia',22562,22571,3,4),(5131,'Ogassa',14592,14595,3,1),(5132,'Ogíjares',15778,15781,3,1),(5133,'Ohanes',2094,2097,3,1),(5134,'Oia',31878,31885,3,3),(5135,'Oiartzun',17686,17689,3,1),(5136,'Oímbra',30024,30029,3,2),(5137,'Oiz',29034,29037,3,1),(5138,'Ojacastro',21584,21587,3,1),(5139,'Ojén',27366,27371,3,2),(5140,'Ojós',28006,28009,3,1),(5141,'Ojos Negros',38148,38153,3,2),(5142,'Ojos-Albos',4126,4129,3,1),(5143,'Okondo',244,247,3,1),(5144,'Olaberria',17690,17693,3,1),(5145,'Olaibar',29038,29041,3,1),(5146,'Olazti/Olazagutía',29042,29045,3,1),(5147,'Olba',38154,38159,3,2),(5148,'Olea de Boedo',30880,30883,3,1),(5149,'Oleiros',20690,20705,3,7),(5150,'Olejua',29046,29049,3,1),(5151,'Olèrdola',6602,6607,3,2),(5152,'Olesa de Bonesvalls',6608,6611,3,1),(5153,'Olesa de Montserrat',6612,6615,3,1),(5154,'Oliana',24274,24277,3,1),(5155,'Olías del Rey',39088,39091,3,1),(5156,'Oliete',38160,38163,3,1),(5157,'Oliola',24278,24285,3,3),(5158,'Olite/Erriberri',29050,29053,3,1),(5159,'Olius',24286,24293,3,3),(5160,'Oliva',40214,40219,3,2),(5161,'Oliva de la Frontera',4978,4981,3,1),(5162,'Oliva de Mérida',4982,4985,3,1),(5163,'Oliva de Plasencia',9776,9781,3,2),(5164,'Olivares',35462,35465,3,1),(5165,'Olivares de Duero',41112,41115,3,1),(5166,'Olivares de Júcar',13548,13551,3,1),(5167,'Olivella',6616,6619,3,1),(5168,'Olivenza',4986,4997,3,5),(5169,'Ollauri',21588,21591,3,1),(5170,'Ollería',40220,40223,3,1),(5171,'Olmeda de Cobeta',16830,16835,3,2),(5172,'Olmeda de la Cuesta',13552,13555,3,1),(5173,'Olmeda de las Fuentes',26554,26557,3,1),(5174,'Olmeda del Rey',13556,13559,3,1),(5175,'Olmedilla de Alarcón',13560,13563,3,1),(5176,'Olmedilla de Eliz',13564,13567,3,1),(5177,'Olmedillo de Roa',8258,8261,3,1),(5178,'Olmedo',41116,41121,3,2),(5179,'Olmedo de Camaces',33392,33397,3,2),(5180,'Olmillos de Castro',42848,42855,3,3),(5181,'Olmillos de Muñó',8262,8265,3,1),(5182,'Olmos de Esgueva',41122,41125,3,1),(5183,'Olmos de Ojeda',30884,30891,3,3),(5184,'Olmos de Peñafiel',41126,41129,3,1),(5185,'Olocau',40224,40227,3,1),(5186,'Olocau del Rey',11666,11669,3,1),(5187,'Olombrada',34670,34675,3,2),(5188,'Olóriz/Oloritz',29054,29059,3,2),(5189,'Olost',6620,6623,3,1),(5190,'Olot',14596,14603,3,3),(5191,'Olula de Castro',2098,2101,3,1),(5192,'Olula del Río',2102,2105,3,1),(5193,'Olvan',6624,6629,3,2),(5194,'Ólvega',36232,36237,3,2),(5195,'Olvena',19084,19087,3,1),(5196,'Olvera',10392,10395,3,1),(5197,'Olvés',44360,44363,3,1),(5198,'Oña',8266,8281,3,7),(5199,'Oñati',17694,17703,3,4),(5200,'Oncala',36238,36241,3,1),(5201,'Onda',11670,11675,3,2),(5202,'Ondara',1448,1451,3,1),(5203,'Ondarroa',42094,42097,3,1),(5204,'Onil',1452,1455,3,1),(5205,'Onís',2948,2951,3,1),(5206,'Onteniente',40228,40231,3,1),(5207,'Ontígola',39092,39095,3,1),(5208,'Ontiñena',19088,19091,3,1),(5209,'Ontur',720,723,3,1),(5210,'Onzonilla',22572,22581,3,4),(5211,'Oquillas',8282,8285,3,1),(5212,'Orba',1456,1465,3,4),(5213,'Orbaizeta',29060,29063,3,1),(5214,'Orbaneja Riopico',8286,8289,3,1),(5215,'Orbara',29064,29067,3,1),(5216,'Orbita',4130,4133,3,1),(5217,'Orcajo',44364,44367,3,1),(5218,'Orce',15782,15785,3,1),(5219,'Orcera',19876,19879,3,1),(5220,'Ordes',20706,20717,3,5),(5221,'Ordis',14604,14607,3,1),(5222,'Ordizia',17704,17707,3,1),(5223,'Orea',16836,16839,3,1),(5224,'Orejana',34676,34679,3,1),(5225,'Orellana de la Sierra',4998,5001,3,1),(5226,'Orellana la Vieja',5002,5005,3,1),(5227,'Orendain',17708,17711,3,1),(5228,'Orera',44368,44371,3,1),(5229,'Orés',44372,44375,3,1),(5230,'Orexa',17712,17715,3,1),(5231,'Organyà',24294,24297,3,1),(5232,'Orgaz',39096,39101,3,2),(5233,'Órgiva',15786,15795,3,4),(5234,'Oria',2106,2117,3,5),(5235,'Orihuela',1466,1493,3,13),(5236,'Orihuela del Tremedal',38164,38167,3,1),(5237,'Orio',17716,17719,3,1),(5238,'Orís',6630,6633,3,1),(5239,'Orísoain',29068,29071,3,1),(5240,'Oristà',6634,6637,3,1),(5241,'Orkoien',29072,29075,3,1),(5242,'Ormaiztegi',17720,17723,3,1),(5243,'Oronz/Orontze',29076,29079,3,1),(5244,'Oropesa',39102,39109,3,3),(5245,'Oropesa del Mar/Orpesa',11676,11679,3,1),(5246,'Oroso',20718,20725,3,3),(5247,'Oroz-Betelu/Orotz-Betelu',29080,29083,3,1),(5248,'Orozko',42098,42103,3,2),(5249,'Orpí',6638,6641,3,1),(5250,'Orreaga/Roncesvalles',29084,29087,3,1),(5251,'Orrios',38168,38171,3,1),(5252,'Òrrius',6642,6645,3,1),(5253,'Ortigosa de Cameros',21592,21595,3,1),(5254,'Ortigosa de Pestaño',34680,34683,3,1),(5255,'Ortigosa del Monte',34684,34687,3,1),(5256,'Ortigueira',20726,20743,3,8),(5257,'Ortuella',42104,42107,3,1),(5258,'Orusco de Tajuña',26558,26561,3,1),(5259,'Orxeta',1494,1497,3,1),(5260,'Os Blancos',30030,30035,3,2),(5261,'Os de Balaguer',24298,24307,3,4),(5262,'Osa de la Vega',13568,13571,3,1),(5263,'Oseja',44376,44379,3,1),(5264,'Oseja de Sajambre',22582,22585,3,1),(5265,'Osera de Ebro',44380,44383,3,1),(5266,'Osor',14608,14611,3,1),(5267,'Osornillo',30892,30895,3,1),(5268,'Osorno la Mayor',30896,30901,3,2),(5269,'Ossa de Montiel',724,727,3,1),(5270,'Osso de Cinca',19092,19097,3,2),(5271,'Ossó de Sió',24308,24311,3,1),(5272,'Osuna',35466,35469,3,1),(5273,'Oteiza',29088,29091,3,1),(5274,'Otero',39110,39113,3,1),(5275,'Otero de Bodas',42856,42861,3,2),(5276,'Otero de Herreros',34688,34691,3,1),(5277,'Otívar',15796,15799,3,1),(5278,'Otos',40232,40235,3,1),(5279,'Otxandio',42108,42111,3,1),(5280,'Ourense',30036,30069,3,16),(5281,'Ourol',25480,25487,3,3),(5282,'Outeiro de Rei',25488,25507,3,9),(5283,'Outes',20744,20759,3,7),(5284,'Oviedo',2952,3021,3,34),(5285,'Oyón-Oion',248,253,3,2),(5286,'Oza-Cesuras',20760,20775,3,7),(5287,'Pacs del Penedès',6646,6649,3,1),(5288,'Paderne',20776,20781,3,2),(5289,'Paderne de Allariz',30070,30077,3,3),(5290,'Padiernos',4134,4137,3,1),(5291,'Padilla de Abajo',8290,8293,3,1),(5292,'Padilla de Arriba',8294,8297,3,1),(5293,'Padrenda',30078,30091,3,6),(5294,'Padrón',20782,20795,3,6),(5295,'Padrones de Bureba',8298,8301,3,1),(5296,'Padul',15800,15803,3,1),(5297,'Padules',2118,2121,3,1),(5298,'Paiporta',40236,40239,3,1),(5299,'Pajarejos',34692,34695,3,1),(5300,'Pajares de Adaja',4138,4141,3,1),(5301,'Pajares de la Laguna',33398,33403,3,2),(5302,'Pajares de la Lampreana',42862,42865,3,1),(5303,'Pajares de los Oteros',22586,22595,3,4),(5304,'Pajarón',13572,13575,3,1),(5305,'Pajaroncillo',13576,13579,3,1),(5306,'Palacios de Goda',4142,4145,3,1),(5307,'Palacios de la Sierra',8302,8305,3,1),(5308,'Palacios de la Valduerna',22596,22601,3,2),(5309,'Palacios de Riopisuerga',8306,8309,3,1),(5310,'Palacios de Sanabria',42866,42873,3,3),(5311,'Palacios del Arzobispo',33404,33407,3,1),(5312,'Palacios del Pan',42874,42877,3,1),(5313,'Palacios del Sil',22602,22615,3,6),(5314,'Palaciosrubios',33408,33411,3,1),(5315,'Palafolls',6650,6653,3,1),(5316,'Palafrugell',14612,14625,3,6),(5317,'Palamós',14626,14631,3,2),(5318,'Palanques',11680,11683,3,1),(5319,'Palas de Rei',25508,25529,3,10),(5320,'Palau de Santa Eulàlia',14632,14635,3,1),(5321,'Palau-sator',14636,14639,3,1),(5322,'Palau-saverdera',14640,14643,3,1),(5323,'Palau-solità i Plegamans',6654,6657,3,1),(5324,'Palazuelo de Vedija',41130,41133,3,1),(5325,'Palazuelos de Eresma',34696,34699,3,1),(5326,'Palazuelos de la Sierra',8310,8313,3,1),(5327,'Palazuelos de Muñó',8314,8317,3,1),(5328,'Palencia',30902,30917,3,7),(5329,'Palencia de Negrilla',33412,33415,3,1),(5330,'Palenciana',12792,12795,3,1),(5331,'Palenzuela',30918,30921,3,1),(5332,'Pallejà',6658,6663,3,2),(5333,'Palma',5536,5583,3,23),(5334,'Palma de Gandía',40240,40243,3,1),(5335,'Palma del Río',12796,12805,3,4),(5336,'Pálmaces de Jadraque',16840,16843,3,1),(5337,'Palmera',40244,40247,3,1),(5338,'Palo',19098,19101,3,1),(5339,'Palol de Revardit',14644,14647,3,1),(5340,'Palomar de Arroyos',38172,38175,3,1),(5341,'Palomares del Campo',13580,13583,3,1),(5342,'Palomares del Río',35470,35473,3,1),(5343,'Palomas',5006,5009,3,1),(5344,'Palomeque',39114,39117,3,1),(5345,'Palomera',13584,13587,3,1),(5346,'Palomero',9782,9785,3,1),(5347,'Palos de la Frontera',18128,18137,3,4),(5348,'Pals',14648,14651,3,1),(5349,'Pampaneira',15804,15807,3,1),(5350,'Pampliega',8318,8325,3,3),(5351,'Pamplona/Iruña',29092,29123,3,15),(5352,'Pancorbo',8326,8329,3,1),(5353,'Pancrudo',38176,38181,3,2),(5354,'Paniza',44384,44387,3,1),(5355,'Panticosa',19102,19109,3,3),(5356,'Pantoja',39118,39121,3,1),(5357,'Pantón',25530,25551,3,10),(5358,'Papatrigo',4146,4149,3,1),(5359,'Paracuellos',13588,13593,3,2),(5360,'Paracuellos de Jarama',26562,26569,3,3),(5361,'Paracuellos de Jiloca',44388,44391,3,1),(5362,'Paracuellos de la Ribera',44392,44395,3,1),(5363,'Parada de Arriba',33416,33421,3,2),(5364,'Parada de Rubiales',33422,33425,3,1),(5365,'Parada de Sil',30092,30107,3,7),(5366,'Paradas',35474,35477,3,1),(5367,'Paradela',25552,25557,3,2),(5368,'Paradinas de San Juan',33426,33429,3,1),(5369,'Páramo de Boedo',30922,30925,3,1),(5370,'Páramo del Sil',22616,22629,3,6),(5371,'Parauta',27372,27375,3,1),(5372,'Parcent',1498,1501,3,1),(5373,'Pardilla',8330,8333,3,1),(5374,'Pardines',14652,14655,3,1),(5375,'Pardos',16844,16847,3,1),(5376,'Paredes',13594,13599,3,2),(5377,'Paredes de Escalona',39122,39125,3,1),(5378,'Paredes de Nava',30926,30929,3,1),(5379,'Paredes de Sigüenza',16848,16853,3,2),(5380,'Pareja',16854,16861,3,3),(5381,'Parets del Vallès',6664,6667,3,1),(5382,'Parla',26570,26581,3,5),(5383,'Parlavà',14656,14659,3,1),(5384,'Parres',3022,3041,3,9),(5385,'Parrillas',39126,39129,3,1),(5386,'Partaloa',2122,2125,3,1),(5387,'Partido de la Sierra en Tobalina',8334,8337,3,1),(5388,'Pasaia',17724,17727,3,1),(5389,'Pasarón de la Vera',9786,9789,3,1),(5390,'Pascualcobo',4150,4153,3,1),(5391,'Passanant i Belltall',37116,37121,3,2),(5392,'Pastores',33430,33433,3,1),(5393,'Pastrana',16862,16865,3,1),(5394,'Pastriz',44396,44399,3,1),(5395,'Paterna',40248,40257,3,4),(5396,'Paterna de Rivera',10396,10399,3,1),(5397,'Paterna del Campo',18138,18143,3,2),(5398,'Paterna del Madera',728,737,3,4),(5399,'Paterna del Río',2126,2131,3,2),(5400,'Patones',26582,26585,3,1),(5401,'Pau',14660,14663,3,1),(5402,'Paüls',37122,37125,3,1),(5403,'Pavías',11684,11687,3,1),(5404,'Paymogo',18144,18147,3,1),(5405,'Payo de Ojeda',30930,30933,3,1),(5406,'Pazos de Borbén',31886,31899,3,6),(5407,'Pazuengos',21596,21599,3,1),(5408,'Peal de Becerro',19880,19887,3,3),(5409,'Pechina',2132,2137,3,2),(5410,'Pedrafita do Cebreiro',25558,25567,3,4),(5411,'Pedrajas de San Esteban',41134,41137,3,1),(5412,'Pedralba',40258,40261,3,1),(5413,'Pedralba de la Pradería',42878,42883,3,2),(5414,'Pedraza',34700,34705,3,2),(5415,'Pedraza de Alba',33434,33437,3,1),(5416,'Pedraza de Campos',30934,30937,3,1),(5417,'Pedreguer',1502,1505,3,1),(5418,'Pedrera',35478,35481,3,1),(5419,'Pedret i Marzà',14664,14667,3,1),(5420,'Pedrezuela',26586,26589,3,1),(5421,'Pedro Abad',12806,12809,3,1),(5422,'Pedro Bernardo',4154,4157,3,1),(5423,'Pedro Martínez',15808,15811,3,1),(5424,'Pedro Muñoz',12242,12245,3,1),(5425,'Pedro-Rodríguez',4158,4161,3,1),(5426,'Pedroche',12810,12813,3,1),(5427,'Pedrola',44400,44403,3,1),(5428,'Pedrosa de Duero',8338,8343,3,2),(5429,'Pedrosa de la Vega',30938,30943,3,2),(5430,'Pedrosa de Río Úrbel',8344,8347,3,1),(5431,'Pedrosa del Páramo',8348,8351,3,1),(5432,'Pedrosa del Príncipe',8352,8355,3,1),(5433,'Pedrosa del Rey',41138,41141,3,1),(5434,'Pedrosillo de Alba',33438,33441,3,1),(5435,'Pedrosillo de los Aires',33442,33451,3,4),(5436,'Pedrosillo el Ralo',33452,33455,3,1),(5437,'Pedroso',21600,21603,3,1),(5438,'Pedroso de Acim',9790,9793,3,1),(5439,'Pegalajar',19888,19893,3,2),(5440,'Pego',1506,1511,3,2),(5441,'Peguerinos',4162,4165,3,1),(5442,'Pelabravo',33456,33459,3,1),(5443,'Pelahustán',39130,39133,3,1),(5444,'Pelarrodríguez',33460,33465,3,2),(5445,'Pelayos',33466,33471,3,2),(5446,'Pelayos de la Presa',26590,26593,3,1),(5447,'Pelayos del Arroyo',34706,34711,3,2),(5448,'Peleagonzalo',42884,42887,3,1),(5449,'Peleas de Abajo',42888,42891,3,1),(5450,'Peligros',15812,15815,3,1),(5451,'Peñacaballera',33472,33475,3,1),(5452,'Peñacerrada-Urizaharra',254,261,3,3),(5453,'Peñafiel',41142,41163,3,10),(5454,'Peñaflor',35482,35485,3,1),(5455,'Peñaflor de Hornija',41164,41167,3,1),(5456,'Penagos',10900,10903,3,1),(5457,'Penàguila',1512,1515,3,1),(5458,'Peñalba',19110,19113,3,1),(5459,'Peñalba de Ávila',4166,4169,3,1),(5460,'Peñalén',16866,16869,3,1),(5461,'Peñalsordo',5010,5013,3,1),(5462,'Peñalver',16870,16873,3,1),(5463,'Peñamellera Alta',3042,3049,3,3),(5464,'Peñamellera Baja',3050,3053,3,1),(5465,'Peñaparda',33476,33479,3,1),(5466,'Peñaranda de Bracamonte',33480,33483,3,1),(5467,'Peñaranda de Duero',8356,8361,3,2),(5468,'Peñarandilla',33484,33487,3,1),(5469,'Peñarroya de Tastavins',38182,38185,3,1),(5470,'Peñarroya-Pueblonuevo',12814,12817,3,1),(5471,'Peñarrubia',10904,10907,3,1),(5472,'Peñas de San Pedro',738,745,3,3),(5473,'Peñascosa',746,753,3,3),(5474,'Peñausende',42892,42899,3,3),(5475,'Penelles',24312,24321,3,4),(5476,'Peníscola/Peñíscola',11688,11691,3,1),(5477,'Pepino',39134,39137,3,1),(5478,'Peque',42900,42903,3,1),(5479,'Peracense',38186,38189,3,1),(5480,'Perafita',6668,6671,3,1),(5481,'Perafort',37126,37131,3,2),(5482,'Peral de Arlanza',8362,8365,3,1),(5483,'Peralada',14668,14673,3,2),(5484,'Peraleda de la Mata',9794,9797,3,1),(5485,'Peraleda de San Román',9798,9801,3,1),(5486,'Peraleda del Zaucejo',5014,5017,3,1),(5487,'Peralejos',38190,38193,3,1),(5488,'Peralejos de Abajo',33488,33491,3,1),(5489,'Peralejos de Arriba',33492,33495,3,1),(5490,'Peralejos de las Truchas',16874,16877,3,1),(5491,'Perales',30944,30949,3,2),(5492,'Perales de Tajuña',26594,26597,3,1),(5493,'Perales del Alfambra',38194,38199,3,2),(5494,'Perales del Puerto',9802,9805,3,1),(5495,'Peralta de Alcofea',19114,19121,3,3),(5496,'Peralta de Calasanz',19122,19129,3,3),(5497,'Peralta/Azkoien',29124,29127,3,1),(5498,'Peraltilla',19130,19133,3,1),(5499,'Peralveche',16878,16881,3,1),(5500,'Peramola',24322,24325,3,1),(5501,'Peranzanes',22630,22633,3,1),(5502,'Perarrúa',19134,19137,3,1),(5503,'Perdiguera',44404,44407,3,1),(5504,'Pereña de la Ribera',33496,33499,3,1),(5505,'Pereruela',42904,42923,3,9),(5506,'Periana',27376,27379,3,1),(5507,'Perilla de Castro',42924,42927,3,1),(5508,'Peromingo',33500,33503,3,1),(5509,'Perosillo',34712,34715,3,1),(5510,'Pertusa',19138,19141,3,1),(5511,'Pesaguero',10908,10913,3,2),(5512,'Pescueza',9806,9809,3,1),(5513,'Pesoz',3054,3061,3,3),(5514,'Pesquera',10914,10917,3,1),(5515,'Pesquera de Duero',41168,41171,3,1),(5516,'Petilla de Aragón',29128,29131,3,1),(5517,'Petín',30108,30117,3,4),(5518,'Petra',5584,5587,3,1),(5519,'Petrer',1516,1519,3,1),(5520,'Petrés',40262,40265,3,1),(5521,'Pétrola',754,757,3,1),(5522,'Pezuela de las Torres',26598,26601,3,1),(5523,'Pías',42928,42933,3,2),(5524,'Picanya',40266,40269,3,1),(5525,'Picasent',40270,40275,3,2),(5526,'Picón',12246,12249,3,1),(5527,'Piedrabuena',12250,12255,3,2),(5528,'Piedrahíta',4170,4175,3,2),(5529,'Piedrahita de Castro',42934,42937,3,1),(5530,'Piedralaves',4176,4181,3,2),(5531,'Piedramillera',29132,29135,3,1),(5532,'Piedras Albas',9810,9813,3,1),(5533,'Piedratajada',44408,44411,3,1),(5534,'Piélagos',10918,10931,3,6),(5535,'Piera',6672,6675,3,1),(5536,'Piérnigas',8366,8369,3,1),(5537,'Pilar de la Horadada',1520,1525,3,2),(5538,'Pilas',35486,35489,3,1),(5539,'Piles',40276,40279,3,1),(5540,'Piloña',3062,3081,3,9),(5541,'Piña de Campos',30950,30953,3,1),(5542,'Pina de Ebro',44412,44415,3,1),(5543,'Piña de Esgueva',41172,41175,3,1),(5544,'Pina de Montalgrao',11692,11695,3,1),(5545,'Píñar',15816,15821,3,2),(5546,'Pinarejo',13600,13603,3,1),(5547,'Pinarejos',34716,34719,3,1),(5548,'Pinarnegrillo',34720,34723,3,1),(5549,'Pineda de Gigüela',13604,13607,3,1),(5550,'Pineda de la Sierra',8370,8373,3,1),(5551,'Pineda de Mar',6676,6679,3,1),(5552,'Pineda Trasmonte',8374,8377,3,1),(5553,'Pinedas',33504,33507,3,1),(5554,'Piñel de Abajo',41176,41179,3,1),(5555,'Piñel de Arriba',41180,41183,3,1),(5556,'Pinell de Solsonès',24326,24329,3,1),(5557,'Pinet',40280,40283,3,1),(5558,'Pinilla de Jadraque',16882,16885,3,1),(5559,'Pinilla de los Barruecos',8378,8381,3,1),(5560,'Pinilla de los Moros',8382,8385,3,1),(5561,'Pinilla de Molina',16886,16889,3,1),(5562,'Pinilla de Toro',42938,42941,3,1),(5563,'Pinilla del Campo',36242,36245,3,1),(5564,'Pinilla del Valle',26602,26605,3,1),(5565,'Pinilla Trasmonte',8386,8389,3,1),(5566,'Pinillos',21604,21607,3,1),(5567,'Pino del Oro',42942,42945,3,1),(5568,'Pino del Río',30954,30959,3,2),(5569,'Pinofranqueado',9814,9821,3,3),(5570,'Piñor',30118,30125,3,3),(5571,'Pinós',24330,24333,3,1),(5572,'Pinos Genil',15822,15825,3,1),(5573,'Pinos Puente',15826,15835,3,4),(5574,'Pinseque',44416,44419,3,1),(5575,'Pinto',26606,26609,3,1),(5576,'Piñuécar-Gandullas',26610,26613,3,1),(5577,'Piornal',9822,9825,3,1),(5578,'Pioz',16890,16895,3,2),(5579,'Piqueras',16896,16899,3,1),(5580,'Piqueras del Castillo',13608,13611,3,1),(5581,'Pira',37132,37135,3,1),(5582,'Piracés',19142,19145,3,1),(5583,'Pitarque',38200,38203,3,1),(5584,'Pitiegua',33508,33511,3,1),(5585,'Pitillas',29136,29139,3,1),(5586,'Pizarra',27380,27387,3,3),(5587,'Pizarral',33512,33515,3,1),(5588,'Plan',19146,19151,3,2),(5589,'Planes',1526,1529,3,1),(5590,'Planoles',14674,14677,3,1),(5591,'Plasencia',9826,9833,3,3),(5592,'Plasencia de Jalón',44420,44423,3,1),(5593,'Plasenzuela',9834,9837,3,1),(5594,'Pleitas',44424,44427,3,1),(5595,'Plenas',44428,44431,3,1),(5596,'Plentzia',42112,42115,3,1),(5597,'Pliego',28010,28015,3,2),(5598,'Plou',38204,38207,3,1),(5599,'Población de Arroyo',30960,30963,3,1),(5600,'Población de Campos',30964,30967,3,1),(5601,'Población de Cerrato',30968,30971,3,1),(5602,'Pobladura de Pelayo García',22634,22637,3,1),(5603,'Pobladura de Valderaduey',42946,42949,3,1),(5604,'Pobladura del Valle',42950,42953,3,1),(5605,'Poblete',12256,12259,3,1),(5606,'Poboleda',37136,37139,3,1),(5607,'Poio',31900,31911,3,5),(5608,'Pol',25568,25587,3,9),(5609,'Polaciones',10932,10937,3,2),(5610,'Polán',39138,39141,3,1),(5611,'Polanco',10938,10943,3,2),(5612,'Poleñino',19152,19155,3,1),(5613,'Polentinos',30972,30975,3,1),(5614,'Polícar',15836,15839,3,1),(5615,'Poliñá de Júcar',40284,40287,3,1),(5616,'Polinyà',6680,6683,3,1),(5617,'Pollença',5588,5595,3,3),(5618,'Pollos',41184,41187,3,1),(5619,'Polop',1530,1533,3,1),(5620,'Polopos',15840,15845,3,2),(5621,'Pomar de Valdivia',30976,30985,3,4),(5622,'Pomer',44432,44435,3,1),(5623,'Ponferrada',22638,22669,3,15),(5624,'Ponga',3082,3087,3,2),(5625,'Pont de Molins',14678,14681,3,1),(5626,'Ponte Caldelas',31912,31927,3,7),(5627,'Ponteareas',31928,31959,3,15),(5628,'Ponteceso',20796,20801,3,2),(5629,'Pontecesures',31960,31965,3,2),(5630,'Pontedeume',20802,20813,3,5),(5631,'Pontedeva',30126,30129,3,1),(5632,'Pontevedra',31966,32009,3,21),(5633,'Pontils',37140,37143,3,1),(5634,'Pontons',6684,6687,3,1),(5635,'Pontós',14682,14685,3,1),(5636,'Ponts',24334,24341,3,3),(5637,'Porcuna',19894,19897,3,1),(5638,'Porqueira',30130,30139,3,4),(5639,'Porqueres',14686,14691,3,2),(5640,'Porrera',37144,37147,3,1),(5641,'Porreres',5596,5599,3,1),(5642,'Portaje',9838,9841,3,1),(5643,'Portalrubio de Guadamejud',13612,13615,3,1),(5644,'Portas',32010,32017,3,3),(5645,'Portbou',14692,14695,3,1),(5646,'Portell de Morella',11696,11699,3,1),(5647,'Portezuelo',9842,9845,3,1),(5648,'Portilla',13616,13619,3,1),(5649,'Portillo',41188,41191,3,1),(5650,'Portillo de Soria',36246,36249,3,1),(5651,'Portillo de Toledo',39142,39145,3,1),(5652,'Porto',42954,42973,3,9),(5653,'Porto do Son',20814,20833,3,9),(5654,'Portomarín',25588,25607,3,9),(5655,'Portugalete',42116,42119,3,1),(5656,'Pórtugos',15846,15849,3,1),(5657,'Porzuna',12260,12269,3,4),(5658,'Posada de Valdeón',22670,22675,3,2),(5659,'Posadas',12818,12823,3,2),(5660,'Potes',10944,10947,3,1),(5661,'Potries',40288,40291,3,1),(5662,'Poveda',4182,4185,3,1),(5663,'Poveda de la Sierra',16900,16903,3,1),(5664,'Poveda de las Cintas',33516,33519,3,1),(5665,'Povedilla',758,761,3,1),(5666,'Poyales del Hoyo',4186,4189,3,1),(5667,'Poyatos',13620,13623,3,1),(5668,'Poza de la Sal',8390,8395,3,2),(5669,'Poza de la Vega',30986,30989,3,1),(5670,'Pozal de Gallinas',41192,41195,3,1),(5671,'Pozaldez',41196,41199,3,1),(5672,'Pozalmuro',36250,36253,3,1),(5673,'Pozán de Vero',19156,19159,3,1),(5674,'Pozanco',4190,4193,3,1),(5675,'Pozo Alcón',19898,19903,3,2),(5676,'Pozo Cañada',762,767,3,2),(5677,'Pozo de Almoguera',16904,16907,3,1),(5678,'Pozo de Guadalajara',16908,16913,3,2),(5679,'Pozo de Urama',30990,30993,3,1),(5680,'Pozo-Lorente',768,771,3,1),(5681,'Pozoamargo',13624,13627,3,1),(5682,'Pozoantiguo',42974,42977,3,1),(5683,'Pozoblanco',12824,12827,3,1),(5684,'Pozohondo',772,779,3,3),(5685,'Pozondón',38208,38211,3,1),(5686,'Pozorrubielos de la Mancha',13628,13631,3,1),(5687,'Pozorrubio de Santiago',13632,13635,3,1),(5688,'Pozos de Hinojo',33520,33523,3,1),(5689,'Pozuel de Ariza',44436,44439,3,1),(5690,'Pozuel del Campo',38212,38215,3,1),(5691,'Pozuelo',780,783,3,1),(5692,'Pozuelo de Alarcón',26614,26619,3,2),(5693,'Pozuelo de Aragón',44440,44443,3,1),(5694,'Pozuelo de Calatrava',12270,12273,3,1),(5695,'Pozuelo de la Orden',41200,41203,3,1),(5696,'Pozuelo de Tábara',42978,42981,3,1),(5697,'Pozuelo de Zarzón',9846,9849,3,1),(5698,'Pozuelo del Páramo',22676,22681,3,2),(5699,'Pozuelo del Rey',26620,26623,3,1),(5700,'Prádanos de Bureba',8396,8399,3,1),(5701,'Prádanos de Ojeda',30994,30997,3,1),(5702,'Pradejón',21608,21611,3,1),(5703,'Pradell de la Teixeta',37148,37151,3,1),(5704,'Prádena',34724,34729,3,2),(5705,'Prádena de Atienza',16914,16919,3,2),(5706,'Prádena del Rincón',26624,26627,3,1),(5707,'Prades',37152,37155,3,1),(5708,'Pradilla de Ebro',44444,44449,3,2),(5709,'Pradillo',21612,21615,3,1),(5710,'Prado',42982,42985,3,1),(5711,'Prado de la Guzpeña',22682,22685,3,1),(5712,'Prado del Rey',10400,10403,3,1),(5713,'Pradoluengo',8400,8405,3,2),(5714,'Prados Redondos',16920,16929,3,4),(5715,'Pradosegar',4194,4197,3,1),(5716,'Prat de Comte',37156,37159,3,1),(5717,'Pratdip',37160,37165,3,2),(5718,'Prats de Lluçanès',6688,6691,3,1),(5719,'Prats i Sansor',24342,24345,3,1),(5720,'Pravia',3088,3097,3,4),(5721,'Preixana',24346,24349,3,1),(5722,'Preixens',24350,24353,3,1),(5723,'Préjano',21616,21619,3,1),(5724,'Premià de Dalt',6692,6695,3,1),(5725,'Premià de Mar',6696,6699,3,1),(5726,'Presencio',8406,8409,3,1),(5727,'Priaranza del Bierzo',22686,22695,3,4),(5728,'Priego',13636,13639,3,1),(5729,'Priego de Córdoba',12828,12841,3,6),(5730,'Prioro',22696,22699,3,1),(5731,'Proaza',3098,3105,3,3),(5732,'Prullans',24354,24357,3,1),(5733,'Pruna',35490,35493,3,1),(5734,'Puçol',40292,40295,3,1),(5735,'Puebla de Albortón',44450,44453,3,1),(5736,'Puebla de Alcocer',5018,5021,3,1),(5737,'Puebla de Almenara',13640,13643,3,1),(5738,'Puebla de Arenoso',11700,11703,3,1),(5739,'Puebla de Azaba',33524,33529,3,2),(5740,'Puebla de Beleña',16930,16933,3,1),(5741,'Puebla de Don Fadrique',15850,15853,3,1),(5742,'Puebla de Don Rodrigo',12274,12277,3,1),(5743,'Puebla de Farnals',40296,40301,3,2),(5744,'Puebla de Guzmán',18148,18153,3,2),(5745,'Puebla de la Calzada',5022,5025,3,1),(5746,'Puebla de la Reina',5026,5029,3,1),(5747,'Puebla de la Sierra',26628,26631,3,1),(5748,'Puebla de Lillo',22700,22705,3,2),(5749,'Puebla de Obando',5030,5033,3,1),(5750,'Puebla de Pedraza',34730,34733,3,1),(5751,'Puebla de San Medel',33530,33533,3,1),(5752,'Puebla de San Miguel',40302,40305,3,1),(5753,'Puebla de Sanabria',42986,42993,3,3),(5754,'Puebla de Sancho Pérez',5034,5039,3,2),(5755,'Puebla de Vallbona',40306,40309,3,1),(5756,'Puebla de Valles',16934,16937,3,1),(5757,'Puebla de Yeltes',33534,33537,3,1),(5758,'Puebla del Duc',40310,40313,3,1),(5759,'Puebla del Maestre',5040,5043,3,1),(5760,'Puebla del Príncipe',12278,12281,3,1),(5761,'Puebla del Prior',5044,5047,3,1),(5762,'Puebla del Salvador',13644,13647,3,1),(5763,'Puebla Larga',40314,40317,3,1),(5764,'Pueblica de Valverde',42994,42999,3,2),(5765,'Pueblonuevo de Miramontes',9850,9851,3,0),(5766,'Pueblonuevo del Guadiana',5048,5051,3,1),(5767,'Puendeluna',44454,44457,3,1),(5768,'Puente de Domingo Flórez',22706,22719,3,6),(5769,'Puente de Génave',19904,19909,3,2),(5770,'Puente de Montañana',19160,19163,3,1),(5771,'Puente del Congosto',33538,33543,3,2),(5772,'Puente Genil',12842,12847,3,2),(5773,'Puente la Reina de Jaca',19164,19171,3,3),(5774,'Puente la Reina/Gares',29140,29143,3,1),(5775,'Puente Viesgo',10948,10953,3,2),(5776,'Puentedura',8410,8413,3,1),(5777,'Puentes Viejas',26632,26639,3,3),(5778,'Puertas',33544,33547,3,1),(5779,'Puerto Castilla',4198,4201,3,1),(5780,'Puerto de Béjar',33548,33553,3,2),(5781,'Puerto de San Vicente',39146,39149,3,1),(5782,'Puerto de Santa Cruz',9852,9855,3,1),(5783,'Puerto Lápice',12282,12285,3,1),(5784,'Puerto Lumbreras',28016,28021,3,2),(5785,'Puerto Moral',18154,18157,3,1),(5786,'Puerto Real',10404,10411,3,3),(5787,'Puerto Seguro',33554,33557,3,1),(5788,'Puerto Serrano',10412,10417,3,2),(5789,'Puértolas',19172,19177,3,2),(5790,'Puertollano',12286,12291,3,2),(5791,'Puertomingalvo',38216,38219,3,1),(5792,'Pueyo',29144,29147,3,1),(5793,'Pueyo de Santa Cruz',19178,19181,3,1),(5794,'Puig-reig',6700,6703,3,1),(5795,'Puigcerdà',14696,14701,3,2),(5796,'Puigdàlber',6704,6707,3,1),(5797,'Puiggròs',24358,24361,3,1),(5798,'Puigpelat',37166,37169,3,1),(5799,'Puigpunyent',5600,5605,3,2),(5800,'Puigverd d\'Agramunt',24362,24365,3,1),(5801,'Puigverd de Lleida',24366,24369,3,1),(5802,'Pujalt',6708,6711,3,1),(5803,'Pujerra',27388,27391,3,1),(5804,'Pulgar',39150,39153,3,1),(5805,'Pulianas',15854,15859,3,2),(5806,'Pulpí',2138,2147,3,4),(5807,'Punta Umbría',18158,18165,3,3),(5808,'Punxín',30140,30151,3,5),(5809,'Puras',41204,41207,3,1),(5810,'Purchena',2148,2151,3,1),(5811,'Purujosa',44458,44461,3,1),(5812,'Purullena',15860,15865,3,2),(5813,'Quart',14702,14707,3,2),(5814,'Quatretondeta',1534,1537,3,1),(5815,'Quel',21620,21623,3,1),(5816,'Quemada',8414,8417,3,1),(5817,'Quéntar',15866,15871,3,2),(5818,'Quer',16938,16941,3,1),(5819,'Queralbs',14708,14711,3,1),(5820,'Quero',39154,39157,3,1),(5821,'Querol',37170,37175,3,2),(5822,'Quesa',40318,40321,3,1),(5823,'Quesada',19910,19917,3,3),(5824,'Quicena',19182,19185,3,1),(5825,'Quijorna',26640,26643,3,1),(5826,'Quiñonería',36254,36257,3,1),(5827,'Quintana de la Serena',5052,5055,3,1),(5828,'Quintana del Castillo',22720,22725,3,2),(5829,'Quintana del Marco',22726,22731,3,2),(5830,'Quintana del Pidio',8418,8421,3,1),(5831,'Quintana del Puente',30998,31001,3,1),(5832,'Quintana Redonda',36258,36267,3,4),(5833,'Quintana y Congosto',22732,22737,3,2),(5834,'Quintanabureba',8422,8425,3,1),(5835,'Quintanaélez',8426,8429,3,1),(5836,'Quintanaortuño',8430,8433,3,1),(5837,'Quintanapalla',8434,8437,3,1),(5838,'Quintanar de la Orden',39158,39163,3,2),(5839,'Quintanar de la Sierra',8438,8441,3,1),(5840,'Quintanar del Rey',13648,13651,3,1),(5841,'Quintanas de Gormaz',36268,36271,3,1),(5842,'Quintanavides',8442,8445,3,1),(5843,'Quintanilla de Arriba',41208,41211,3,1),(5844,'Quintanilla de la Mata',8446,8449,3,1),(5845,'Quintanilla de Onésimo',41212,41215,3,1),(5846,'Quintanilla de Onsoña',31002,31007,3,2),(5847,'Quintanilla de Trigueros',41216,41219,3,1),(5848,'Quintanilla de Urz',43000,43003,3,1),(5849,'Quintanilla del Agua y Tordueles',8450,8453,3,1),(5850,'Quintanilla del Coco',8454,8457,3,1),(5851,'Quintanilla del Molar',41220,41223,3,1),(5852,'Quintanilla del Monte',43004,43007,3,1),(5853,'Quintanilla del Olmo',43008,43011,3,1),(5854,'Quintanilla San García',8458,8461,3,1),(5855,'Quintanilla Vivar',8462,8465,3,1),(5856,'Quintela de Leirado',30152,30155,3,1),(5857,'Quinto',44462,44465,3,1),(5858,'Quiroga',25608,25619,3,5),(5859,'Quirós',3106,3115,3,4),(5860,'Quiruelas de Vidriales',43012,43017,3,2),(5861,'Quismondo',39164,39167,3,1),(5862,'Rábade',25620,25623,3,1),(5863,'Rabanales',43018,43023,3,2),(5864,'Rabanera',21624,21627,3,1),(5865,'Rabanera del Pinar',8466,8469,3,1),(5866,'Rábano',41224,41227,3,1),(5867,'Rábano de Aliste',43024,43031,3,3),(5868,'Rábanos',8470,8477,3,3),(5869,'Rabé de las Calzadas',8478,8481,3,1),(5870,'Rabós',14712,14717,3,2),(5871,'Rada de Haro',13652,13655,3,1),(5872,'Rafal',1538,1541,3,1),(5873,'Ráfales',38220,38223,3,1),(5874,'Rafelbuñol',40322,40325,3,1),(5875,'Rafelcofer',40326,40329,3,1),(5876,'Rafelguaraf',40330,40333,3,1),(5877,'Ráfol de Salem',40334,40337,3,1),(5878,'Rágama',33558,33561,3,1),(5879,'Rágol',2152,2155,3,1),(5880,'Rairiz de Veiga',30156,30165,3,4),(5881,'Rajadell',6712,6715,3,1),(5882,'Ramales de la Victoria',10954,10965,3,5),(5883,'Ramirás',30166,30173,3,3),(5884,'Ramiro',41228,41231,3,1),(5885,'Rapariegos',34734,34737,3,1),(5886,'Rascafría',26644,26649,3,2),(5887,'Rasines',10966,10969,3,1),(5888,'Rasquera',37176,37179,3,1),(5889,'Rasueros',4202,4205,3,1),(5890,'Real',40338,40341,3,1),(5891,'Real Sitio de San Ildefonso',34738,34745,3,3),(5892,'Rebollar',36272,36275,3,1),(5893,'Rebollar',9856,9857,3,0),(5894,'Rebolledo de la Torre',8482,8485,3,1),(5895,'Rebollo',34746,34749,3,1),(5896,'Rebollosa de Jadraque',16942,16945,3,1),(5897,'Recas',39168,39171,3,1),(5898,'Recuerda',36276,36283,3,3),(5899,'Redecilla del Camino',8486,8489,3,1),(5900,'Redecilla del Campo',8490,8495,3,2),(5901,'Redondela',32018,32043,3,12),(5902,'Redován',1542,1545,3,1),(5903,'Redueña',26650,26653,3,1),(5904,'Regencós',14718,14721,3,1),(5905,'Regueras de Arriba',22738,22741,3,1),(5906,'Regumiel de la Sierra',8496,8499,3,1),(5907,'Reíllo',13656,13659,3,1),(5908,'Reina',5056,5059,3,1),(5909,'Reinosa',10970,10973,3,1),(5910,'Reinoso',8500,8503,3,1),(5911,'Reinoso de Cerrato',31008,31011,3,1),(5912,'Relleu',1546,1549,3,1),(5913,'Rellinars',6716,6719,3,1),(5914,'Rello',36284,36287,3,1),(5915,'Remolinos',44466,44469,3,1),(5916,'Remondo',34750,34753,3,1),(5917,'Rena',5060,5063,3,1),(5918,'Renau',37180,37183,3,1),(5919,'Renedo de Esgueva',41232,41235,3,1),(5920,'Renedo de la Vega',31012,31015,3,1),(5921,'Renera',16946,16949,3,1),(5922,'Renieblas',36288,36293,3,2),(5923,'Reocín',10974,10985,3,5),(5924,'Requejo',43032,43035,3,1),(5925,'Requena',40342,40365,3,11),(5926,'Requena de Campos',31016,31019,3,1),(5927,'Respenda de la Peña',31020,31027,3,3),(5928,'Retamal de Llerena',5064,5067,3,1),(5929,'Retamoso de la Jara',39172,39175,3,1),(5930,'Retascón',44470,44473,3,1),(5931,'Retiendas',16950,16955,3,2),(5932,'Retortillo',33562,33567,3,2),(5933,'Retortillo de Soria',36294,36301,3,3),(5934,'Retuerta',8504,8507,3,1),(5935,'Retuerta del Bullaque',12292,12295,3,1),(5936,'Reus',37184,37197,3,6),(5937,'Revellinos',43036,43039,3,1),(5938,'Revenga de Campos',31028,31031,3,1),(5939,'Revilla de Collazos',31032,31035,3,1),(5940,'Revilla del Campo',8508,8513,3,2),(5941,'Revilla Vallejera',8514,8517,3,1),(5942,'Revillarruz',8518,8521,3,1),(5943,'Reyero',22742,22745,3,1),(5944,'Rezmondo',8522,8525,3,1),(5945,'Reznos',36302,36305,3,1),(5946,'Riaguas de San Bartolomé',34754,34757,3,1),(5947,'Rialp',24370,24373,3,1),(5948,'Riaño',22746,22751,3,2),(5949,'Rianxo',20834,20845,3,5),(5950,'Riaza',34758,34769,3,5),(5951,'Riba de Saelices',16956,16959,3,1),(5952,'Riba-roja d\'Ebre',37198,37201,3,1),(5953,'Ribadavia',30174,30189,3,7),(5954,'Ribadedeva',3116,3121,3,2),(5955,'Ribadeo',25624,25643,3,9),(5956,'Ribadesella',3122,3141,3,9),(5957,'Ribadumia',32044,32051,3,3),(5958,'Ribaforada',29148,29151,3,1),(5959,'Ribafrecha',21628,21631,3,1),(5960,'Ribamontán al Mar',10986,10995,3,4),(5961,'Ribamontán al Monte',10996,11001,3,2),(5962,'Ribarroja del Turia',40366,40371,3,2),(5963,'Ribas de Campos',31036,31039,3,1),(5964,'Ribas de Sil',25644,25651,3,3),(5965,'Ribatejada',26654,26657,3,1),(5966,'Ribeira',20846,20865,3,9),(5967,'Ribeira de Piquín',25652,25659,3,3),(5968,'Ribera Baja/Erribera Beitia',262,267,3,2),(5969,'Ribera d\'Ondara',24374,24379,3,2),(5970,'Ribera d\'Urgellet',24380,24391,3,5),(5971,'Ribera de Arriba',3142,3153,3,5),(5972,'Ribera del Fresno',5068,5071,3,1),(5973,'Riberos de la Cueza',31040,31043,3,1),(5974,'Ribes de Freser',14722,14725,3,1),(5975,'Ribesalbes',11704,11707,3,1),(5976,'Ribota',34770,34773,3,1),(5977,'Ricla',44474,44479,3,2),(5978,'Ricote',28022,28025,3,1),(5979,'Riego de la Vega',22752,22759,3,3),(5980,'Riello',22760,22773,3,6),(5981,'Riells i Viabrea',14726,14729,3,1),(5982,'Rielves',39176,39179,3,1),(5983,'Rillo',38224,38229,3,2),(5984,'Rillo de Gallo',16960,16963,3,1),(5985,'Rincón de la Victoria',27392,27399,3,3),(5986,'Rincón de Soto',21632,21635,3,1),(5987,'Riner',24392,24397,3,2),(5988,'Riocabado',4206,4211,3,2),(5989,'Riocavado de la Sierra',8526,8529,3,1),(5990,'Riodeva',38230,38233,3,1),(5991,'Riofrío',4212,4215,3,1),(5992,'Riofrío de Aliste',43040,43045,3,2),(5993,'Riofrío de Riaza',34774,34777,3,1),(5994,'Riofrío del Llano',16964,16967,3,1),(5995,'Riogordo',27400,27403,3,1),(5996,'Rioja',2156,2159,3,1),(5997,'Riola',40372,40375,3,1),(5998,'Riolobos',9858,9863,3,2),(5999,'Rionansa',11002,11009,3,3),(6000,'Rionegro del Puente',43046,43053,3,3),(6001,'Riópar',784,791,3,3),(6002,'Riós',30190,30197,3,3),(6003,'Riosa',3154,3157,3,1),(6004,'Rioseco de Soria',36306,36309,3,1),(6005,'Rioseco de Tapia',22774,22779,3,2),(6006,'Riotorto',25660,25667,3,3),(6007,'Riotuerto',11010,11015,3,2),(6008,'Ripoll',14730,14733,3,1),(6009,'Ripollet',6720,6723,3,1),(6010,'Risco',5072,5075,3,1),(6011,'Riu de Cerdanya',24398,24401,3,1),(6012,'Riudarenes',14734,14737,3,1),(6013,'Riudaura',14738,14741,3,1),(6014,'Riudecanyes',37202,37205,3,1),(6015,'Riudecols',37206,37209,3,1),(6016,'Riudellots de la Selva',14742,14745,3,1),(6017,'Riudoms',37210,37213,3,1),(6018,'Riumors',14746,14749,3,1),(6019,'Rivas-Vaciamadrid',26658,26669,3,5),(6020,'Rivilla de Barajas',4216,4219,3,1),(6021,'Roa',8530,8533,3,1),(6022,'Roales',43054,43057,3,1),(6023,'Roales de Campos',41236,41239,3,1),(6024,'Robladillo',41240,41243,3,1),(6025,'Robleda',33568,33571,3,1),(6026,'Robleda-Cervantes',43058,43067,3,4),(6027,'Robledillo de Gata',9864,9867,3,1),(6028,'Robledillo de la Jara',26670,26673,3,1),(6029,'Robledillo de la Vera',9868,9871,3,1),(6030,'Robledillo de Mohernando',16968,16971,3,1),(6031,'Robledillo de Trujillo',9872,9877,3,2),(6032,'Robledo',792,799,3,3),(6033,'Robledo de Chavela',26674,26677,3,1),(6034,'Robledo de Corpes',16972,16975,3,1),(6035,'Robledo del Mazo',39180,39191,3,5),(6036,'Robledollano',9878,9881,3,1),(6037,'Robliza de Cojos',33572,33577,3,2),(6038,'Robregordo',26678,26681,3,1),(6039,'Robres',19186,19189,3,1),(6040,'Robres del Castillo',21636,21639,3,1),(6041,'Rocafort',40376,40379,3,1),(6042,'Rocafort de Queralt',37214,37217,3,1),(6043,'Rociana del Condado',18166,18169,3,1),(6044,'Roda de Berà',37218,37221,3,1),(6045,'Roda de Eresma',34778,34781,3,1),(6046,'Roda de Ter',6724,6727,3,1),(6047,'Rodeiro',32052,32063,3,5),(6048,'Ródenas',38234,38237,3,1),(6049,'Rodezno',21640,21645,3,2),(6050,'Rodonyà',37222,37225,3,1),(6051,'Roelos de Sayago',43068,43071,3,1),(6052,'Rois',20866,20879,3,6),(6053,'Rojales',1550,1553,3,1),(6054,'Rojas',8534,8537,3,1),(6055,'Rollamienta',36310,36313,3,1),(6056,'Rollán',33578,33581,3,1),(6057,'Romangordo',9882,9885,3,1),(6058,'Romanillos de Atienza',16976,16979,3,1),(6059,'Romanones',16980,16983,3,1),(6060,'Romanos',44480,44483,3,1),(6061,'Romanzado',29152,29155,3,1),(6062,'Roncal/Erronkari',29156,29159,3,1),(6063,'Ronda',27404,27413,3,4),(6064,'Roperuelos del Páramo',22780,22785,3,2),(6065,'Roquetas de Mar',2160,2169,3,4),(6066,'Roquetes',37226,37231,3,2),(6067,'Rosal de la Frontera',18170,18173,3,1),(6068,'Rosalejo',9886,9889,3,1),(6069,'Roses',14750,14753,3,1),(6070,'Rosinos de la Requejada',43072,43083,3,5),(6071,'Rossell',11708,11715,3,3),(6072,'Rosselló',24402,24405,3,1),(6073,'Rota',10418,10421,3,1),(6074,'Rotglá y Corbera',40380,40383,3,1),(6075,'Rótova',40384,40387,3,1),(6076,'Roturas',41244,41247,3,1),(6077,'Royuela',38238,38241,3,1),(6078,'Royuela de Río Franco',8538,8543,3,2),(6079,'Rozalén del Monte',13660,13665,3,2),(6080,'Rozas de Puerto Real',26682,26685,3,1),(6081,'Ruanes',9890,9893,3,1),(6082,'Rubena',8544,8547,3,1),(6083,'Rubí',6728,6733,3,2),(6084,'Rubí de Bracamonte',41248,41251,3,1),(6085,'Rubiá',30198,30209,3,5),(6086,'Rubiales',38242,38245,3,1),(6087,'Rubielos de la Cérida',38246,38249,3,1),(6088,'Rubielos de Mora',38250,38253,3,1),(6089,'Rubió',6734,6737,3,1),(6090,'Rubite',15872,15875,3,1),(6091,'Rublacedo de Abajo',8548,8551,3,1),(6092,'Rucandio',8552,8555,3,1),(6093,'Rueda',41252,41259,3,3),(6094,'Rueda de Jalón',44484,44487,3,1),(6095,'Rueda de la Sierra',16984,16987,3,1),(6096,'Ruente',11016,11021,3,2),(6097,'Ruesca',44488,44491,3,1),(6098,'Ruesga',11022,11029,3,3),(6099,'Rugat',40388,40391,3,1),(6100,'Ruidera',12296,12299,3,1),(6101,'Ruiloba',11030,11033,3,1),(6102,'Rupià',14754,14757,3,1),(6103,'Rupit i Pruit',6738,6741,3,1),(6104,'Rus',19918,19923,3,2),(6105,'Rute',12848,12853,3,2),(6106,'Sa Pobla',5606,5609,3,1),(6107,'Sabadell',6742,6759,3,8),(6108,'Sabero',22786,22797,3,5),(6109,'Sabiñán',44492,44495,3,1),(6110,'Sabiñánigo',19190,19219,3,14),(6111,'Sabiote',19924,19927,3,1),(6112,'Sacañet',11716,11719,3,1),(6113,'Sacecorbo',16988,16991,3,1),(6114,'Saceda-Trasierra',13666,13669,3,1),(6115,'Sacedón',16992,16999,3,3),(6116,'Saceruela',12300,12303,3,1),(6117,'Sacramenia',34782,34785,3,1),(6118,'Sada',20880,20887,3,3),(6119,'Sada',29160,29161,3,0),(6120,'Sádaba',44496,44501,3,2),(6121,'Saelices',13670,13673,3,1),(6122,'Saelices de la Sal',17000,17003,3,1),(6123,'Saelices de Mayorga',41260,41263,3,1),(6124,'Saelices el Chico',33582,33585,3,1),(6125,'Sagàs',6760,6763,3,1),(6126,'Sagra',1554,1557,3,1),(6127,'Sagunto/Sagunt',40392,40401,3,4),(6128,'Sahagún',22798,22807,3,4),(6129,'Sahún',19220,19227,3,3),(6130,'Sajazarra',21646,21649,3,1),(6131,'Salamanca',33586,33605,3,9),(6132,'Salar',15876,15879,3,1),(6133,'Salares',27414,27417,3,1),(6134,'Salas',3158,3189,3,15),(6135,'Salas Altas',19228,19233,3,2),(6136,'Salas Bajas',19234,19237,3,1),(6137,'Salas de Bureba',8556,8559,3,1),(6138,'Salas de los Infantes',8560,8567,3,3),(6139,'Salàs de Pallars',24406,24409,3,1),(6140,'Salce',43084,43087,3,1),(6141,'Salceda de Caselas',32064,32079,3,7),(6142,'Salcedillo',38254,38257,3,1),(6143,'Saldaña',31044,31053,3,4),(6144,'Saldaña de Burgos',8568,8571,3,1),(6145,'Saldeana',33606,33609,3,1),(6146,'Saldes',6764,6769,3,2),(6147,'Saldías',29162,29165,3,1),(6148,'Saldón',38258,38261,3,1),(6149,'Salduero',36314,36317,3,1),(6150,'Salem',40402,40405,3,1),(6151,'Sales de Llierca',14758,14761,3,1),(6152,'Salillas',19238,19241,3,1),(6153,'Salillas de Jalón',44502,44505,3,1),(6154,'Salinas',1558,1565,3,3),(6155,'Salinas de Oro/Jaitz',29166,29169,3,1),(6156,'Salinas de Pisuerga',31054,31061,3,3),(6157,'Salinas del Manzano',13674,13677,3,1),(6158,'Salinillas de Bureba',8572,8575,3,1),(6159,'Sallent',6770,6773,3,1),(6160,'Sallent de Gállego',19242,19251,3,4),(6161,'Salmerón',17004,17007,3,1),(6162,'Salmeroncillos',13678,13681,3,1),(6163,'Salmoral',33610,33613,3,1),(6164,'Salobral',4220,4223,3,1),(6165,'Salobre',800,803,3,1),(6166,'Salobreña',15880,15889,3,4),(6167,'Salomó',37232,37235,3,1),(6168,'Salorino',9894,9897,3,1),(6169,'Salou',37236,37239,3,1),(6170,'Salt',14762,14765,3,1),(6171,'Salteras',35494,35497,3,1),(6172,'Salvacañete',13682,13685,3,1),(6173,'Salvadiós',4224,4227,3,1),(6174,'Salvador de Zapardiel',41264,41267,3,1),(6175,'Salvaleón',5076,5079,3,1),(6176,'Salvaterra de Miño',32080,32093,3,6),(6177,'Salvatierra de Esca',44506,44509,3,1),(6178,'Salvatierra de los Barros',5080,5083,3,1),(6179,'Salvatierra de Santiago',9898,9901,3,1),(6180,'Salvatierra de Tormes',33614,33617,3,1),(6181,'Samaniego',268,271,3,1),(6182,'Samboal',34786,34791,3,2),(6183,'Samir de los Caños',43088,43091,3,1),(6184,'Samos',25668,25693,3,12),(6185,'Samper de Calanda',38262,38265,3,1),(6186,'Samper del Salz',44510,44513,3,1),(6187,'San Adrián',29170,29173,3,1),(6188,'San Adrián de Juarros',8576,8579,3,1),(6189,'San Adrián del Valle',22808,22811,3,1),(6190,'San Agustín',38266,38269,3,1),(6191,'San Agustín del Guadalix',26686,26689,3,1),(6192,'San Agustín del Pozo',43092,43095,3,1),(6193,'San Amaro',30210,30217,3,3),(6194,'San Andrés del Congosto',17008,17011,3,1),(6195,'San Andrés del Rabanedo',22812,22823,3,5),(6196,'San Andrés del Rey',17012,17015,3,1),(6197,'San Antonio de Benagéber',40406,40409,3,1),(6198,'San Asensio',21650,21653,3,1),(6199,'San Bartolomé de Béjar',4228,4231,3,1),(6200,'San Bartolomé de Corneja',4232,4235,3,1),(6201,'San Bartolomé de la Torre',18174,18179,3,2),(6202,'San Bartolomé de las Abiertas',39192,39195,3,1),(6203,'San Bartolomé de Pinares',4236,4239,3,1),(6204,'San Carlos del Valle',12304,12307,3,1),(6205,'San Cebrián de Campos',31062,31065,3,1),(6206,'San Cebrián de Castro',43096,43101,3,2),(6207,'San Cebrián de Mazote',41268,41271,3,1),(6208,'San Cebrián de Mudá',31066,31071,3,2),(6209,'San Cibrao das Viñas',30218,30229,3,5),(6210,'San Clemente',13686,13689,3,1),(6211,'San Cristóbal de Boedo',31072,31075,3,1),(6212,'San Cristóbal de Cuéllar',34792,34795,3,1),(6213,'San Cristóbal de Entreviñas',43102,43107,3,2),(6214,'San Cristóbal de la Cuesta',33618,33621,3,1),(6215,'San Cristóbal de la Polantera',22824,22829,3,2),(6216,'San Cristóbal de la Vega',34796,34799,3,1),(6217,'San Cristóbal de Segovia',34800,34803,3,1),(6218,'San Cristovo de Cea',30230,30247,3,8),(6219,'San Emiliano',22830,22837,3,3),(6220,'San Esteban de Gormaz',36318,36333,3,7),(6221,'San Esteban de la Sierra',33622,33625,3,1),(6222,'San Esteban de Litera',19252,19255,3,1),(6223,'San Esteban de los Patos',4240,4243,3,1),(6224,'San Esteban de Nogales',22838,22841,3,1),(6225,'San Esteban de Zapardiel',4244,4247,3,1),(6226,'San Esteban del Molar',43108,43111,3,1),(6227,'San Esteban del Valle',4248,4251,3,1),(6228,'San Felices',36334,36337,3,1),(6229,'San Felices de Buelna',11034,11037,3,1),(6230,'San Felices de los Gallegos',33626,33629,3,1),(6231,'San Fernando',10422,10425,3,1),(6232,'San Fernando de Henares',26690,26695,3,2),(6233,'San Fulgencio',1566,1569,3,1),(6234,'San García de Ingelmos',4252,4255,3,1),(6235,'San Isidro',1570,1573,3,1),(6236,'San Javier',28026,28043,3,8),(6237,'San José del Valle',10426,10431,3,2),(6238,'San Juan de Aznalfarache',35498,35501,3,1),(6239,'San Juan de Gredos',4256,4261,3,2),(6240,'San Juan de la Encinilla',4262,4267,3,2),(6241,'San Juan de la Nava',4268,4271,3,1),(6242,'San Juan de Plan',19256,19259,3,1),(6243,'San Juan del Molinillo',4272,4275,3,1),(6244,'San Juan del Monte',8580,8583,3,1),(6245,'San Juan del Olmo',4276,4279,3,1),(6246,'San Juan del Puerto',18180,18185,3,2),(6247,'San Justo',43112,43119,3,3),(6248,'San Justo de la Vega',22842,22849,3,3),(6249,'San Leonardo de Yagüe',36338,36341,3,1),(6250,'San Llorente',41272,41275,3,1),(6251,'San Lorenzo de Calatrava',12308,12311,3,1),(6252,'San Lorenzo de El Escorial',26696,26701,3,2),(6253,'San Lorenzo de la Parrilla',13690,13693,3,1),(6254,'San Lorenzo de Tormes',4280,4283,3,1),(6255,'San Mamés de Burgos',8584,8587,3,1),(6256,'San Mamés de Campos',31076,31079,3,1),(6257,'San Martín de Boniches',13694,13697,3,1),(6258,'San Martín de la Vega',26702,26705,3,1),(6259,'San Martín de la Vega del Alberche',4284,4287,3,1),(6260,'San Martín de la Virgen de Moncayo',44514,44517,3,1),(6261,'San Martín de Montalbán',39196,39199,3,1),(6262,'San Martín de Oscos',3190,3193,3,1),(6263,'San Martín de Pusa',39200,39203,3,1),(6264,'San Martín de Rubiales',8588,8591,3,1),(6265,'San Martín de Trevejo',9902,9905,3,1),(6266,'San Martín de Unx',29174,29177,3,1),(6267,'San Martín de Valdeiglesias',26706,26709,3,1),(6268,'San Martín de Valderaduey',43120,43123,3,1),(6269,'San Martín de Valvení',41276,41279,3,1),(6270,'San Martín del Castañar',33630,33633,3,1),(6271,'San Martín del Pimpollar',4288,4291,3,1),(6272,'San Martín del Rey Aurelio',3194,3217,3,11),(6273,'San Martín del Río',38270,38273,3,1),(6274,'San Martín y Mudrián',34804,34807,3,1),(6275,'San Mateo de Gállego',44518,44521,3,1),(6276,'San Miguel de Aguayo',11038,11041,3,1),(6277,'San Miguel de Bernuy',34808,34811,3,1),(6278,'San Miguel de Corneja',4292,4295,3,1),(6279,'San Miguel de la Ribera',43124,43127,3,1),(6280,'San Miguel de Salinas',1574,1577,3,1),(6281,'San Miguel de Serrezuela',4296,4299,3,1),(6282,'San Miguel de Valero',33634,33637,3,1),(6283,'San Miguel del Arroyo',41280,41283,3,1),(6284,'San Miguel del Cinca',19260,19267,3,3),(6285,'San Miguel del Pino',41284,41287,3,1),(6286,'San Miguel del Robledo',33638,33643,3,2),(6287,'San Miguel del Valle',43128,43131,3,1),(6288,'San Millán de la Cogolla',21654,21657,3,1),(6289,'San Millán de Lara',8592,8595,3,1),(6290,'San Millán de los Caballeros',22850,22853,3,1),(6291,'San Millán de Yécora',21658,21661,3,1),(6292,'San Millán/Donemiliaga',272,277,3,2),(6293,'San Morales',33644,33647,3,1),(6294,'San Muñoz',33648,33653,3,2),(6295,'San Nicolás del Puerto',35502,35509,3,3),(6296,'San Pablo de la Moraleja',41288,41291,3,1),(6297,'San Pablo de los Montes',39204,39207,3,1),(6298,'San Pascual',4300,4303,3,1),(6299,'San Pedro',804,807,3,1),(6300,'San Pedro Bercianos',22854,22857,3,1),(6301,'San Pedro de Ceque',43132,43135,3,1),(6302,'San Pedro de Gaíllos',34812,34815,3,1),(6303,'San Pedro de la Nave-Almendra',43136,43141,3,2),(6304,'San Pedro de Latarce',41292,41295,3,1),(6305,'San Pedro de Mérida',5084,5087,3,1),(6306,'San Pedro de Rozados',33654,33667,3,6),(6307,'San Pedro del Arroyo',4304,4307,3,1),(6308,'San Pedro del Pinatar',28044,28049,3,2),(6309,'San Pedro del Romeral',11042,11047,3,2),(6310,'San Pedro del Valle',33668,33671,3,1),(6311,'San Pedro Manrique',36342,36347,3,2),(6312,'San Pedro Palmiches',13698,13701,3,1),(6313,'San Pelayo',41296,41299,3,1),(6314,'San Pelayo de Guareña',33672,33679,3,3),(6315,'San Rafael del Río',11720,11725,3,2),(6316,'San Román de Cameros',21662,21665,3,1),(6317,'San Román de Hornija',41300,41303,3,1),(6318,'San Román de la Cuba',31080,31083,3,1),(6319,'San Román de los Montes',39208,39211,3,1),(6320,'San Roque',10432,10449,3,8),(6321,'San Roque de Riomiera',11048,11053,3,2),(6322,'San Sadurniño',20888,20901,3,6),(6323,'San Salvador',41304,41307,3,1),(6324,'San Sebastián de los Ballesteros',12854,12857,3,1),(6325,'San Sebastián de los Reyes',26710,26727,3,8),(6326,'San Silvestre de Guzmán',18186,18189,3,1),(6327,'San Tirso de Abres',3218,3221,3,1),(6328,'San Torcuato',21666,21669,3,1),(6329,'San Vicente de Alcántara',5088,5091,3,1),(6330,'San Vicente de Arévalo',4308,4311,3,1),(6331,'San Vicente de la Barquera',11054,11063,3,4),(6332,'San Vicente de la Cabeza',43142,43145,3,1),(6333,'San Vicente de la Sonsierra',21670,21675,3,2),(6334,'San Vicente del Palacio',41308,41311,3,1),(6335,'San Vicente del Raspeig/Sant Vicent del Raspeig',1578,1581,3,1),(6336,'San Vicente del Valle',8596,8599,3,1),(6337,'San Vitero',43146,43153,3,3),(6338,'San Xoán de Río',30248,30255,3,3),(6339,'Sanaüja',24410,24413,3,1),(6340,'Sancedo',22858,22863,3,2),(6341,'Sanchidrián',4312,4315,3,1),(6342,'Sanchón de la Ribera',33680,33683,3,1),(6343,'Sanchón de la Sagrada',33684,33687,3,1),(6344,'Sanchonuño',34816,34819,3,1),(6345,'Sanchorreja',4316,4319,3,1),(6346,'Sanchotello',33688,33691,3,1),(6347,'Sancti-Spíritus',33692,33697,3,2),(6348,'Sancti-Spíritus',5092,5093,3,0),(6349,'Sandiás',30256,30261,3,2),(6350,'Sando',33698,33705,3,3),(6351,'Sanet y Negrals',1582,1585,3,1),(6352,'Sangarcía',34820,34825,3,2),(6353,'Sangarrén',19268,19271,3,1),(6354,'Sangüesa/Zangoza',29178,29183,3,2),(6355,'Sanlúcar de Barrameda',10450,10459,3,4),(6356,'Sanlúcar de Guadiana',18190,18193,3,1),(6357,'Sanlúcar la Mayor',35510,35513,3,1),(6358,'Sansol',29184,29187,3,1),(6359,'Sant Adrià de Besòs',6774,6777,3,1),(6360,'Sant Agustí de Lluçanès',6778,6781,3,1),(6361,'Sant Andreu de la Barca',6782,6785,3,1),(6362,'Sant Andreu de Llavaneres',6786,6789,3,1),(6363,'Sant Andreu Salou',14766,14769,3,1),(6364,'Sant Aniol de Finestres',14770,14775,3,2),(6365,'Sant Antoni de Portmany',5290,5299,3,4),(6366,'Sant Antoni de Vilamajor',6790,6793,3,1),(6367,'Sant Bartomeu del Grau',6794,6797,3,1),(6368,'Sant Boi de Llobregat',6798,6803,3,2),(6369,'Sant Boi de Lluçanès',6804,6807,3,1),(6370,'Sant Carles de la Ràpita',37240,37245,3,2),(6371,'Sant Cebrià de Vallalta',6808,6811,3,1),(6372,'Sant Celoni',6812,6819,3,3),(6373,'Sant Climent de Llobregat',6820,6823,3,1),(6374,'Sant Climent Sescebes',14776,14779,3,1),(6375,'Sant Cugat del Vallès',6824,6843,3,9),(6376,'Sant Cugat Sesgarrigues',6844,6847,3,1),(6377,'Sant Esteve de la Sarga',24414,24417,3,1),(6378,'Sant Esteve de Palautordera',6848,6853,3,2),(6379,'Sant Esteve Sesrovires',6854,6859,3,2),(6380,'Sant Feliu de Buixalleu',14780,14783,3,1),(6381,'Sant Feliu de Codines',6860,6863,3,1),(6382,'Sant Feliu de Guíxols',14784,14789,3,2),(6383,'Sant Feliu de Llobregat',6864,6867,3,1),(6384,'Sant Feliu de Pallerols',14790,14793,3,1),(6385,'Sant Feliu Sasserra',6868,6871,3,1),(6386,'Sant Ferriol',14794,14799,3,2),(6387,'Sant Fost de Campsentelles',6872,6875,3,1),(6388,'Sant Fruitós de Bages',6876,6879,3,1),(6389,'Sant Gregori',14800,14809,3,4),(6390,'Sant Guim de Freixenet',24418,24425,3,3),(6391,'Sant Guim de la Plana',24426,24429,3,1),(6392,'Sant Hilari Sacalm',14810,14813,3,1),(6393,'Sant Hipòlit de Voltregà',6880,6883,3,1),(6394,'Sant Iscle de Vallalta',6884,6887,3,1),(6395,'Sant Jaume d\'Enveja',37246,37251,3,2),(6396,'Sant Jaume de Frontanyà',6888,6891,3,1),(6397,'Sant Jaume de Llierca',14814,14817,3,1),(6398,'Sant Jaume dels Domenys',37252,37255,3,1),(6399,'Sant Joan',5610,5615,3,2),(6400,'Sant Joan d\'Alacant',1586,1589,3,1),(6401,'Sant Joan de Labritja',5300,5309,3,4),(6402,'Sant Joan de les Abadesses',14818,14821,3,1),(6403,'Sant Joan de Mollet',14822,14825,3,1),(6404,'Sant Joan de Moró',11726,11729,3,1),(6405,'Sant Joan de Vilatorrada',6892,6895,3,1),(6406,'Sant Joan Despí',6896,6899,3,1),(6407,'Sant Joan les Fonts',14826,14829,3,1),(6408,'Sant Joanet',40410,40413,3,1),(6409,'Sant Jordi Desvalls',14830,14833,3,1),(6410,'Sant Jordi/San Jorge',11730,11733,3,1),(6411,'Sant Josep de sa Talaia',5310,5321,3,5),(6412,'Sant Julià de Cerdanyola',6900,6903,3,1),(6413,'Sant Julià de Ramis',14834,14839,3,2),(6414,'Sant Julià de Vilatorta',6904,6907,3,1),(6415,'Sant Julià del Llor i Bonmatí',14840,14843,3,1),(6416,'Sant Just Desvern',6908,6911,3,1),(6417,'Sant Llorenç d\'Hortons',6912,6915,3,1),(6418,'Sant Llorenç de la Muga',14844,14847,3,1),(6419,'Sant Llorenç de Morunys',24430,24435,3,2),(6420,'Sant Llorenç des Cardassar',5616,5625,3,4),(6421,'Sant Llorenç Savall',6916,6921,3,2),(6422,'Sant Lluís',5768,5775,3,3),(6423,'Sant Martí d\'Albars',6922,6925,3,1),(6424,'Sant Martí de Centelles',6926,6929,3,1),(6425,'Sant Martí de Llémena',14848,14855,3,3),(6426,'Sant Martí de Riucorb',24436,24443,3,3),(6427,'Sant Martí de Tous',6930,6933,3,1),(6428,'Sant Martí Sarroca',6934,6937,3,1),(6429,'Sant Martí Sesgueioles',6938,6941,3,1),(6430,'Sant Martí Vell',14856,14859,3,1),(6431,'Sant Mateu',11734,11737,3,1),(6432,'Sant Mateu de Bages',6942,6947,3,2),(6433,'Sant Miquel de Campmajor',14860,14863,3,1),(6434,'Sant Miquel de Fluvià',14864,14867,3,1),(6435,'Sant Mori',14868,14871,3,1),(6436,'Sant Pau de Segúries',14872,14877,3,2),(6437,'Sant Pere de Ribes',6948,6953,3,2),(6438,'Sant Pere de Riudebitlles',6954,6957,3,1),(6439,'Sant Pere de Torelló',6958,6961,3,1),(6440,'Sant Pere de Vilamajor',6962,6969,3,3),(6441,'Sant Pere Pescador',14878,14881,3,1),(6442,'Sant Pere Sallavinera',6970,6973,3,1),(6443,'Sant Pol de Mar',6974,6977,3,1),(6444,'Sant Quintí de Mediona',6978,6981,3,1),(6445,'Sant Quirze de Besora',6982,6987,3,2),(6446,'Sant Quirze del Vallès',6988,6995,3,3),(6447,'Sant Quirze Safaja',6996,6999,3,1),(6448,'Sant Ramon',24444,24449,3,2),(6449,'Sant Sadurní d\'Anoia',7000,7003,3,1),(6450,'Sant Sadurní d\'Osormort',7004,7007,3,1),(6451,'Sant Salvador de Guardiola',7008,7011,3,1),(6452,'Sant Vicenç de Castellet',7012,7015,3,1),(6453,'Sant Vicenç de Montalt',7016,7019,3,1),(6454,'Sant Vicenç de Torelló',7020,7023,3,1),(6455,'Sant Vicenç dels Horts',7024,7027,3,1),(6456,'Santa Amalia',5094,5097,3,1),(6457,'Santa Ana',9906,9909,3,1),(6458,'Santa Ana de Pusa',39212,39215,3,1),(6459,'Santa Ana la Real',18194,18199,3,2),(6460,'Santa Bàrbara',37256,37259,3,1),(6461,'Santa Bárbara de Casa',18200,18203,3,1),(6462,'Santa Cecilia',8600,8603,3,1),(6463,'Santa Cecília de Voltregà',7028,7031,3,1),(6464,'Santa Cecilia del Alcor',31084,31087,3,1),(6465,'Santa Cilia',19272,19277,3,2),(6466,'Santa Clara de Avedillo',43154,43157,3,1),(6467,'Santa Coloma',21676,21679,3,1),(6468,'Santa Coloma de Cervelló',7032,7035,3,1),(6469,'Santa Coloma de Farners',14882,14885,3,1),(6470,'Santa Coloma de Gramenet',7036,7045,3,4),(6471,'Santa Coloma de Queralt',37260,37265,3,2),(6472,'Santa Colomba de Curueño',22864,22871,3,3),(6473,'Santa Colomba de las Monjas',43158,43161,3,1),(6474,'Santa Colomba de Somoza',22872,22877,3,2),(6475,'Santa Comba',20902,20921,3,9),(6476,'Santa Cristina d\'Aro',14886,14893,3,3),(6477,'Santa Cristina de la Polvorosa',43162,43165,3,1),(6478,'Santa Cristina de Valmadrigal',22878,22881,3,1),(6479,'Santa Croya de Tera',43166,43169,3,1),(6480,'Santa Cruz de Bezana',11064,11071,3,3),(6481,'Santa Cruz de Boedo',31088,31093,3,2),(6482,'Santa Cruz de Grío',44522,44525,3,1),(6483,'Santa Cruz de la Salceda',8604,8607,3,1),(6484,'Santa Cruz de la Serós',19278,19283,3,2),(6485,'Santa Cruz de la Sierra',9910,9913,3,1),(6486,'Santa Cruz de la Zarza',39216,39219,3,1),(6487,'Santa Cruz de los Cáñamos',12312,12315,3,1),(6488,'Santa Cruz de Marchena',2170,2173,3,1),(6489,'Santa Cruz de Moncayo',44526,44529,3,1),(6490,'Santa Cruz de Moya',13702,13707,3,2),(6491,'Santa Cruz de Mudela',12316,12319,3,1),(6492,'Santa Cruz de Nogueras',38274,38277,3,1),(6493,'Santa Cruz de Paniagua',9914,9919,3,2),(6494,'Santa Cruz de Pinares',4320,4323,3,1),(6495,'Santa Cruz de Yanguas',36348,36353,3,2),(6496,'Santa Cruz del Comercio',15890,15893,3,1),(6497,'Santa Cruz del Retamar',39220,39225,3,2),(6498,'Santa Cruz del Valle',4324,4327,3,1),(6499,'Santa Cruz del Valle Urbión',8608,8611,3,1),(6500,'Santa Elena',19928,19931,3,1),(6501,'Santa Elena de Jamuz',22882,22887,3,2),(6502,'Santa Engracia del Jubera',21680,21685,3,2),(6503,'Santa Eufemia',12858,12863,3,2),(6504,'Santa Eufemia del Arroyo',41312,41315,3,1),(6505,'Santa Eufemia del Barco',43170,43175,3,2),(6506,'Santa Eugènia',5626,5629,3,1),(6507,'Santa Eugènia de Berga',7046,7049,3,1),(6508,'Santa Eulalia',38278,38281,3,1),(6509,'Santa Eulalia Bajera',21686,21689,3,1),(6510,'Santa Eulalia de Gállego',44530,44533,3,1),(6511,'Santa Eulalia de Oscos',3222,3227,3,2),(6512,'Santa Eulàlia de Riuprimer',7050,7053,3,1),(6513,'Santa Eulàlia de Ronçana',7054,7057,3,1),(6514,'Santa Eulària des Riu',5322,5335,3,6),(6515,'Santa Fe',15894,15903,3,4),(6516,'Santa Fe de Mondújar',2174,2177,3,1),(6517,'Santa Fe del Penedès',7058,7061,3,1),(6518,'Santa Gadea del Cid',8612,8615,3,1),(6519,'Santa Inés',8616,8619,3,1),(6520,'Santa Llogaia d\'Àlguema',14894,14897,3,1),(6521,'Santa Magdalena de Pulpis',11738,11741,3,1),(6522,'Santa Margalida',5630,5637,3,3),(6523,'Santa Margarida de Montbui',7062,7065,3,1),(6524,'Santa Margarida i els Monjos',7066,7069,3,1),(6525,'Santa Maria d\'Oló',7070,7073,3,1),(6526,'Santa Maria de Besora',7074,7079,3,2),(6527,'Santa María de Cayón',11072,11083,3,5),(6528,'Santa María de Dulcis',19284,19289,3,2),(6529,'Santa María de Huerta',36354,36357,3,1),(6530,'Santa María de la Alameda',26728,26733,3,2),(6531,'Santa María de la Isla',22888,22891,3,1),(6532,'Santa María de la Vega',43176,43179,3,1),(6533,'Santa María de las Hoyas',36358,36361,3,1),(6534,'Santa María de los Caballeros',4328,4333,3,2),(6535,'Santa María de los Llanos',13708,13711,3,1),(6536,'Santa Maria de Martorelles',7080,7083,3,1),(6537,'Santa Maria de Merlès',7084,7089,3,2),(6538,'Santa Maria de Miralles',7090,7093,3,1),(6539,'Santa María de Ordás',22892,22901,3,4),(6540,'Santa Maria de Palautordera',7094,7097,3,1),(6541,'Santa María de Sando',33706,33709,3,1),(6542,'Santa María de Valverde',43180,43183,3,1),(6543,'Santa María del Arroyo',4334,4337,3,1),(6544,'Santa María del Berrocal',4338,4343,3,2),(6545,'Santa María del Camí',5638,5641,3,1),(6546,'Santa María del Campo',8620,8623,3,1),(6547,'Santa María del Campo Rus',13712,13715,3,1),(6548,'Santa María del Cubillo',4344,4347,3,1),(6549,'Santa María del Invierno',8624,8627,3,1),(6550,'Santa María del Mercadillo',8628,8631,3,1),(6551,'Santa María del Monte de Cea',22902,22907,3,2),(6552,'Santa María del Páramo',22908,22911,3,1),(6553,'Santa María del Tiétar',4348,4351,3,1),(6554,'Santa María del Val',13716,13719,3,1),(6555,'Santa María la Real de Nieva',34826,34843,3,8),(6556,'Santa María Rivarredonda',8632,8635,3,1),(6557,'Santa Marina del Rey',22912,22915,3,1),(6558,'Santa Marta',5098,5101,3,1),(6559,'Santa Marta de Magasca',9920,9923,3,1),(6560,'Santa Marta de Tormes',33710,33715,3,2),(6561,'Santa Marta del Cerro',34844,34847,3,1),(6562,'Santa Olalla',39226,39229,3,1),(6563,'Santa Olalla de Bureba',8636,8639,3,1),(6564,'Santa Olalla del Cala',18204,18209,3,2),(6565,'Santa Oliva',37266,37271,3,2),(6566,'Santa Pau',14898,14901,3,1),(6567,'Santa Perpètua de Mogoda',7098,7101,3,1),(6568,'Santa Pola',1590,1593,3,1),(6569,'Santa Susanna',7102,7105,3,1),(6570,'Santacara',29188,29191,3,1),(6571,'Santaella',12864,12871,3,3),(6572,'Santaliestra y San Quílez',19290,19295,3,2),(6573,'Santander',11084,11109,3,12),(6574,'Santanyí',5642,5661,3,9),(6575,'Santas Martas',22916,22923,3,3),(6576,'Santed',44534,44537,3,1),(6577,'Santervás de Campos',41316,41319,3,1),(6578,'Santervás de la Vega',31094,31097,3,1),(6579,'Santiago de Alcántara',9924,9929,3,2),(6580,'Santiago de Calatrava',19932,19935,3,1),(6581,'Santiago de Compostela',20922,20961,3,19),(6582,'Santiago de la Puebla',33716,33719,3,1),(6583,'Santiago del Campo',9930,9933,3,1),(6584,'Santiago del Collado',4352,4355,3,1),(6585,'Santiago del Tormes',4356,4359,3,1),(6586,'Santiago Millas',22924,22933,3,4),(6587,'Santiago-Pontones',19936,19951,3,7),(6588,'Santibáñez de Béjar',33720,33723,3,1),(6589,'Santibáñez de Ecla',31098,31101,3,1),(6590,'Santibáñez de Esgueva',8640,8643,3,1),(6591,'Santibáñez de la Peña',31102,31113,3,5),(6592,'Santibáñez de la Sierra',33724,33729,3,2),(6593,'Santibáñez de Tera',43184,43189,3,2),(6594,'Santibáñez de Valcorba',41320,41325,3,2),(6595,'Santibáñez de Vidriales',43190,43201,3,5),(6596,'Santibáñez del Val',8644,8649,3,2),(6597,'Santibáñez el Alto',9934,9937,3,1),(6598,'Santibáñez el Bajo',9938,9941,3,1),(6599,'Santillana del Mar',11110,11121,3,5),(6600,'Santiponce',35514,35517,3,1),(6601,'Santiso',20962,20965,3,1),(6602,'Santisteban del Puerto',19952,19955,3,1),(6603,'Santiurde de Reinosa',11122,11127,3,2),(6604,'Santiurde de Toranzo',11128,11135,3,3),(6605,'Santiuste',17016,17019,3,1),(6606,'Santiuste de Pedraza',34848,34855,3,3),(6607,'Santiuste de San Juan Bautista',34856,34859,3,1),(6608,'Santiz',33730,33733,3,1),(6609,'Santo Adriano',3228,3231,3,1),(6610,'Santo Domingo de la Calzada',21690,21693,3,1),(6611,'Santo Domingo de las Posadas',4360,4363,3,1),(6612,'Santo Domingo de Pirón',34860,34863,3,1),(6613,'Santo Domingo de Silos',8650,8653,3,1),(6614,'Santo Domingo-Caudilla',39230,39233,3,1),(6615,'Santo Tomé',19956,19959,3,1),(6616,'Santo Tomé de Zabarcos',4364,4367,3,1),(6617,'Santo Tomé del Puerto',34864,34867,3,1),(6618,'Santomera',28050,28059,3,4),(6619,'Santoña',11136,11143,3,3),(6620,'Santorcaz',26734,26737,3,1),(6621,'Santovenia',43202,43205,3,1),(6622,'Santovenia de la Valdoncina',22934,22939,3,2),(6623,'Santovenia de Pisuerga',41326,41329,3,1),(6624,'Santoyo',31114,31117,3,1),(6625,'Santpedor',7106,7109,3,1),(6626,'Santurde de Rioja',21694,21697,3,1),(6627,'Santurdejo',21698,21701,3,1),(6628,'Santurtzi',42120,42123,3,1),(6629,'Sanxenxo',32094,32107,3,6),(6630,'Sanzoles',43206,43209,3,1),(6631,'Sardón de Duero',41330,41333,3,1),(6632,'Sardón de los Frailes',33734,33737,3,1),(6633,'Sargentes de la Lora',8654,8661,3,3),(6634,'Sariego',3232,3235,3,1),(6635,'Sariegos',22940,22945,3,2),(6636,'Sariñena',19296,19305,3,4),(6637,'Saro',11144,11147,3,1),(6638,'Sarracín',8662,8665,3,1),(6639,'Sarral',37272,37279,3,3),(6640,'Sarreaus',30262,30269,3,3),(6641,'Sarria',25694,25721,3,13),(6642,'Sarrià de Ter',14902,14905,3,1),(6643,'Sarriés/Sartze',29192,29195,3,1),(6644,'Sarrión',38282,38287,3,2),(6645,'Sarroca de Bellera',24450,24453,3,1),(6646,'Sarroca de Lleida',24454,24457,3,1),(6647,'Sartaguda',29196,29199,3,1),(6648,'Sartajada',39234,39237,3,1),(6649,'Sasamón',8666,8671,3,2),(6650,'Sástago',44538,44541,3,1),(6651,'Saúca',17020,17023,3,1),(6652,'Saucedilla',9942,9945,3,1),(6653,'Saucelle',33738,33741,3,1),(6654,'Sauquillo de Cabezas',34868,34871,3,1),(6655,'Saus, Camallera i Llampaies',14906,14911,3,2),(6656,'Savallà del Comtat',37280,37283,3,1),(6657,'Sax',1594,1597,3,1),(6658,'Sayalonga',27418,27423,3,2),(6659,'Sayatón',17024,17027,3,1),(6660,'Sebúlcor',34872,34877,3,2),(6661,'Secastilla',19306,19311,3,2),(6662,'Sedaví',40414,40417,3,1),(6663,'Sedella',27424,27429,3,2),(6664,'Sediles',44542,44545,3,1),(6665,'Segart',40418,40421,3,1),(6666,'Segorbe',11742,11749,3,3),(6667,'Segovia',34878,34899,3,10),(6668,'Segura',17728,17731,3,1),(6669,'Segura de la Sierra',19960,19971,3,5),(6670,'Segura de León',5102,5105,3,1),(6671,'Segura de los Baños',38288,38291,3,1),(6672,'Segura de Toro',9946,9949,3,1),(6673,'Segurilla',39238,39241,3,1),(6674,'Seira',19312,19317,3,2),(6675,'Selas',17028,17031,3,1),(6676,'Selaya',11148,11151,3,1),(6677,'Sella',1598,1601,3,1),(6678,'Sellent',40422,40425,3,1),(6679,'Selva',5662,5671,3,4),(6680,'Semillas',17032,17035,3,1),(6681,'Sempere',40426,40429,3,1),(6682,'Sena',19318,19321,3,1),(6683,'Sena de Luna',22946,22951,3,2),(6684,'Senan',37284,37287,3,1),(6685,'Sencelles',5672,5681,3,4),(6686,'Señera',40430,40433,3,1),(6687,'Senés',2178,2181,3,1),(6688,'Senés de Alcubierre',19322,19325,3,1),(6689,'Senija',1602,1605,3,1),(6690,'Seno',38292,38295,3,1),(6691,'Senterada',24458,24465,3,3),(6692,'Sentmenat',7110,7113,3,1),(6693,'Sepulcro-Hilario',33742,33745,3,1),(6694,'Sepúlveda',34900,34913,3,6),(6695,'Sequera de Fresno',34914,34917,3,1),(6696,'Sequeros',33746,33749,3,1),(6697,'Serinyà',14912,14915,3,1),(6698,'Serón',2182,2191,3,4),(6699,'Serón de Nágima',36362,36365,3,1),(6700,'Seròs',24466,24469,3,1),(6701,'Serra',40434,40437,3,1),(6702,'Serra de Daró',14916,14919,3,1),(6703,'Serrada',41334,41337,3,1),(6704,'Serradilla',9950,9955,3,2),(6705,'Serradilla del Arroyo',33750,33755,3,2),(6706,'Serradilla del Llano',33756,33759,3,1),(6707,'Serranillos',4368,4373,3,2),(6708,'Serranillos del Valle',26738,26741,3,1),(6709,'Serrato',27430,27431,3,0),(6710,'Serrejón',9956,9959,3,1),(6711,'ses Salines',5682,5687,3,2),(6712,'Sesa',19326,19329,3,1),(6713,'Seseña',39242,39249,3,3),(6714,'Sesma',29200,29203,3,1),(6715,'Sestao',42124,42127,3,1),(6716,'Sestrica',44546,44551,3,2),(6717,'Sesué',19330,19333,3,1),(6718,'Setcases',14920,14923,3,1),(6719,'Setenil de las Bodegas',10460,10463,3,1),(6720,'Setiles',17036,17039,3,1),(6721,'Seva',7114,7119,3,2),(6722,'Sevilla',35518,35561,3,21),(6723,'Sevilla la Nueva',26742,26745,3,1),(6724,'Sevilleja de la Jara',39250,39257,3,3),(6725,'Sidamon',24470,24473,3,1),(6726,'Sienes',17040,17043,3,1),(6727,'Siero',3236,3267,3,15),(6728,'Sierra de Fuentes',9960,9963,3,1),(6729,'Sierra de Luna',44552,44555,3,1),(6730,'Sierra de Yeguas',27432,27437,3,2),(6731,'Sierra Engarcerán',11750,11759,3,4),(6732,'Sierro',2192,2195,3,1),(6733,'Siétamo',19334,19341,3,3),(6734,'Siete Aguas',40438,40443,3,2),(6735,'Siete Iglesias de Trabancos',41338,41341,3,1),(6736,'Sieteiglesias de Tormes',33760,33763,3,1),(6737,'Sigeres',4374,4377,3,1),(6738,'Sigüenza',17044,17065,3,10),(6739,'Sigüés',44556,44561,3,2),(6740,'Siles',19972,19975,3,1),(6741,'Silla',40444,40447,3,1),(6742,'Silleda',32108,32133,3,12),(6743,'Sils',14924,14929,3,2),(6744,'Simancas',41342,41345,3,1),(6745,'Simat de la Valldigna',40448,40451,3,1),(6746,'Sinarcas',40452,40455,3,1),(6747,'Sineu',5688,5691,3,1),(6748,'Singra',38296,38299,3,1),(6749,'Sinlabajos',4378,4381,3,1),(6750,'Siruela',5106,5109,3,1),(6751,'Sisamón',44562,44565,3,1),(6752,'Sisante',13720,13723,3,1),(6753,'Sitges',7120,7125,3,2),(6754,'Siurana',14930,14933,3,1),(6755,'Soba',11152,11165,3,6),(6756,'Sober',25722,25743,3,10),(6757,'Sobradiel',44566,44569,3,1),(6758,'Sobradillo',33764,33767,3,1),(6759,'Sobrado',20966,20973,3,3),(6760,'Sobrado',22952,22953,3,0),(6761,'Sobremunt',7126,7129,3,1),(6762,'Sobrescobio',3268,3271,3,1),(6763,'Socovos',808,813,3,2),(6764,'Socuéllamos',12320,12323,3,1),(6765,'Sojuela',21702,21705,3,1),(6766,'Solana de Ávila',4382,4387,3,2),(6767,'Solana de los Barros',5110,5117,3,3),(6768,'Solana de Rioalmar',4388,4391,3,1),(6769,'Solana del Pino',12324,12327,3,1),(6770,'Solanillos del Extremo',17066,17069,3,1),(6771,'Solarana',8672,8675,3,1),(6772,'Solera de Gabaldón',13724,13727,3,1),(6773,'Soliedra',36366,36371,3,2),(6774,'Solivella',37288,37291,3,1),(6775,'Sollana',40456,40461,3,2),(6776,'Sóller',5692,5701,3,4),(6777,'Solórzano',11166,11173,3,3),(6778,'Solosancho',4392,4395,3,1),(6779,'Solsona',24474,24477,3,1),(6780,'Somiedo',3272,3279,3,3),(6781,'Somolinos',17070,17073,3,1),(6782,'Somontín',2196,2199,3,1),(6783,'Somosierra',26746,26749,3,1),(6784,'Son Servera',5702,5711,3,4),(6785,'Sondika',42128,42131,3,1),(6786,'Soneja',11760,11763,3,1),(6787,'Sonseca',39258,39263,3,2),(6788,'Sopeira',19342,19345,3,1),(6789,'Sopela',42132,42135,3,1),(6790,'Soportújar',15904,15907,3,1),(6791,'Sopuerta',42136,42145,3,4),(6792,'Sora',7130,7133,3,1),(6793,'Soraluze-Placencia de las Armas',17732,17735,3,1),(6794,'Sorbas',2200,2217,3,8),(6795,'Sordillos',8676,8679,3,1),(6796,'Soria',36372,36387,3,7),(6797,'Soriguera',24478,24485,3,3),(6798,'Sorihuela',33768,33771,3,1),(6799,'Sorihuela del Guadalimar',19976,19979,3,1),(6800,'Sorlada',29204,29207,3,1),(6801,'Sort',24486,24495,3,4),(6802,'Sorvilán',15908,15915,3,3),(6803,'Sorzano',21706,21709,3,1),(6804,'Sos del Rey Católico',44570,44579,3,4),(6805,'Soses',24496,24499,3,1),(6806,'Sot de Chera',40462,40467,3,2),(6807,'Sot de Ferrer',11764,11767,3,1),(6808,'Sotalbo',4396,4399,3,1),(6809,'Sotés',21710,21713,3,1),(6810,'Sotillo',34918,34921,3,1),(6811,'Sotillo de la Adrada',4400,4403,3,1),(6812,'Sotillo de la Ribera',8680,8685,3,2),(6813,'Sotillo de las Palomas',39264,39267,3,1),(6814,'Sotillo del Rincón',36388,36393,3,2),(6815,'Soto de Cerrato',31118,31121,3,1),(6816,'Soto de la Vega',22954,22961,3,3),(6817,'Soto del Barco',3280,3289,3,4),(6818,'Soto del Real',26750,26753,3,1),(6819,'Soto en Cameros',21714,21717,3,1),(6820,'Soto y Amío',22962,22971,3,4),(6821,'Sotobañado y Priorato',31122,31125,3,1),(6822,'Sotodosos',17074,17077,3,1),(6823,'Sotorribas',13728,13735,3,3),(6824,'Sotosalbos',34922,34925,3,1),(6825,'Sotoserrano',33772,33775,3,1),(6826,'Sotragero',8686,8691,3,2),(6827,'Sotresgudo',8692,8699,3,3),(6828,'Soutomaior',32134,32139,3,2),(6829,'Suances',11174,11181,3,3),(6830,'Subirats',7134,7137,3,1),(6831,'Sudanell',24500,24503,3,1),(6832,'Sueca',40468,40475,3,3),(6833,'Suellacabras',36394,36397,3,1),(6834,'Sueras/Suera',11768,11771,3,1),(6835,'Suflí',2218,2221,3,1),(6836,'Sukarrieta',42146,42149,3,1),(6837,'Sumacárcer',40476,40479,3,1),(6838,'Sunbilla',29208,29211,3,1),(6839,'Sunyer',24504,24507,3,1),(6840,'Súria',7138,7141,3,1),(6841,'Susinos del Páramo',8700,8703,3,1),(6842,'Susqueda',14934,14939,3,2),(6843,'Tabanera de Cerrato',31126,31129,3,1),(6844,'Tabanera de Valdavia',31130,31133,3,1),(6845,'Tabanera la Luenga',34926,34929,3,1),(6846,'Tábara',43210,43213,3,1),(6847,'Tabera de Abajo',33776,33783,3,3),(6848,'Tabernas',2222,2227,3,2),(6849,'Taberno',2228,2233,3,2),(6850,'Taboada',25744,25761,3,8),(6851,'Taboadela',30270,30275,3,2),(6852,'Tabuenca',44580,44583,3,1),(6853,'Tafalla',29212,29215,3,1),(6854,'Tagamanent',7142,7145,3,1),(6855,'Tahal',2234,2239,3,2),(6856,'Tajahuerce',36398,36401,3,1),(6857,'Tajueco',36402,36405,3,1),(6858,'Talamanca',7146,7149,3,1),(6859,'Talamanca de Jarama',26754,26757,3,1),(6860,'Talamantes',44584,44587,3,1),(6861,'Talarn',24508,24511,3,1),(6862,'Talarrubias',5118,5121,3,1),(6863,'Talaván',9964,9967,3,1),(6864,'Talavera',24512,24517,3,2),(6865,'Talavera de la Reina',39268,39277,3,4),(6866,'Talavera la Real',5122,5125,3,1),(6867,'Talaveruela de la Vera',9968,9971,3,1),(6868,'Talayuela',9972,9979,3,3),(6869,'Talayuelas',13736,13741,3,2),(6870,'Tales',11772,11775,3,1),(6871,'Táliga',5126,5129,3,1),(6872,'Talveila',36406,36411,3,2),(6873,'Tamajón',17078,17085,3,3),(6874,'Tamames',33784,33791,3,3),(6875,'Támara de Campos',31134,31137,3,1),(6876,'Tamarite de Litera',19346,19353,3,3),(6877,'Tamariz de Campos',41346,41349,3,1),(6878,'Tamarón',8704,8707,3,1),(6879,'Tamurejo',5130,5133,3,1),(6880,'Tapia de Casariego',3290,3301,3,5),(6881,'Tapioles',43214,43217,3,1),(6882,'Taradell',7150,7153,3,1),(6883,'Taragudo',17086,17089,3,1),(6884,'Taramundi',3302,3305,3,1),(6885,'Tarancón',13742,13745,3,1),(6886,'Taravilla',17090,17093,3,1),(6887,'Tarazona',44588,44595,3,3),(6888,'Tarazona de Guareña',33792,33795,3,1),(6889,'Tarazona de la Mancha',814,819,3,2),(6890,'Tàrbena',1606,1609,3,1),(6891,'Tardáguila',33796,33799,3,1),(6892,'Tardajos',8708,8711,3,1),(6893,'Tardelcuende',36412,36415,3,1),(6894,'Tardienta',19354,19357,3,1),(6895,'Tariego de Cerrato',31138,31141,3,1),(6896,'Tarifa',10464,10475,3,5),(6897,'Taroda',36416,36419,3,1),(6898,'Tarragona',37292,37313,3,10),(6899,'Tàrrega',24518,24533,3,7),(6900,'Tarrés',24534,24537,3,1),(6901,'Tarroja de Segarra',24538,24541,3,1),(6902,'Tartanedo',17094,17103,3,4),(6903,'Tauste',44596,44601,3,2),(6904,'Tavernes Blanques',40480,40483,3,1),(6905,'Tavernes de la Valldigna',40484,40487,3,1),(6906,'Tavèrnoles',7154,7157,3,1),(6907,'Tavertet',7158,7161,3,1),(6908,'Teba',27438,27441,3,1),(6909,'Tébar',13746,13749,3,1),(6910,'Teià',7162,7165,3,1),(6911,'Tejada',8712,8715,3,1),(6912,'Tejadillos',13750,13753,3,1),(6913,'Tejado',36420,36425,3,2),(6914,'Tejeda de Tiétar',9980,9985,3,2),(6915,'Tejeda y Segoyuela',33800,33803,3,1),(6916,'Tella-Sin',19358,19365,3,3),(6917,'Tembleque',39278,39281,3,1),(6918,'Tendilla',17104,17107,3,1),(6919,'Tenebrón',33804,33807,3,1),(6920,'Teo',20974,20983,3,4),(6921,'Teresa',11776,11779,3,1),(6922,'Teresa de Cofrentes',40488,40493,3,2),(6923,'Térmens',24542,24545,3,1),(6924,'Terque',2240,2245,3,2),(6925,'Terrades',14940,14943,3,1),(6926,'Terradillos',33808,33815,3,3),(6927,'Terradillos de Esgueva',8716,8719,3,1),(6928,'Terrassa',7166,7185,3,9),(6929,'Terrateig',40494,40497,3,1),(6930,'Terrer',44602,44605,3,1),(6931,'Terriente',38300,38303,3,1),(6932,'Terrinches',12328,12331,3,1),(6933,'Terroba',21718,21721,3,1),(6934,'Teruel',38304,38327,3,11),(6935,'Terzaga',17108,17111,3,1),(6936,'Teulada',1610,1615,3,2),(6937,'Teverga',3306,3311,3,2),(6938,'Tiana',7186,7189,3,1),(6939,'Tibi',1616,1619,3,1),(6940,'Tiebas-Muruarte de Reta',29216,29221,3,2),(6941,'Tiedra',41350,41353,3,1),(6942,'Tielmes',26758,26761,3,1),(6943,'Tierga',44606,44609,3,1),(6944,'Tierz',19366,19369,3,1),(6945,'Tierzo',17112,17115,3,1),(6946,'Tiétar',9986,9987,3,0),(6947,'Tíjola',2246,2255,3,4),(6948,'Tinajas',13754,13757,3,1),(6949,'Tineo',3312,3329,3,8),(6950,'Tinieblas de la Sierra',8720,8725,3,2),(6951,'Tiñosillos',4404,4407,3,1),(6952,'Tirapu',29222,29225,3,1),(6953,'Tirgo',21722,21727,3,2),(6954,'Tírig',11780,11783,3,1),(6955,'Tírvia',24546,24549,3,1),(6956,'Titaguas',40498,40501,3,1),(6957,'Titulcia',26762,26765,3,1),(6958,'Tiurana',24550,24553,3,1),(6959,'Tivenys',37314,37317,3,1),(6960,'Tivissa',37318,37323,3,2),(6961,'Tobar',8726,8729,3,1),(6962,'Tobarra',820,827,3,3),(6963,'Tobed',44610,44613,3,1),(6964,'Tobía',21728,21731,3,1),(6965,'Tocina',35562,35567,3,2),(6966,'Todolella',11784,11787,3,1),(6967,'Toén',30276,30285,3,4),(6968,'Toga',11788,11791,3,1),(6969,'Tolbaños',4408,4413,3,2),(6970,'Toledo',39282,39299,3,8),(6971,'Tollos',1620,1623,3,1),(6972,'Tolocirio',34930,34933,3,1),(6973,'Tolosa',17736,17745,3,4),(6974,'Tolox',27442,27445,3,1),(6975,'Tolva',19370,19373,3,1),(6976,'Tomares',35568,35571,3,1),(6977,'Tomelloso',12332,12337,3,2),(6978,'Tomiño',32140,32165,3,12),(6979,'Tona',7190,7193,3,1),(6980,'Topas',33816,33819,3,1),(6981,'Toques',20984,20987,3,1),(6982,'Torà',24554,24559,3,2),(6983,'Toral de los Guzmanes',22972,22975,3,1),(6984,'Toral de los Vados',22976,22989,3,6),(6985,'Torás',11792,11795,3,1),(6986,'Tordehumos',41354,41357,3,1),(6987,'Tordellego',17116,17119,3,1),(6988,'Tordelrábano',17120,17123,3,1),(6989,'Tordera',7194,7197,3,1),(6990,'Tordesillas',41358,41365,3,3),(6991,'Tordesilos',17124,17127,3,1),(6992,'Tordillos',33820,33823,3,1),(6993,'Tordoia',20988,20995,3,3),(6994,'Tordómar',8730,8733,3,1),(6995,'Torelló',7198,7201,3,1),(6996,'Toreno',22990,23005,3,7),(6997,'Torija',17128,17133,3,2),(6998,'Toril',9988,9997,3,4),(6999,'Toril y Masegoso',38328,38331,3,1),(7000,'Torla-Ordesa',19374,19381,3,3),(7001,'Torlengua',36426,36429,3,1),(7002,'Tormantos',21732,21735,3,1),(7003,'Tormellas',4414,4417,3,1),(7004,'Tormón',38332,38335,3,1),(7005,'Tormos',1624,1627,3,1),(7006,'Tornabous',24560,24563,3,1),(7007,'Tornadizos de Ávila',4418,4421,3,1),(7008,'Tornavacas',9998,10001,3,1),(7009,'Tornos',38336,38339,3,1),(7010,'Toro',43218,43227,3,4),(7011,'Torquemada',31142,31145,3,1),(7012,'Torralba',13758,13761,3,1),(7013,'Torralba de Aragón',19382,19385,3,1),(7014,'Torralba de Calatrava',12338,12341,3,1),(7015,'Torralba de los Frailes',44614,44617,3,1),(7016,'Torralba de los Sisones',38340,38343,3,1),(7017,'Torralba de Oropesa',39300,39303,3,1),(7018,'Torralba de Ribota',44618,44621,3,1),(7019,'Torralba del Pinar',11796,11799,3,1),(7020,'Torralba del Río',29226,29231,3,2),(7021,'Torralbilla',44622,44625,3,1),(7022,'Torre Alháquime',10476,10479,3,1),(7023,'Torre de Arcas',38344,38347,3,1),(7024,'Torre de Don Miguel',10002,10005,3,1),(7025,'Torre de Esgueva',41366,41369,3,1),(7026,'Torre de Juan Abad',12342,12345,3,1),(7027,'Torre de las Arcas',38348,38351,3,1),(7028,'Torre de Miguel Sesmero',5134,5137,3,1),(7029,'Torre de Peñafiel',41370,41375,3,2),(7030,'Torre de Santa María',10006,10009,3,1),(7031,'Torre del Bierzo',23006,23021,3,7),(7032,'Torre del Burgo',17134,17137,3,1),(7033,'Torre del Compte',38352,38355,3,1),(7034,'Torre en Cameros',21736,21739,4,1),(7035,'Torre la Ribera',19386,19393,3,3),(7036,'Torre los Negros',38356,38359,3,1),(7037,'Torre Val de San Pedro',34934,34937,3,1),(7038,'Torre-Cardela',15916,15919,3,1),(7039,'Torre-Pacheco',28060,28075,3,7),(7040,'Torre-serona',24564,24567,3,1),(7041,'Torreadrada',34938,34941,3,1),(7042,'Torrebaja',40502,40505,3,1),(7043,'Torrebesses',24568,24571,3,1),(7044,'Torreblacos',36430,36435,3,2),(7045,'Torreblanca',11800,11803,3,1),(7046,'Torreblascopedro',19980,19985,3,2),(7047,'Torrecaballeros',34942,34945,3,1),(7048,'Torrecampo',12872,12875,3,1),(7049,'Torrechiva',11804,11807,3,1),(7050,'Torrecilla de Alcañiz',38360,38363,3,1),(7051,'Torrecilla de la Abadesa',41376,41379,3,1),(7052,'Torrecilla de la Jara',39304,39307,3,1),(7053,'Torrecilla de la Orden',41380,41383,3,1),(7054,'Torrecilla de la Torre',41384,41387,3,1),(7055,'Torrecilla de los Ángeles',10010,10013,3,1),(7056,'Torrecilla del Monte',8734,8737,3,1),(7057,'Torrecilla del Pinar',34946,34949,3,1),(7058,'Torrecilla del Rebollar',38364,38369,3,2),(7059,'Torrecilla en Cameros',21740,21743,3,1),(7060,'Torrecilla sobre Alesanco',21744,21747,3,1),(7061,'Torrecillas de la Tiesa',10014,10017,3,1),(7062,'Torrecuadrada de Molina',17138,17141,3,1),(7063,'Torrecuadradilla',17142,17145,3,1),(7064,'Torredelcampo',19986,19989,3,1),(7065,'Torredembarra',37324,37327,3,1),(7066,'Torredonjimeno',19990,19993,3,1),(7067,'Torrefarrera',24572,24579,3,3),(7068,'Torrefeta i Florejacs',24580,24585,3,2),(7069,'Torregalindo',8738,8741,3,1),(7070,'Torregamones',43228,43231,3,1),(7071,'Torregrossa',24586,24589,3,1),(7072,'Torrehermosa',44626,44629,3,1),(7073,'Torreiglesias',34950,34955,3,2),(7074,'Torrejón de Ardoz',26766,26769,3,1),(7075,'Torrejón de la Calzada',26770,26773,3,1),(7076,'Torrejón de Velasco',26774,26777,3,1),(7077,'Torrejón del Rey',17146,17149,3,1),(7078,'Torrejón el Rubio',10018,10021,3,1),(7079,'Torrejoncillo',10022,10027,3,2),(7080,'Torrejoncillo del Rey',13762,13769,3,3),(7081,'Torrelacárcel',38370,38373,3,1),(7082,'Torrelaguna',26778,26781,3,1),(7083,'Torrelameu',24590,24593,3,1),(7084,'Torrelapaja',44630,44633,3,1),(7085,'Torrelara',8742,8745,3,1),(7086,'Torrelavega',11182,11191,3,4),(7087,'Torrelavit',7202,7205,3,1),(7088,'Torrella',40506,40509,3,1),(7089,'Torrellas',44634,44637,3,1),(7090,'Torrelles de Foix',7206,7209,3,1),(7091,'Torrelles de Llobregat',7210,7213,3,1),(7092,'Torrelobatón',41388,41391,3,1),(7093,'Torrelodones',26782,26785,3,1),(7094,'Torremanzanas/la Torre de les Maçanes',1628,1631,3,1),(7095,'Torremayor',5138,5141,3,1),(7096,'Torremejía',5142,5145,3,1),(7097,'Torremenga',10028,10031,3,1),(7098,'Torremocha',10032,10035,3,1),(7099,'Torremocha de Jadraque',17150,17153,3,1),(7100,'Torremocha de Jarama',26786,26789,3,1),(7101,'Torremocha de Jiloca',38374,38377,3,1),(7102,'Torremocha del Campo',17154,17161,3,3),(7103,'Torremocha del Pinar',17162,17165,3,1),(7104,'Torremochuela',17166,17169,3,1),(7105,'Torremolinos',27446,27449,3,1),(7106,'Torremontalbo',21748,21751,3,1),(7107,'Torremormojón',31146,31149,3,1),(7108,'Torrent',14944,14957,3,6),(7109,'Torrent',40510,40523,3,6),(7110,'Torrente de Cinca',19394,19397,3,1),(7111,'Torrenueva',12346,12349,3,1),(7112,'Torreorgaz',10036,10039,3,1),(7113,'Torrepadre',8746,8751,3,2),(7114,'Torreperogil',19994,19997,3,1),(7115,'Torrequemada',10040,10043,3,1),(7116,'Torres',19998,20001,3,1),(7117,'Torres de Albánchez',20002,20005,3,1),(7118,'Torres de Albarracín',38378,38381,3,1),(7119,'Torres de Alcanadre',19398,19401,3,1),(7120,'Torres de Barbués',19402,19405,3,1),(7121,'Torres de Berrellén',44638,44641,3,1),(7122,'Torres de la Alameda',26790,26793,3,1),(7123,'Torres de Segre',24594,24597,3,1),(7124,'Torres del Carrizal',43232,43235,3,1),(7125,'Torres del Río',29232,29235,3,1),(7126,'Torres Torres',40524,40527,3,1),(7127,'Torresandino',8752,8755,3,1),(7128,'Torrescárcela',41392,41395,3,1),(7129,'Torresmenudas',33824,33827,3,1),(7130,'Torrevelilla',38382,38385,3,1),(7131,'Torrevieja',1632,1649,3,8),(7132,'Torrico',39308,39311,3,1),(7133,'Torrijas',38386,38389,3,1),(7134,'Torrijo de la Cañada',44642,44645,3,1),(7135,'Torrijo del Campo',38390,38393,3,1),(7136,'Torrijos',39312,39315,3,1),(7137,'Torroella de Fluvià',14958,14961,3,1),(7138,'Torroella de Montgrí',14962,14973,3,5),(7139,'Torroja del Priorat',37328,37331,3,1),(7140,'Torrox',27450,27457,3,3),(7141,'Torrubia',17170,17173,3,1),(7142,'Torrubia de Soria',36436,36439,3,1),(7143,'Torrubia del Campo',13770,13773,3,1),(7144,'Torrubia del Castillo',13774,13777,3,1),(7145,'Tortellà',14974,14977,3,1),(7146,'Tórtola de Henares',17174,17177,3,1),(7147,'Tórtoles',4422,4425,3,1),(7148,'Tórtoles de Esgueva',8756,8761,3,2),(7149,'Tortosa',37332,37345,3,6),(7150,'Tortuera',17178,17181,3,1),(7151,'Tortuero',17182,17185,3,1),(7152,'Torvizcón',15920,15923,3,1),(7153,'Tosantos',8762,8765,3,1),(7154,'Toses',14978,14981,3,1),(7155,'Tosos',44646,44649,3,1),(7156,'Tossa de Mar',14982,14985,3,1),(7157,'Totalán',27458,27461,3,1),(7158,'Totana',28076,28083,3,3),(7159,'Totanés',39316,39319,3,1),(7160,'Touro',20996,21005,3,4),(7161,'Tous',40528,40531,3,1),(7162,'Trabada',25762,25771,3,4),(7163,'Trabadelo',23022,23027,3,2),(7164,'Trabanca',33828,33831,3,1),(7165,'Trabazos',43236,43245,3,4),(7166,'Tragacete',13778,13781,3,1),(7167,'Traíd',17186,17189,3,1),(7168,'Traiguera',11808,11811,3,1),(7169,'Tramacastiel',38394,38399,3,2),(7170,'Tramacastilla',38400,38403,3,1),(7171,'Tramaced',19406,19409,3,1),(7172,'Trasierra',5146,5149,3,1),(7173,'Trasmiras',30286,30295,3,4),(7174,'Trasmoz',44650,44653,3,1),(7175,'Trasobares',44654,44657,3,1),(7176,'Traspinedo',41396,41399,3,1),(7177,'Trazo',21006,21011,3,2),(7178,'Trebujena',10480,10483,3,1),(7179,'Trefacio',43246,43251,3,2),(7180,'Tremedal de Tormes',33832,33837,3,2),(7181,'Tremp',24598,24623,3,12),(7182,'Tres Cantos',26794,26799,3,2),(7183,'Trescasas',34956,34959,3,1),(7184,'Tresjuncos',13782,13785,3,1),(7185,'Trespaderne',8766,8773,3,3),(7186,'Tresviso',11192,11195,3,1),(7187,'Trévago',36440,36443,3,1),(7188,'Trevélez',15924,15927,3,1),(7189,'Treviana',21752,21755,3,1),(7190,'Triacastela',25772,25783,3,5),(7191,'Tribaldos',13786,13789,3,1),(7192,'Tricio',21756,21759,3,1),(7193,'Trigueros',18210,18213,3,1),(7194,'Trigueros del Valle',41400,41403,3,1),(7195,'Trijueque',17190,17193,3,1),(7196,'Trillo',17194,17201,3,3),(7197,'Triollo',31150,31153,3,1),(7198,'Tronchón',38404,38407,3,1),(7199,'Truchas',23028,23035,3,3),(7200,'Trucios-Turtzioz',42150,42153,3,1),(7201,'Trujillanos',5150,5153,3,1),(7202,'Trujillo',10044,10055,3,5),(7203,'Tubilla del Agua',8774,8779,3,2),(7204,'Tubilla del Lago',8780,8783,3,1),(7205,'Tudanca',11196,11199,3,1),(7206,'Tudela',29236,29239,3,1),(7207,'Tudela de Duero',41404,41411,3,3),(7208,'Tudelilla',21760,21763,3,1),(7209,'Tuéjar',40532,40535,3,1),(7210,'Tui',32166,32187,3,10),(7211,'Tulebras',29240,29243,3,1),(7212,'Turcia',23036,23041,3,2),(7213,'Turégano',34960,34965,3,2),(7214,'Turís',40536,40539,3,1),(7215,'Turleque',39320,39323,3,1),(7216,'Turón',15928,15931,3,1),(7217,'Turre',2256,2259,3,1),(7218,'Turrillas',2260,2263,3,1),(7219,'Úbeda',20006,20017,3,5),(7220,'Ubide',42154,42157,3,1),(7221,'Ubrique',10484,10487,3,1),(7222,'Ucar',29244,29247,3,1),(7223,'Uceda',17202,17205,3,1),(7224,'Ucero',36444,36447,3,1),(7225,'Uclés',13790,13793,3,1),(7226,'Udías',11200,11203,3,1),(7227,'Ugao-Miraballes',42158,42161,3,1),(7228,'Ugena',39324,39327,3,1),(7229,'Ugíjar',15932,15939,3,3),(7230,'Uharte Arakil',29248,29251,3,1),(7231,'Ujados',17206,17209,3,1),(7232,'Ujué',29252,29255,3,1),(7233,'Ulea',28084,28087,3,1),(7234,'Uleila del Campo',2264,2269,3,2),(7235,'Ullà',14986,14989,3,1),(7236,'Ullastrell',7214,7217,3,1),(7237,'Ullastret',14990,14993,3,1),(7238,'Ulldecona',37346,37353,3,3),(7239,'Ulldemolins',37354,37357,3,1),(7240,'Ultramort',14994,14997,3,1),(7241,'Ultzama',29256,29261,3,2),(7242,'Umbrete',35572,35575,3,1),(7243,'Umbrías',4426,4429,3,1),(7244,'Uña',13794,13797,3,1),(7245,'Uña de Quintana',43252,43255,3,1),(7246,'Uncastillo',44658,44661,3,1),(7247,'Unciti',29262,29267,3,2),(7248,'Undués de Lerda',44662,44665,3,1),(7249,'Unzué/Untzue',29268,29271,3,1),(7250,'Úrbel del Castillo',8784,8787,3,1),(7251,'Urda',39328,39331,3,1),(7252,'Urdazubi/Urdax',29272,29277,3,2),(7253,'Urdiain',29278,29281,3,1),(7254,'Urdiales del Páramo',23042,23047,3,2),(7255,'Urduliz',42162,42167,3,2),(7256,'Urduña/Orduña',42168,42173,3,2),(7257,'Urkabustaiz',278,285,3,3),(7258,'Urnieta',17746,17749,3,1),(7259,'Urones de Castroponce',41412,41415,3,1),(7260,'Urrácal',2270,2273,3,1),(7261,'Urraul Alto',29282,29287,3,2),(7262,'Urraul Bajo',29288,29295,3,3),(7263,'Urrea de Gaén',38408,38411,3,1),(7264,'Urrea de Jalón',44666,44669,3,1),(7265,'Urretxu',17750,17753,3,1),(7266,'Urriés',44670,44673,3,1),(7267,'Urroz',29296,29299,3,1),(7268,'Urroz-Villa',29300,29303,3,1),(7269,'Urueña',41416,41419,3,1),(7270,'Urueñas',34966,34969,3,1),(7271,'Uruñuela',21764,21767,3,1),(7272,'Urús',14998,15001,3,1),(7273,'Urzainqui/Urzainki',29304,29307,3,1),(7274,'Usagre',5154,5157,3,1),(7275,'Used',44674,44677,3,1),(7276,'Useras/les Useres',11812,11819,3,3),(7277,'Usurbil',17754,17759,3,2),(7278,'Utande',17210,17213,3,1),(7279,'Utebo',44678,44681,3,1),(7280,'Uterga',29308,29311,3,1),(7281,'Utiel',40540,40549,3,4),(7282,'Utrera',35576,35589,3,6),(7283,'Utrillas',38412,38419,3,3),(7284,'Uztárroz/Uztarroze',29312,29315,3,1),(7285,'Vacarisses',7218,7221,3,1),(7286,'Vadillo',36448,36451,3,1),(7287,'Vadillo de la Guareña',43256,43259,3,1),(7288,'Vadillo de la Sierra',4430,4433,3,1),(7289,'Vadocondes',8788,8791,3,1),(7290,'Val de San Lorenzo',23048,23051,3,1),(7291,'Val de San Martín',44682,44685,3,1),(7292,'Val de San Vicente',11204,11215,3,5),(7293,'Val do Dubra',21012,21021,3,4),(7294,'Valacloche',38420,38423,3,1),(7295,'Valbona',38424,38427,3,1),(7296,'Valbuena de Duero',41420,41423,3,1),(7297,'Valbuena de Pisuerga',31154,31157,3,1),(7298,'Valcabado',43260,43263,3,1),(7299,'Valdáliga',11216,11223,3,3),(7300,'Valdaracete',26800,26803,3,1),(7301,'Valdarachas',17214,17217,3,1),(7302,'Valdastillas',10056,10059,3,1),(7303,'Valde-Ucieza',31158,31161,3,1),(7304,'Valdealgorfa',38428,38431,3,1),(7305,'Valdeande',8792,8795,3,1),(7306,'Valdearcos de la Vega',41424,41427,3,1),(7307,'Valdearenas',17218,17221,3,1),(7308,'Valdeavellano',17222,17225,3,1),(7309,'Valdeavellano de Tera',36452,36455,3,1),(7310,'Valdeavero',26804,26807,3,1),(7311,'Valdeaveruelo',17226,17231,3,2),(7312,'Valdecaballeros',5158,5161,3,1),(7313,'Valdecañas de Tajo',10060,10065,3,2),(7314,'Valdecarros',33838,33841,3,1),(7315,'Valdecasa',4434,4437,3,1),(7316,'Valdeconcha',17232,17235,3,1),(7317,'Valdecuenca',38432,38435,3,1),(7318,'Valdefinjas',43264,43267,3,1),(7319,'Valdefresno',23052,23061,3,4),(7320,'Valdefuentes',10066,10071,3,2),(7321,'Valdefuentes de Sangusín',33842,33845,3,1),(7322,'Valdefuentes del Páramo',23062,23065,3,1),(7323,'Valdeganga',828,831,3,1),(7324,'Valdegeña',36456,36459,3,1),(7325,'Valdegovía/Gaubea',286,295,3,4),(7326,'Valdegrudas',17236,17239,3,1),(7327,'Valdehijaderos',33846,33849,3,1),(7328,'Valdehorna',44686,44689,3,1),(7329,'Valdehúncar',10072,10075,3,1),(7330,'Valdelacalzada',5162,5165,3,1),(7331,'Valdelacasa',33850,33853,3,1),(7332,'Valdelacasa de Tajo',10076,10079,3,1),(7333,'Valdelageve',33854,33857,3,1),(7334,'Valdelagua del Cerro',36460,36463,3,1),(7335,'Valdelaguna',26808,26811,3,1),(7336,'Valdelarco',18214,18217,3,1),(7337,'Valdelcubo',17240,17243,3,1),(7338,'Valdelinares',38436,38439,3,1),(7339,'Valdelosa',33858,33861,3,1),(7340,'Valdeltormo',38440,38443,3,1),(7341,'Valdelugueros',23066,23075,3,4),(7342,'Valdemadera',21768,21771,3,1),(7343,'Valdemaluque',36464,36469,3,2),(7344,'Valdemanco',26812,26815,3,1),(7345,'Valdemanco del Esteras',12350,12353,3,1),(7346,'Valdemaqueda',26816,26819,3,1),(7347,'Valdemeca',13798,13801,3,1),(7348,'Valdemierque',33862,33865,3,1),(7349,'Valdemora',23076,23079,3,1),(7350,'Valdemorales',10080,10083,3,1),(7351,'Valdemorillo',26820,26823,3,1),(7352,'Valdemorillo de la Sierra',13802,13805,3,1),(7353,'Valdemoro',26824,26833,3,4),(7354,'Valdemoro-Sierra',13806,13809,3,1),(7355,'Valdenebro',36470,36477,3,3),(7356,'Valdenebro de los Valles',41428,41431,3,1),(7357,'Valdenuño Fernández',17244,17247,3,1),(7358,'Valdeobispo',10084,10087,3,1),(7359,'Valdeolea',11224,11229,3,2),(7360,'Valdeolivas',13810,13813,3,1),(7361,'Valdeolmillos',31162,31165,3,1),(7362,'Valdeolmos-Alalpardo',26834,26837,3,1),(7363,'Valdepeñas',12354,12359,3,2),(7364,'Valdepeñas de Jaén',20018,20025,3,3),(7365,'Valdepeñas de la Sierra',17248,17251,3,1),(7366,'Valdepiélago',23080,23087,3,3),(7367,'Valdepiélagos',26838,26841,3,1),(7368,'Valdepolo',23088,23095,3,3),(7369,'Valdeprado',36478,36483,3,2),(7370,'Valdeprado del Río',11230,11237,3,3),(7371,'Valdeprados',34970,34973,3,1),(7372,'Valderas',23096,23099,3,1),(7373,'Valderrábano',31166,31171,3,2),(7374,'Valderrebollo',17252,17255,3,1),(7375,'Valderredible',11238,11251,3,6),(7376,'Valderrey',23100,23109,3,4),(7377,'Valderrobres',38444,38447,3,1),(7378,'Valderrodilla',36484,36487,3,1),(7379,'Valderrodrigo',33866,33869,3,1),(7380,'Valderrubio',15940,15941,3,0),(7381,'Valderrueda',23110,23127,3,8),(7382,'Valdés',3330,3361,3,15),(7383,'Valdesamario',23128,23131,3,1),(7384,'Valdescorriel',43268,43271,3,1),(7385,'Valdesotos',17256,17259,3,1),(7386,'Valdestillas',41432,41435,3,1),(7387,'Valdetorres',5166,5169,3,1),(7388,'Valdetorres de Jarama',26842,26845,3,1),(7389,'Valdetórtola',13814,13817,3,1),(7390,'Valdevacas de Montejo',34974,34977,3,1),(7391,'Valdevacas y Guijar',34978,34981,3,1),(7392,'Valdeverdeja',39332,39335,3,1),(7393,'Valdevimbre',23132,23137,3,2),(7394,'Valdezate',8796,8799,3,1),(7395,'Valdilecha',26846,26849,3,1),(7396,'Valdorros',8800,8803,3,1),(7397,'Valdoviño',21022,21037,3,7),(7398,'Valdunciel',33870,33875,3,2),(7399,'Valdunquillo',41436,41439,3,1),(7400,'Valencia',40550,40613,3,31),(7401,'Valencia de Alcántara',10088,10103,3,7),(7402,'Valencia de Don Juan',23138,23143,3,2),(7403,'Valencia de las Torres',5170,5173,3,1),(7404,'Valencia del Mombuey',5174,5177,3,1),(7405,'Valencia del Ventoso',5178,5181,3,1),(7406,'Valencina de la Concepción',35590,35593,3,1),(7407,'Valenzuela',12876,12879,3,1),(7408,'Valenzuela de Calatrava',12360,12363,3,1),(7409,'Valero',33876,33879,3,1),(7410,'Valfarta',19410,19413,3,1),(7411,'Valfermoso de Tajuña',17260,17263,3,1),(7412,'Valga',32188,32195,3,3),(7413,'Valgañón',21772,21775,3,1),(7414,'Valhermoso',17264,17267,3,1),(7415,'Valhermoso de la Fuente',13818,13821,3,1),(7416,'Valjunquera',38448,38451,3,1),(7417,'Vall d\'Alba',11820,11825,3,2),(7418,'Vall de Almonacid',11826,11829,3,1),(7419,'Vall de Cardós',24624,24635,3,5),(7420,'Vall de Gallinera',1650,1655,3,2),(7421,'Vall-llobrega',15002,15005,3,1),(7422,'Vallada',40614,40617,3,1),(7423,'Valladolid',41440,41489,3,24),(7424,'Vallanca',40618,40621,3,1),(7425,'Vallarta de Bureba',8804,8807,3,1),(7426,'Vallat',11830,11833,3,1),(7427,'Vallbona d\'Anoia',7222,7225,3,1),(7428,'Vallbona de les Monges',24636,24641,3,2),(7429,'Vallcebre',7226,7229,3,1),(7430,'Vallclara',37358,37361,3,1),(7431,'Valldemossa',5712,5717,3,2),(7432,'Valle de Abdalajís',27462,27465,3,1),(7433,'Valle de Bardají',19414,19417,3,1),(7434,'Valle de Cerrato',31172,31175,3,1),(7435,'Valle de Egüés/Eguesibar',29316,29325,3,4),(7436,'Valle de Hecho',19418,19427,3,4),(7437,'Valle de la Serena',5182,5185,3,1),(7438,'Valle de las Navas',8808,8813,3,2),(7439,'Valle de Lierp',19428,19433,3,2),(7440,'Valle de Losa',8814,8821,3,3),(7441,'Valle de Manzanedo',8822,8827,3,2),(7442,'Valle de Matamoros',5186,5189,3,1),(7443,'Valle de Mena',8828,8847,3,9),(7444,'Valle de Oca',8848,8851,3,1),(7445,'Valle de Ollo/Ollaran',29326,29329,3,1),(7446,'Valle de Santa Ana',5190,5193,3,1),(7447,'Valle de Santibáñez',8852,8859,3,3),(7448,'Valle de Sedano',8860,8869,3,4),(7449,'Valle de Tabladillo',34982,34985,3,1),(7450,'Valle de Tobalina',8870,8881,3,5),(7451,'Valle de Trápaga-Trapagaran',42174,42179,3,2),(7452,'Valle de Valdebezana',8882,8887,3,2),(7453,'Valle de Valdelaguna',8888,8891,3,1),(7454,'Valle de Valdelucio',8892,8895,3,1),(7455,'Valle de Villaverde',11252,11255,3,1),(7456,'Valle de Yerri/Deierri',29330,29341,3,5),(7457,'Valle de Zamanzas',8896,8899,3,1),(7458,'Valle del Retortillo',31176,31179,3,1),(7459,'Valle del Zalabí',15942,15945,3,1),(7460,'Vallecillo',23144,23147,3,1),(7461,'Vallejera',8900,8903,3,1),(7462,'Vallejera de Riofrío',33880,33883,3,1),(7463,'Vallelado',34986,34989,3,1),(7464,'Valleruela de Pedraza',34990,34993,3,1),(7465,'Valleruela de Sepúlveda',34994,34997,3,1),(7466,'Vallés',40622,40625,3,1),(7467,'Valles de Palenzuela',8904,8907,3,1),(7468,'Vallesa de la Guareña',43272,43275,3,1),(7469,'Vallfogona de Balaguer',24642,24647,3,2),(7470,'Vallfogona de Ripollès',15006,15009,3,1),(7471,'Vallfogona de Riucorb',37362,37365,3,1),(7472,'Vallgorguina',7230,7235,3,2),(7473,'Vallibona',11834,11837,3,1),(7474,'Vallirana',7236,7239,3,1),(7475,'Vallmoll',37366,37369,3,1),(7476,'Vallromanes',7240,7243,3,1),(7477,'Valls',37370,37377,3,3),(7478,'Valluércanes',8908,8911,3,1),(7479,'Valmadrid',44690,44693,3,1),(7480,'Valmala',8912,8915,3,1),(7481,'Valmojado',39336,39339,3,1),(7482,'Válor',15946,15949,3,1),(7483,'Valoria la Buena',41490,41493,3,1),(7484,'Valpalmas',44694,44697,3,1),(7485,'Valsalabroso',33884,33889,3,2),(7486,'Valsalobre',13822,13825,3,1),(7487,'Valseca',34998,35001,3,1),(7488,'Valsequillo',12880,12883,3,1),(7489,'Valtablado del Río',17268,17271,3,1),(7490,'Valtajeros',36488,36491,3,1),(7491,'Valtiendas',35002,35007,3,2),(7492,'Valtierra',29342,29345,3,1),(7493,'Valtorres',44698,44701,3,1),(7494,'Valverde de Alcalá',26850,26853,3,1),(7495,'Valverde de Burguillos',5194,5197,3,1),(7496,'Valverde de Campos',41494,41497,3,1),(7497,'Valverde de Júcar',13826,13829,3,1),(7498,'Valverde de la Vera',10104,10107,3,1),(7499,'Valverde de la Virgen',23148,23155,3,3),(7500,'Valverde de Leganés',5198,5201,3,1),(7501,'Valverde de Llerena',5202,5205,3,1),(7502,'Valverde de los Arroyos',17272,17275,3,1),(7503,'Valverde de Mérida',5206,5209,3,1),(7504,'Valverde de Valdelacasa',33890,33893,3,1),(7505,'Valverde del Camino',18218,18221,3,1),(7506,'Valverde del Fresno',10108,10111,3,1),(7507,'Valverde del Majano',35008,35011,3,1),(7508,'Valverde-Enrique',23156,23161,3,2),(7509,'Valverdejo',13830,13833,3,1),(7510,'Valverdón',33894,33899,3,2),(7511,'Vandellòs i l\'Hospitalet de l\'Infant',37378,37383,3,2),(7512,'Vara de Rey',13834,13837,3,1),(7513,'Veciana',7244,7247,3,1),(7514,'Vecinos',33900,33907,3,3),(7515,'Vedra',21038,21045,3,3),(7516,'Vega de Espinareda',23162,23175,3,6),(7517,'Vega de Infanzones',23176,23181,3,2),(7518,'Vega de Liébana',11256,11261,3,2),(7519,'Vega de Pas',11262,11269,3,3),(7520,'Vega de Ruiponce',41498,41501,3,1),(7521,'Vega de Santa María',4438,4441,3,1),(7522,'Vega de Tera',43276,43283,3,3),(7523,'Vega de Tirados',33908,33913,3,2),(7524,'Vega de Valcarce',23182,23191,3,4),(7525,'Vega de Valdetronco',41502,41505,3,1),(7526,'Vega de Villalobos',43284,43287,3,1),(7527,'Vega del Codorno',13838,13841,3,1),(7528,'Vegacervera',23192,23197,3,2),(7529,'Vegadeo',3362,3371,3,4),(7530,'Vegalatrave',43288,43291,3,1),(7531,'Veganzones',35012,35015,3,1),(7532,'Vegaquemada',23198,23207,3,4),(7533,'Vegas de Matute',35016,35019,3,1),(7534,'Vegas del Condado',23208,23219,3,5),(7535,'Vegas del Genil',15950,15955,3,2),(7536,'Vegaviana',10112,10117,3,2),(7537,'Veguillas de la Sierra',38452,38455,3,1),(7538,'Vejer de la Frontera',10488,10497,3,4),(7539,'Velada',39340,39343,3,1),(7540,'Velamazán',36492,36495,3,1),(7541,'Velascálvaro',41506,41509,3,1),(7542,'Velayos',4442,4445,3,1),(7543,'Velefique',2274,2277,3,1),(7544,'Vélez de Benaudalla',15956,15963,3,3),(7545,'Vélez-Blanco',2278,2285,3,3),(7546,'Vélez-Málaga',27466,27487,3,10),(7547,'Vélez-Rubio',2286,2297,3,5),(7548,'Velilla',41510,41513,3,1),(7549,'Velilla de Cinca',19434,19437,3,1),(7550,'Velilla de Ebro',44702,44705,3,1),(7551,'Velilla de Jiloca',44706,44709,3,1),(7552,'Velilla de la Sierra',36496,36499,3,1),(7553,'Velilla de los Ajos',36500,36503,3,1),(7554,'Velilla de San Antonio',26854,26857,3,1),(7555,'Velilla del Río Carrión',31180,31187,3,3),(7556,'Vellisca',13842,13845,3,1),(7557,'Velliza',41514,41517,3,1),(7558,'Vencillón',19438,19441,3,1),(7559,'Venialbo',43292,43295,3,1),(7560,'Venta de Baños',31188,31193,3,2),(7561,'Venta del Moro',40626,40631,3,2),(7562,'Ventalló',15010,15019,3,4),(7563,'Ventas de Huelma',15964,15967,3,1),(7564,'Ventosa',21776,21779,3,1),(7565,'Ventosa de la Cuesta',41518,41521,3,1),(7566,'Ventosa del Río Almar',33914,33917,3,1),(7567,'Ventosilla y Tejadilla',35020,35023,3,1),(7568,'Ventrosa',21780,21783,3,1),(7569,'Venturada',26858,26861,3,1),(7570,'Vera',2298,2301,3,1),(7571,'Vera de Moncayo',44710,44713,3,1),(7572,'Verdú',24648,24651,3,1),(7573,'Verea',30296,30299,3,1),(7574,'Verges',15020,15023,3,1),(7575,'Verín',30300,30317,3,8),(7576,'Vertavillo',31194,31197,3,1),(7577,'Vespella de Gaià',37384,37387,3,1),(7578,'Vezdemarbán',43296,43299,3,1),(7579,'Viacamp y Litera',19442,19447,3,2),(7580,'Viana',29346,29349,3,1),(7581,'Viana de Cega',41522,41525,3,1),(7582,'Viana de Duero',36504,36507,3,1),(7583,'Viana de Jadraque',17276,17279,3,1),(7584,'Viana do Bolo',30318,30339,3,10),(7585,'Viandar de la Vera',10118,10121,3,1),(7586,'Vianos',832,835,3,1),(7587,'Viator',2302,2305,3,1),(7588,'Vic',7248,7253,3,2),(7589,'Vícar',2306,2313,3,3),(7590,'Vicién',19448,19451,3,1),(7591,'Vidángoz/Bidankoze',29350,29353,3,1),(7592,'Vidayanes',43300,43303,3,1),(7593,'Videmala',43304,43309,3,2),(7594,'Vidrà',15024,15027,3,1),(7595,'Vidreres',15028,15031,3,1),(7596,'Vielha e Mijaran',24652,24661,3,4),(7597,'Vierlas',44714,44717,3,1),(7598,'Vigo',32196,32251,3,27),(7599,'Viguera',21784,21787,3,1),(7600,'Vila de Cruces',32252,32277,3,12),(7601,'Vila-real',11838,11841,3,1),(7602,'Vila-rodona',37388,37391,3,1),(7603,'Vila-sacra',15032,15035,3,1),(7604,'Vila-sana',24662,24665,3,1),(7605,'Vila-seca',37392,37399,3,3),(7606,'Vilabella',37400,37403,3,1),(7607,'Vilabertran',15036,15039,3,1),(7608,'Vilablareix',15040,15043,3,1),(7609,'Vilaboa',32278,32285,3,3),(7610,'Vilada',7254,7257,3,1),(7611,'Viladamat',15044,15047,3,1),(7612,'Viladasens',15048,15051,3,1),(7613,'Viladecans',7258,7261,3,1),(7614,'Viladecavalls',7262,7265,3,1),(7615,'Vilademuls',15052,15057,3,2),(7616,'Viladrau',15058,15061,3,1),(7617,'Vilafamés',11842,11845,3,1),(7618,'Vilafant',15062,15065,3,1),(7619,'Vilafranca de Bonany',5718,5721,3,1),(7620,'Vilafranca del Penedès',7266,7269,3,1),(7621,'Vilagarcía de Arousa',32286,32303,3,8),(7622,'Vilagrassa',24666,24669,3,1),(7623,'Vilajuïga',15066,15069,3,1),(7624,'Vilalba',25784,25825,3,20),(7625,'Vilalba dels Arcs',37404,37407,3,1),(7626,'Vilalba Sasserra',7270,7273,3,1),(7627,'Vilaller',24670,24675,3,2),(7628,'Vilallonga de Ter',15070,15073,3,1),(7629,'Vilallonga del Camp',37408,37411,3,1),(7630,'Vilamacolum',15074,15077,3,1),(7631,'Vilamalla',15078,15081,3,1),(7632,'Vilamaniscle',15082,15085,3,1),(7633,'Vilamarín',30340,30351,3,5),(7634,'Vilamartín de Valdeorras',30352,30363,3,5),(7635,'Vilamòs',24676,24679,3,1),(7636,'Vilanant',15086,15091,3,2),(7637,'Vilanova d\'Alcolea',11846,11849,3,1),(7638,'Vilanova d\'Escornalbou',37412,37417,3,2),(7639,'Vilanova de Arousa',32304,32317,3,6),(7640,'Vilanova de Bellpuig',24680,24683,3,1),(7641,'Vilanova de l\'Aguda',24684,24689,3,2),(7642,'Vilanova de la Barca',24690,24693,3,1),(7643,'Vilanova de Meià',24694,24701,3,3),(7644,'Vilanova de Prades',37418,37421,3,1),(7645,'Vilanova de Sau',7274,7277,3,1),(7646,'Vilanova de Segrià',24702,24705,3,1),(7647,'Vilanova del Camí',7278,7281,3,1),(7648,'Vilanova del Vallès',7282,7285,3,1),(7649,'Vilanova i la Geltrú',7286,7289,3,1),(7650,'Vilaplana',37422,37425,3,1),(7651,'Vilar de Barrio',30364,30369,3,2),(7652,'Vilar de Canes',11850,11853,3,1),(7653,'Vilar de Santos',30370,30375,3,2),(7654,'Vilardevós',30376,30385,3,4),(7655,'Vilariño de Conso',30386,30393,3,3),(7656,'Vilarmaior',21046,21055,3,4),(7657,'Vilasantar',21056,21059,3,1),(7658,'Vilassar de Dalt',7290,7293,3,1),(7659,'Vilassar de Mar',7294,7297,3,1),(7660,'Vilaür',15092,15095,3,1),(7661,'Vilaverd',37426,37429,3,1),(7662,'Vilches',20026,20033,3,3),(7663,'Vileña',8916,8919,3,1),(7664,'Villa de Otura',15968,15971,3,1),(7665,'Villa de Ves',836,839,3,1),(7666,'Villa del Campo',10122,10125,3,1),(7667,'Villa del Prado',26862,26865,3,1),(7668,'Villa del Rey',10126,10129,3,1),(7669,'Villa del Río',12884,12889,3,2),(7670,'Villabáñez',41526,41529,3,1),(7671,'Villabaruz de Campos',41530,41533,3,1),(7672,'Villabasta de Valdavia',31198,31201,3,1),(7673,'Villablanca',18222,18225,3,1),(7674,'Villablino',23220,23241,3,10),(7675,'Villabona',17760,17763,3,1),(7676,'Villabrágima',41534,41537,3,1),(7677,'Villabraz',23242,23247,3,2),(7678,'Villabrázaro',43310,43315,3,2),(7679,'Villabuena de Álava/Eskuernaga',296,299,3,1),(7680,'Villabuena del Puente',43316,43319,3,1),(7681,'Villacañas',39344,39349,3,2),(7682,'Villacarralón',41538,41541,3,1),(7683,'Villacarriedo',11270,11277,3,3),(7684,'Villacarrillo',20034,20043,3,4),(7685,'Villacastín',35024,35027,3,1),(7686,'Villacid de Campos',41542,41545,3,1),(7687,'Villacidaler',31202,31207,3,2),(7688,'Villaciervos',36508,36511,3,1),(7689,'Villaco',41546,41549,3,1),(7690,'Villaconancio',31208,31211,3,1),(7691,'Villaconejos',26866,26869,3,1),(7692,'Villaconejos de Trabaque',13846,13849,3,1),(7693,'Villada',31212,31217,3,2),(7694,'Villadangos del Páramo',23248,23251,3,1),(7695,'Villademor de la Vega',23252,23255,3,1),(7696,'Villadepera',43320,43323,3,1),(7697,'Villadiego',8920,8933,3,6),(7698,'Villadoz',44718,44721,3,1),(7699,'Villaeles de Valdavia',31218,31221,3,1),(7700,'Villaescusa',43324,43327,3,1),(7701,'Villaescusa',11278,11279,3,0),(7702,'Villaescusa de Haro',13850,13853,3,1),(7703,'Villaescusa de Roa',8934,8937,3,1),(7704,'Villaescusa la Sombría',8938,8943,3,2),(7705,'Villaespasa',8944,8949,3,2),(7706,'Villafáfila',43328,43333,3,2),(7707,'Villafeliche',44722,44725,3,1),(7708,'Villaferrueña',43334,43337,3,1),(7709,'Villaflor',4446,4449,3,1),(7710,'Villaflores',33918,33921,3,1),(7711,'Villafrades de Campos',41550,41553,3,1),(7712,'Villafranca',29354,29357,3,1),(7713,'Villafranca de Córdoba',12890,12895,3,2),(7714,'Villafranca de Duero',41554,41557,3,1),(7715,'Villafranca de Ebro',44726,44729,3,1),(7716,'Villafranca de la Sierra',4450,4453,3,1),(7717,'Villafranca de los Barros',5210,5213,3,1),(7718,'Villafranca de los Caballeros',39350,39353,3,1),(7719,'Villafranca del Bierzo',23256,23273,3,8),(7720,'Villafranca del Campo',38456,38459,3,1),(7721,'Villafranca del Cid/Vilafranca',11854,11857,3,1),(7722,'Villafranca Montes de Oca',8950,8955,3,2),(7723,'Villafrechós',41558,41561,3,1),(7724,'Villafruela',8956,8959,3,1),(7725,'Villafuerte',41562,41565,3,1),(7726,'Villafufre',11280,11285,3,2),(7727,'Villagalijo',8960,8963,3,1),(7728,'Villagarcía de Campos',41566,41569,3,1),(7729,'Villagarcía de la Torre',5214,5217,3,1),(7730,'Villagarcía del Llano',13854,13859,3,2),(7731,'Villagatón',23274,23285,3,5),(7732,'Villageriz',43338,43341,3,1),(7733,'Villagómez la Nueva',41570,41573,3,1),(7734,'Villagonzalo',5218,5221,3,1),(7735,'Villagonzalo de Tormes',33922,33925,3,1),(7736,'Villagonzalo Pedernales',8964,8967,3,1),(7737,'Villahán',31222,31225,3,1),(7738,'Villaharta',12896,12899,3,1),(7739,'Villahermosa',12364,12369,3,2),(7740,'Villahermosa del Campo',38460,38463,3,1),(7741,'Villahermosa del Río',11858,11861,3,1),(7742,'Villaherreros',31226,31231,3,2),(7743,'Villahoz',8968,8971,3,1),(7744,'Villajoyosa/la Vila Joiosa',1656,1659,3,1),(7745,'Villalaco',31232,31235,3,1),(7746,'Villalán de Campos',41574,41577,3,1),(7747,'Villalar de los Comuneros',41578,41581,3,1),(7748,'Villalazán',43342,43345,3,1),(7749,'Villalba de Duero',8972,8975,3,1),(7750,'Villalba de Guardo',31236,31239,3,1),(7751,'Villalba de la Lampreana',43346,43349,3,1),(7752,'Villalba de la Loma',41582,41585,3,1),(7753,'Villalba de la Sierra',13860,13863,3,1),(7754,'Villalba de los Alcores',41586,41589,3,1),(7755,'Villalba de los Barros',5222,5225,3,1),(7756,'Villalba de los Llanos',33926,33929,3,1),(7757,'Villalba de Perejil',44730,44733,3,1),(7758,'Villalba de Rioja',21788,21791,3,1),(7759,'Villalba del Alcor',18226,18229,3,1),(7760,'Villalba del Rey',13864,13867,3,1),(7761,'Villalbarba',41590,41593,3,1),(7762,'Villalbilla',26870,26873,3,1),(7763,'Villalbilla de Burgos',8976,8981,3,2),(7764,'Villalbilla de Gumiel',8982,8985,3,1),(7765,'Villalcampo',43350,43353,3,1),(7766,'Villalcázar de Sirga',31240,31243,3,1),(7767,'Villalcón',31244,31247,3,1),(7768,'Villaldemiro',8986,8989,3,1),(7769,'Villalengua',44734,44737,3,1),(7770,'Villalgordo del Júcar',840,843,3,1),(7771,'Villalgordo del Marquesado',13868,13871,3,1),(7772,'Villalmanzo',8990,8993,3,1),(7773,'Villalobar de Rioja',21792,21795,3,1),(7774,'Villalobón',31248,31251,3,1),(7775,'Villalobos',43354,43357,3,1),(7776,'Villalón de Campos',41594,41597,3,1),(7777,'Villalonga',40632,40635,3,1),(7778,'Villalonso',43358,43361,3,1),(7779,'Villalpando',43362,43365,3,1),(7780,'Villalpardo',13872,13875,3,1),(7781,'Villalube',43366,43369,3,1),(7782,'Villaluenga de la Sagra',39354,39357,3,1),(7783,'Villaluenga de la Vega',31252,31259,3,3),(7784,'Villaluenga del Rosario',10498,10501,3,1),(7785,'Villamalea',844,847,3,1),(7786,'Villamalur',11862,11865,3,1),(7787,'Villamañán',23286,23291,3,2),(7788,'Villamandos',23292,23295,3,1),(7789,'Villamanín',23296,23309,3,6),(7790,'Villamanrique',12370,12373,3,1),(7791,'Villamanrique de la Condesa',35594,35597,3,1),(7792,'Villamanrique de Tajo',26874,26877,3,1),(7793,'Villamanta',26878,26881,3,1),(7794,'Villamantilla',26882,26885,3,1),(7795,'Villamarchante',40636,40639,3,1),(7796,'Villamartín',10502,10505,3,1),(7797,'Villamartín de Campos',31260,31263,3,1),(7798,'Villamartín de Don Sancho',23310,23313,3,1),(7799,'Villamayor',33930,33933,3,1),(7800,'Villamayor de Calatrava',12374,12377,3,1),(7801,'Villamayor de Campos',43370,43373,3,1),(7802,'Villamayor de Gállego',44738,44741,3,1),(7803,'Villamayor de los Montes',8994,8997,3,1),(7804,'Villamayor de Monjardín',29358,29361,3,1),(7805,'Villamayor de Santiago',13876,13879,3,1),(7806,'Villamayor de Treviño',8998,9001,3,1),(7807,'Villambistia',9002,9005,3,1),(7808,'Villamediana',31264,31267,3,1),(7809,'Villamediana de Iregua',21796,21801,3,2),(7810,'Villamedianilla',9006,9009,3,1),(7811,'Villamejil',23314,23321,3,3),(7812,'Villamena',15972,15975,3,1),(7813,'Villameriel',31268,31275,3,3),(7814,'Villamesías',10130,10133,3,1),(7815,'Villamiel',10134,10139,3,2),(7816,'Villamiel de la Sierra',9010,9013,3,1),(7817,'Villamiel de Toledo',39358,39361,3,1),(7818,'Villaminaya',39362,39365,3,1),(7819,'Villamol',23322,23327,3,2),(7820,'Villamontán de la Valduerna',23328,23333,3,2),(7821,'Villamor de los Escuderos',43374,43377,3,1),(7822,'Villamoratiel de las Matas',23334,23337,3,1),(7823,'Villamoronta',31276,31279,3,1),(7824,'Villamuelas',39366,39369,3,1),(7825,'Villamuera de la Cueza',31280,31283,3,1),(7826,'Villamuriel de Campos',41598,41601,3,1),(7827,'Villamuriel de Cerrato',31284,31287,3,1),(7828,'Villán de Tordesillas',41602,41605,3,1),(7829,'Villanázar',43378,43385,3,3),(7830,'Villangómez',9014,9017,3,1),(7831,'Villanova',19452,19455,3,1),(7832,'Villanúa',19456,19459,3,1),(7833,'Villanubla',41606,41609,3,1),(7834,'Villanueva de Alcardete',39370,39373,3,1),(7835,'Villanueva de Alcorón',17280,17283,3,1),(7836,'Villanueva de Algaidas',27488,27493,3,2),(7837,'Villanueva de Argaño',9018,9021,3,1),(7838,'Villanueva de Argecilla',17284,17287,3,1),(7839,'Villanueva de Ávila',4454,4457,3,1),(7840,'Villanueva de Azoague',43386,43391,3,2),(7841,'Villanueva de Bogas',39374,39377,3,1),(7842,'Villanueva de Cameros',21802,21805,3,1),(7843,'Villanueva de Campeán',43392,43395,3,1),(7844,'Villanueva de Carazo',9022,9025,3,1),(7845,'Villanueva de Castellón',40640,40643,3,1),(7846,'Villanueva de Córdoba',12900,12903,3,1),(7847,'Villanueva de Duero',41610,41613,3,1),(7848,'Villanueva de Gállego',44742,44745,3,1),(7849,'Villanueva de Gómez',4458,4461,3,1),(7850,'Villanueva de Gormaz',36512,36515,3,1),(7851,'Villanueva de Guadamejud',13880,13883,3,1),(7852,'Villanueva de Gumiel',9026,9029,3,1),(7853,'Villanueva de Huerva',44746,44749,3,1),(7854,'Villanueva de Jiloca',44750,44753,3,1),(7855,'Villanueva de la Cañada',26886,26891,3,2),(7856,'Villanueva de la Concepción',27494,27497,3,1),(7857,'Villanueva de la Condesa',41614,41617,3,1),(7858,'Villanueva de la Fuente',12378,12381,3,1),(7859,'Villanueva de la Jara',13884,13891,3,3),(7860,'Villanueva de la Reina',20044,20049,3,2),(7861,'Villanueva de la Serena',5226,5237,3,5),(7862,'Villanueva de la Sierra',10140,10145,3,2),(7863,'Villanueva de la Torre',17288,17293,3,2),(7864,'Villanueva de la Vera',10146,10151,3,2),(7865,'Villanueva de las Cruces',18230,18233,3,1),(7866,'Villanueva de las Manzanas',23338,23341,3,1),(7867,'Villanueva de las Peras',43396,43399,3,1),(7868,'Villanueva de las Torres',15976,15979,3,1),(7869,'Villanueva de los Caballeros',41618,41621,3,1),(7870,'Villanueva de los Castillejos',18234,18237,3,1),(7871,'Villanueva de los Infantes',12382,12385,3,1),(7872,'Villanueva de los Infantes',41622,41623,3,0),(7873,'Villanueva de Oscos',3372,3375,3,1),(7874,'Villanueva de Perales',26892,26895,3,1),(7875,'Villanueva de San Carlos',12386,12389,3,1),(7876,'Villanueva de San Juan',35598,35601,3,1),(7877,'Villanueva de San Mancio',41624,41627,3,1),(7878,'Villanueva de Sigena',19460,19463,3,1),(7879,'Villanueva de Tapia',27498,27501,3,1),(7880,'Villanueva de Teba',9030,9033,3,1),(7881,'Villanueva de Viver',11866,11869,3,1),(7882,'Villanueva del Aceral',4462,4465,3,1),(7883,'Villanueva del Ariscal',35602,35605,3,1),(7884,'Villanueva del Arzobispo',20050,20055,3,2),(7885,'Villanueva del Campillo',4466,4469,3,1),(7886,'Villanueva del Campo',43400,43403,3,1),(7887,'Villanueva del Conde',33934,33937,3,1),(7888,'Villanueva del Duque',12904,12907,3,1),(7889,'Villanueva del Fresno',5238,5241,3,1),(7890,'Villanueva del Pardillo',26896,26899,3,1),(7891,'Villanueva del Rebollar',31288,31291,3,1),(7892,'Villanueva del Rebollar de la Sierra',38464,38467,3,1),(7893,'Villanueva del Rey',12908,12911,3,1),(7894,'Villanueva del Río Segura',28088,28091,3,1),(7895,'Villanueva del Río y Minas',35606,35613,3,3),(7896,'Villanueva del Rosario',27502,27505,3,1),(7897,'Villanueva del Trabuco',27506,27511,3,2),(7898,'Villanueva Mesía',15980,15983,3,1),(7899,'Villanuño de Valdavia',31292,31295,3,1),(7900,'Villaobispo de Otero',23342,23347,3,2),(7901,'Villaornate y Castro',23348,23351,3,1),(7902,'Villapalacios',848,851,3,1),(7903,'Villaprovedo',31296,31299,3,1),(7904,'Villaquejida',23352,23357,3,2),(7905,'Villaquilambre',23358,23367,3,4),(7906,'Villaquirán de la Puebla',9034,9037,3,1),(7907,'Villaquirán de los Infantes',9038,9041,3,1),(7908,'Villar de Argañán',33938,33941,3,1),(7909,'Villar de Cañas',13892,13895,3,1),(7910,'Villar de Ciervo',33942,33945,3,1),(7911,'Villar de Corneja',4470,4473,3,1),(7912,'Villar de Domingo García',13896,13901,3,2),(7913,'Villar de Fallaves',43404,43407,3,1),(7914,'Villar de Gallimazo',33946,33949,3,1),(7915,'Villar de la Encina',13902,13905,3,1),(7916,'Villar de la Yegua',33950,33955,3,2),(7917,'Villar de los Navarros',44754,44759,3,2),(7918,'Villar de Olalla',13906,13911,3,2),(7919,'Villar de Peralonso',33956,33961,3,2),(7920,'Villar de Plasencia',10152,10155,3,1),(7921,'Villar de Rena',5242,5247,3,2),(7922,'Villar de Samaniego',33962,33965,3,1),(7923,'Villar de Torre',21806,21809,3,1),(7924,'Villar del Ala',36516,36519,3,1),(7925,'Villar del Arzobispo',40644,40647,3,1),(7926,'Villar del Buey',43408,43417,3,4),(7927,'Villar del Campo',36520,36523,3,1),(7928,'Villar del Cobo',38468,38471,3,1),(7929,'Villar del Humo',13912,13915,3,1),(7930,'Villar del Infantado',13916,13919,3,1),(7931,'Villar del Olmo',26900,26905,3,2),(7932,'Villar del Pedroso',10156,10161,3,2),(7933,'Villar del Pozo',12390,12393,3,1),(7934,'Villar del Rey',5248,5251,3,1),(7935,'Villar del Río',36524,36531,3,3),(7936,'Villar del Salz',38472,38475,3,1),(7937,'Villar y Velasco',13920,13923,3,1),(7938,'Villaralbo',43418,43421,3,1),(7939,'Villaralto',12912,12915,3,1),(7940,'Villarcayo de Merindad de Castilla la Vieja',9042,9061,3,9),(7941,'Villardeciervos',43422,43427,3,2),(7942,'Villardefrades',41628,41631,3,1),(7943,'Villardiegua de la Ribera',43428,43431,3,1),(7944,'Villárdiga',43432,43435,3,1),(7945,'Villardompardo',20056,20059,3,1),(7946,'Villardondiego',43436,43439,3,1),(7947,'Villarejo',21810,21813,3,1),(7948,'Villarejo de Fuentes',13924,13927,3,1),(7949,'Villarejo de la Peñuela',13928,13931,3,1),(7950,'Villarejo de Montalbán',39378,39381,3,1),(7951,'Villarejo de Órbigo',23368,23375,3,3),(7952,'Villarejo de Salvanés',26906,26909,3,1),(7953,'Villarejo del Valle',4474,4477,3,1),(7954,'Villarejo-Periesteban',13932,13935,3,1),(7955,'Villares de Jadraque',17294,17297,3,1),(7956,'Villares de la Reina',33966,33973,3,3),(7957,'Villares de Órbigo',23376,23381,3,2),(7958,'Villares de Yeltes',33974,33977,3,1),(7959,'Villares del Saz',13936,13939,3,1),(7960,'Villargordo del Cabriel',40648,40653,3,2),(7961,'Villariezo',9062,9065,3,1),(7962,'Villarino de los Aires',33978,33985,3,3),(7963,'Villarluengo',38476,38479,3,1),(7964,'Villarmayor',33986,33993,3,3),(7965,'Villarmentero de Campos',31300,31303,3,1),(7966,'Villarmentero de Esgueva',41632,41635,3,1),(7967,'Villarmuerto',33994,33997,3,1),(7968,'Villarquemado',38480,38483,3,1),(7969,'Villarrabé',31304,31309,3,2),(7970,'Villarramiel',31310,31313,3,1),(7971,'Villarrasa',18238,18241,3,1),(7972,'Villarreal de Huerva',44760,44763,3,1),(7973,'Villarrín de Campos',43440,43443,3,1),(7974,'Villarrobledo',852,857,3,2),(7975,'Villarrodrigo',20060,20063,3,1),(7976,'Villarroya',21814,21817,3,1),(7977,'Villarroya de la Sierra',44764,44767,3,1),(7978,'Villarroya de los Pinares',38484,38487,3,1),(7979,'Villarroya del Campo',44768,44771,3,1),(7980,'Villarrubia de los Ojos',12394,12397,3,1),(7981,'Villarrubia de Santiago',39382,39387,3,2),(7982,'Villarrubio',13940,13943,3,1),(7983,'Villarta',13944,13947,3,1),(7984,'Villarta de los Montes',5252,5255,3,1),(7985,'Villarta de San Juan',12398,12401,3,1),(7986,'Villarta-Quintana',21818,21821,3,1),(7987,'Villas de la Ventosa',13948,13951,3,1),(7988,'Villasabariego',23382,23391,3,4),(7989,'Villasandino',9066,9069,3,1),(7990,'Villasarracino',31314,31317,3,1),(7991,'Villasayas',36532,36535,3,1),(7992,'Villasbuenas',33998,34001,3,1),(7993,'Villasbuenas de Gata',10162,10165,3,1),(7994,'Villasdardo',34002,34005,3,1),(7995,'Villaseca de Arciel',36536,36539,3,1),(7996,'Villaseca de Henares',17298,17301,3,1),(7997,'Villaseca de la Sagra',39388,39393,3,2),(7998,'Villaseca de Uceda',17302,17305,3,1),(7999,'Villaseco de los Gamitos',34006,34009,3,1),(8000,'Villaseco de los Reyes',34010,34021,3,5),(8001,'Villaseco del Pan',43444,43447,3,1),(8002,'Villaselán',23392,23397,3,2),(8003,'Villasequilla',39394,39397,3,1),(8004,'Villasexmir',41636,41639,3,1),(8005,'Villasila de Valdavia',31318,31321,3,1),(8006,'Villasrubias',34022,34025,3,1),(8007,'Villastar',38488,38491,3,1),(8008,'Villasur de Herreros',9070,9073,3,1),(8009,'Villatobas',39398,39401,3,1),(8010,'Villatoro',4478,4481,3,1),(8011,'Villatorres',20064,20071,3,3),(8012,'Villatoya',858,861,3,1),(8013,'Villatuelda',9074,9077,3,1),(8014,'Villatuerta',29362,29367,3,2),(8015,'Villaturde',31322,31325,3,1),(8016,'Villaturiel',23398,23403,3,2),(8017,'Villaumbrales',31326,31331,3,2),(8018,'Villava/Atarrabia',29368,29371,3,1),(8019,'Villavaliente',862,865,3,1),(8020,'Villavaquerín',41640,41643,3,1),(8021,'Villavelayo',21822,21825,3,1),(8022,'Villavellid',41644,41647,3,1),(8023,'Villavendimio',43448,43451,3,1),(8024,'Villaverde de Guadalimar',866,871,3,2),(8025,'Villaverde de Guareña',34026,34029,3,1),(8026,'Villaverde de Íscar',35028,35031,3,1),(8027,'Villaverde de Medina',41648,41651,3,1),(8028,'Villaverde de Montejo',35032,35037,3,2),(8029,'Villaverde de Rioja',21826,21829,3,1),(8030,'Villaverde del Monte',9078,9083,3,2),(8031,'Villaverde del Río',35614,35617,3,1),(8032,'Villaverde y Pasaconsol',13952,13955,3,1),(8033,'Villaverde-Mogina',9084,9087,3,1),(8034,'Villaveza de Valverde',43452,43455,3,1),(8035,'Villaveza del Agua',43456,43459,3,1),(8036,'Villavicencio de los Caballeros',41652,41655,3,1),(8037,'Villaviciosa',3376,3399,3,11),(8038,'Villaviciosa de Córdoba',12916,12923,3,3),(8039,'Villaviciosa de Odón',26910,26913,3,1),(8040,'Villavieja de Yeltes',34030,34033,3,1),(8041,'Villavieja del Lozoya',26914,26917,3,1),(8042,'Villaviudas',31332,31335,3,1),(8043,'Villayerno Morquillas',9088,9091,3,1),(8044,'Villayón',3400,3405,3,2),(8045,'Villazala',23404,23409,3,2),(8046,'Villazanzo de Valderaduey',23410,23417,3,3),(8047,'Villazopeque',9092,9095,3,1),(8048,'Villegas',9096,9099,3,1),(8049,'Villeguillo',35038,35041,3,1),(8050,'Villel',38492,38495,3,1),(8051,'Villel de Mesa',17306,17309,3,1),(8052,'Villena',1660,1669,3,4),(8053,'Villerías de Campos',31336,31339,3,1),(8054,'Villodre',31340,31343,3,1),(8055,'Villodrigo',31344,31347,3,1),(8056,'Villoldo',31348,31351,3,1),(8057,'Víllora',13956,13959,3,1),(8058,'Villores',11870,11873,3,1),(8059,'Villoria',34034,34037,3,1),(8060,'Villoruebo',9100,9105,3,2),(8061,'Villoruela',34038,34041,3,1),(8062,'Villoslada de Cameros',21830,21833,3,1),(8063,'Villota del Páramo',31352,31357,3,2),(8064,'Villovieco',31358,31361,3,1),(8065,'Vilobí d\'Onyar',15096,15103,3,3),(8066,'Vilobí del Penedès',7298,7301,3,1),(8067,'Vilopriu',15104,15109,3,2),(8068,'Viloria',41656,41659,3,1),(8069,'Viloria de Rioja',9106,9109,3,1),(8070,'Vilvestre',34042,34045,3,1),(8071,'Vilviestre del Pinar',9110,9113,3,1),(8072,'Vimbodí i Poblet',37430,37437,3,3),(8073,'Vimianzo',21060,21073,3,6),(8074,'Vinaceite',38496,38499,3,1),(8075,'Vinaixa',24706,24709,3,1),(8076,'Vinalesa',40654,40657,3,1),(8077,'Vinaròs',11874,11877,3,1),(8078,'Viñas',43460,43467,3,3),(8079,'Vindel',13960,13963,3,1),(8080,'Vinebre',37438,37441,3,1),(8081,'Viñegra de Moraña',4482,4485,3,1),(8082,'Viniegra de Abajo',21834,21837,3,1),(8083,'Viniegra de Arriba',21838,21841,3,1),(8084,'Viñuela',27512,27519,3,3),(8085,'Viñuelas',17310,17313,3,1),(8086,'Vinuesa',36540,36545,3,2),(8087,'Vinyols i els Arcs',37442,37445,3,1),(8088,'Visiedo',38500,38503,3,1),(8089,'Viso del Marqués',12402,12411,3,4),(8090,'Vistabella',44772,44777,3,2),(8091,'Vistabella del Maestrat',11878,11881,3,1),(8092,'Vita',4486,4489,3,1),(8093,'Vitigudino',34046,34051,3,2),(8094,'Vitoria-Gasteiz',300,343,3,21),(8095,'Viveiro',25826,25841,3,7),(8096,'Vivel del Río Martín',38504,38509,3,2),(8097,'Viver',11882,11887,3,2),(8098,'Viver i Serrateix',7302,7305,3,1),(8099,'Viveros',872,875,3,1),(8100,'Vizcaínos',9114,9117,3,1),(8101,'Vizmanos',36546,36549,3,1),(8102,'Víznar',15984,15987,3,1),(8103,'Voto',11286,11295,3,4),(8104,'Vozmediano',36550,36553,3,1),(8105,'Wamba',41660,41663,3,1),(8106,'Xaló',1670,1673,3,1),(8107,'Xermade',25842,25855,3,6),(8108,'Xert',11888,11893,3,2),(8109,'Xerta',37446,37449,3,1),(8110,'Xinzo de Limia',30394,30409,3,7),(8111,'Xirivella',40658,40663,3,2),(8112,'Xove',25856,25867,3,5),(8113,'Xunqueira de Ambía',30410,30417,3,3),(8114,'Xunqueira de Espadanedo',30418,30425,3,3),(8115,'Yanguas',36554,36559,3,2),(8116,'Yanguas de Eresma',35042,35045,3,1),(8117,'Yátova',40664,40667,3,1),(8118,'Yebes',17314,17321,3,3),(8119,'Yebra',17322,17325,3,1),(8120,'Yebra de Basa',19464,19469,3,2),(8121,'Yecla',28092,28097,3,2),(8122,'Yecla de Yeltes',34052,34055,3,1),(8123,'Yécora/Iekora',344,347,3,1),(8124,'Yélamos de Abajo',17326,17329,3,1),(8125,'Yélamos de Arriba',17330,17333,3,1),(8126,'Yeles',39402,39405,3,1),(8127,'Yelo',36560,36565,3,2),(8128,'Yémeda',13964,13967,3,1),(8129,'Yepes',39406,39409,3,1),(8130,'Yernes y Tameza',3406,3409,3,1),(8131,'Yesa',29372,29375,3,1),(8132,'Yésero',19470,19473,3,1),(8133,'Yeste',876,893,3,8),(8134,'Yuncler',39410,39413,3,1),(8135,'Yunclillos',39414,39417,3,1),(8136,'Yuncos',39418,39421,3,1),(8137,'Yunquera',27520,27523,3,1),(8138,'Yunquera de Henares',17334,17337,3,1),(8139,'Zabalza/Zabaltza',29376,29379,3,1),(8140,'Zael',9118,9121,3,1),(8141,'Zafarraya',15988,15991,3,1),(8142,'Zafra',5256,5259,3,1),(8143,'Zafra de Záncara',13968,13971,3,1),(8144,'Zafrilla',13972,13975,3,1),(8145,'Zagra',15992,15995,3,1),(8146,'Zahara',10506,10509,3,1),(8147,'Zahínos',5260,5263,3,1),(8148,'Zaidín',19474,19477,3,1),(8149,'Zalamea de la Serena',5264,5267,3,1),(8150,'Zalamea la Real',18242,18251,3,4),(8151,'Zaldibar',42180,42183,3,1),(8152,'Zaldibia',17764,17767,3,1),(8153,'Zalduondo',348,351,3,1),(8154,'Zalla',42184,42191,3,3),(8155,'Zamarra',34056,34059,3,1),(8156,'Zamayón',34060,34063,3,1),(8157,'Zambrana',352,355,3,1),(8158,'Zamora',43468,43535,3,33),(8159,'Zamudio',42192,42195,3,1),(8160,'Zaorejas',17338,17345,3,3),(8161,'Zapardiel de la Cañada',4490,4493,3,1),(8162,'Zapardiel de la Ribera',4494,4497,3,1),(8163,'Zaragoza',44778,44851,3,36),(8164,'Zarapicos',34064,34067,3,1),(8165,'Zaratamo',42196,42199,3,1),(8166,'Zaratán',41664,41667,3,1),(8167,'Zarautz',17768,17771,3,1),(8168,'Zarra',40668,40671,3,1),(8169,'Zarratón',21842,21845,3,1),(8170,'Zarza de Granadilla',10166,10171,3,2),(8171,'Zarza de Montánchez',10172,10177,3,2),(8172,'Zarza de Tajo',13976,13979,3,1),(8173,'Zarza la Mayor',10178,10181,3,1),(8174,'Zarza-Capilla',5268,5271,3,1),(8175,'Zarzalejo',26918,26921,3,1),(8176,'Zarzosa',21846,21849,3,1),(8177,'Zarzosa de Río Pisuerga',9122,9125,3,1),(8178,'Zarzuela',13980,13983,3,1),(8179,'Zarzuela de Jadraque',17346,17349,3,1),(8180,'Zarzuela del Monte',35046,35049,3,1),(8181,'Zarzuela del Pinar',35050,35053,3,1),(8182,'Zas',21074,21093,3,9),(8183,'Zazuar',9126,9129,3,1),(8184,'Zeanuri',42200,42203,3,1),(8185,'Zeberio',42204,42207,3,1),(8186,'Zegama',17772,17775,3,1),(8187,'Zerain',17776,17779,3,1),(8188,'Zestoa',17780,17785,3,2),(8189,'Zierbena',42208,42211,3,1),(8190,'Zigoitia',356,361,3,2),(8191,'Ziordia',29380,29383,3,1),(8192,'Ziortza-Bolibar',42212,42215,3,1),(8193,'Zizur Mayor/Zizur Nagusia',29384,29387,3,1),(8194,'Zizurkil',17786,17789,3,1),(8195,'Zorita',10182,10185,3,1),(8196,'Zorita de la Frontera',34068,34071,3,1),(8197,'Zorita de los Canes',17350,17353,3,1),(8198,'Zorita del Maestrazgo',11894,11897,3,1),(8199,'Zorraquín',21850,21853,3,1),(8200,'Zotes del Páramo',23418,23423,3,2),(8201,'Zubieta',29388,29391,3,1),(8202,'Zucaina',11898,11901,3,1),(8203,'Zuera',44852,44859,3,3),(8204,'Zufre',18252,18255,3,1),(8205,'Zugarramurdi',29392,29395,3,1),(8206,'Zuheros',12924,12927,3,1),(8207,'Zuia',362,369,3,3),(8208,'Zújar',15996,15999,3,1),(8209,'Zumaia',17790,17793,3,1),(8210,'Zumarraga',17794,17797,3,1),(8211,'Zuñeda',9130,9133,3,1),(8212,'Zúñiga',29396,29399,3,1),(8213,'Zurgena',2314,2321,3,3),(8214,'00240',11,12,4,0),(8215,'00548',3565,3566,4,0),(8216,'01001',301,302,4,0),(8217,'01002',303,304,4,0),(8218,'01003',305,306,4,0),(8219,'01004',307,308,4,0),(8220,'01005',309,310,4,0),(8221,'01006',311,312,4,0),(8222,'01007',313,314,4,0),(8223,'01008',315,316,4,0),(8224,'01009',317,318,4,0),(8225,'01010',319,320,4,0),(8226,'01012',183,184,4,0),(8227,'01012',321,322,4,0),(8228,'01013',323,324,4,0),(8229,'01015',325,326,4,0),(8230,'01110',115,116,4,0),(8231,'01117',117,118,4,0),(8232,'01117',151,152,4,0),(8233,'01118',105,106,4,0),(8234,'01118',191,192,4,0),(8235,'01118',7715,7716,4,0),(8236,'01120',45,46,4,0),(8237,'01128',119,120,4,0),(8238,'01128',107,108,4,0),(8239,'01128',47,48,4,0),(8240,'01129',49,50,4,0),(8241,'01130',363,364,4,0),(8242,'01138',357,358,4,0),(8243,'01139',365,366,4,0),(8244,'01160',31,32,4,0),(8245,'01165',33,34,4,0),(8246,'01169',35,36,4,0),(8247,'01170',225,226,4,0),(8248,'01171',227,228,4,0),(8249,'01191',327,328,4,0),(8250,'01191',155,156,4,0),(8251,'01192',123,124,4,0),(8252,'01192',329,330,4,0),(8253,'01193',13,14,4,0),(8254,'01193',125,126,4,0),(8255,'01193',331,332,4,0),(8256,'01193',165,166,4,0),(8257,'01194',109,110,4,0),(8258,'01194',333,334,4,0),(8259,'01195',335,336,4,0),(8260,'01195',157,158,4,0),(8261,'01196',337,338,4,0),(8262,'01196',359,360,4,0),(8263,'01200',5,6,4,0),(8264,'01206',167,168,4,0),(8265,'01206',91,92,4,0),(8266,'01207',273,274,4,0),(8267,'01207',169,170,4,0),(8268,'01207',7,8,4,0),(8269,'01208',65,66,4,0),(8270,'01208',275,276,4,0),(8271,'01208',93,94,4,0),(8272,'01208',349,350,4,0),(8273,'01211',193,194,4,0),(8274,'01211',7717,7718,4,0),(8275,'01211',39,40,4,0),(8276,'01211',255,256,4,0),(8277,'01211',97,98,4,0),(8278,'01212',99,100,4,0),(8279,'01212',185,186,4,0),(8280,'01212',257,258,4,0),(8281,'01212',353,354,4,0),(8282,'01213',263,264,4,0),(8283,'01213',137,138,4,0),(8284,'01213',211,212,4,0),(8285,'01216',111,112,4,0),(8286,'01216',259,260,4,0),(8287,'01220',265,266,4,0),(8288,'01220',101,102,4,0),(8289,'01220',139,140,4,0),(8290,'01220',41,42,4,0),(8291,'01230',159,160,4,0),(8292,'01250',67,68,4,0),(8293,'01260',69,70,4,0),(8294,'01300',197,198,4,0),(8295,'01306',217,218,4,0),(8296,'01307',269,270,4,0),(8297,'01307',87,88,4,0),(8298,'01307',297,298,4,0),(8299,'01308',199,200,4,0),(8300,'01308',207,208,4,0),(8301,'01308',173,174,4,0),(8302,'01309',241,242,4,0),(8303,'01309',233,234,4,0),(8304,'01309',201,202,4,0),(8305,'01309',133,134,4,0),(8306,'01320',249,250,4,0),(8307,'01321',203,204,4,0),(8308,'01322',251,252,4,0),(8309,'01322',345,346,4,0),(8310,'01322',237,238,4,0),(8311,'01330',187,188,4,0),(8312,'01340',129,130,4,0),(8313,'01400',221,222,4,0),(8314,'01408',73,74,4,0),(8315,'01409',245,246,4,0),(8316,'01420',141,142,4,0),(8317,'01423',213,214,4,0),(8318,'01423',25,26,4,0),(8319,'01423',143,144,4,0),(8320,'01423',287,288,4,0),(8321,'01426',289,290,4,0),(8322,'01426',27,28,4,0),(8323,'01426',145,146,4,0),(8324,'01427',7485,7486,4,0),(8325,'01427',291,292,4,0),(8326,'01427',7995,7996,4,0),(8327,'01428',161,162,4,0),(8328,'01428',293,294,4,0),(8329,'01428',147,148,4,0),(8330,'01430',177,178,4,0),(8331,'01439',179,180,4,0),(8332,'01440',279,280,4,0),(8333,'01449',281,282,4,0),(8334,'01450',17,18,4,0),(8335,'01450',367,368,4,0),(8336,'01450',283,284,4,0),(8337,'01468',19,20,4,0),(8338,'01470',21,22,4,0),(8339,'01470',75,76,4,0),(8340,'01474',59,60,4,0),(8341,'01476',77,78,4,0),(8342,'01477',79,80,4,0),(8343,'01478',81,82,4,0),(8344,'01478',61,62,4,0),(8345,'01479',83,84,4,0),(8346,'01510',229,230,4,0),(8347,'01510',339,340,4,0),(8348,'01510',53,54,4,0),(8349,'01520',341,342,4,0),(8350,'01520',55,56,4,0),(8351,'02001',381,382,4,0),(8352,'02002',383,384,4,0),(8353,'02003',385,386,4,0),(8354,'02004',387,388,4,0),(8355,'02005',389,390,4,0),(8356,'02006',391,392,4,0),(8357,'02008',393,394,4,0),(8358,'02049',395,396,4,0),(8359,'02071',397,398,4,0),(8360,'02099',399,400,4,0),(8361,'02099',763,764,4,0),(8362,'02100',815,816,4,0),(8363,'02100',17665,17666,4,0),(8364,'02110',625,626,4,0),(8365,'02110',817,818,4,0),(8366,'02120',739,740,4,0),(8367,'02124',457,458,4,0),(8368,'02124',423,424,4,0),(8369,'02124',653,654,4,0),(8370,'02125',459,460,4,0),(8371,'02126',461,462,4,0),(8372,'02127',741,742,4,0),(8373,'02128',425,426,4,0),(8374,'02128',743,744,4,0),(8375,'02129',773,774,4,0),(8376,'02130',487,488,4,0),(8377,'02136',729,730,4,0),(8378,'02137',731,732,4,0),(8379,'02138',747,748,4,0),(8380,'02138',489,490,4,0),(8381,'02138',733,734,4,0),(8382,'02139',491,492,4,0),(8383,'02139',463,464,4,0),(8384,'02140',401,402,4,0),(8385,'02141',775,776,4,0),(8386,'02142',777,778,4,0),(8387,'02142',655,656,4,0),(8388,'02150',829,830,4,0),(8389,'02151',505,506,4,0),(8390,'02152',377,378,4,0),(8391,'02153',501,502,4,0),(8392,'02154',863,864,4,0),(8393,'02154',769,770,4,0),(8394,'02155',403,404,4,0),(8395,'02156',529,530,4,0),(8396,'02160',647,648,4,0),(8397,'02161',649,650,4,0),(8398,'02162',629,630,4,0),(8399,'02170',17903,17904,4,0),(8400,'02200',517,518,4,0),(8401,'02210',429,430,4,0),(8402,'02211',431,432,4,0),(8403,'02212',513,514,4,0),(8404,'02213',837,838,4,0),(8405,'02213',473,474,4,0),(8406,'02214',433,434,4,0),(8407,'02214',475,476,4,0),(8408,'02215',859,860,4,0),(8409,'02215',419,420,4,0),(8410,'02220',693,694,4,0),(8411,'02230',661,662,4,0),(8412,'02240',665,666,4,0),(8413,'02246',701,702,4,0),(8414,'02247',525,526,4,0),(8415,'02248',619,620,4,0),(8416,'02249',621,622,4,0),(8417,'02249',633,634,4,0),(8418,'02249',583,584,4,0),(8419,'02250',373,374,4,0),(8420,'02251',585,586,4,0),(8421,'02252',435,436,4,0),(8422,'02253',591,592,4,0),(8423,'02260',587,588,4,0),(8424,'02270',845,846,4,0),(8425,'02300',439,440,4,0),(8426,'02310',873,874,4,0),(8427,'02311',759,760,4,0),(8428,'02312',441,442,4,0),(8429,'02313',749,750,4,0),(8430,'02314',751,752,4,0),(8431,'02314',669,670,4,0),(8432,'02314',443,444,4,0),(8433,'02315',833,834,4,0),(8434,'02316',801,802,4,0),(8435,'02320',469,470,4,0),(8436,'02326',805,806,4,0),(8437,'02327',781,782,4,0),(8438,'02328',405,406,4,0),(8439,'02329',509,510,4,0),(8440,'02330',445,446,4,0),(8441,'02331',793,794,4,0),(8442,'02332',795,796,4,0),(8443,'02340',797,798,4,0),(8444,'02350',849,850,4,0),(8445,'02360',483,484,4,0),(8446,'02400',595,596,4,0),(8447,'02409',597,598,4,0),(8448,'02410',657,658,4,0),(8449,'02420',599,600,4,0),(8450,'02430',561,562,4,0),(8451,'02434',643,644,4,0),(8452,'02435',809,810,4,0),(8453,'02436',571,572,4,0),(8454,'02437',811,812,4,0),(8455,'02438',27853,27854,4,0),(8456,'02439',563,564,4,0),(8457,'02440',677,678,4,0),(8458,'02448',493,494,4,0),(8459,'02448',679,680,4,0),(8460,'02449',681,682,4,0),(8461,'02449',565,566,4,0),(8462,'02450',785,786,4,0),(8463,'02459',787,788,4,0),(8464,'02459',735,736,4,0),(8465,'02460',867,868,4,0),(8466,'02461',547,548,4,0),(8467,'02462',789,790,4,0),(8468,'02462',869,870,4,0),(8469,'02470',567,568,4,0),(8470,'02480',877,878,4,0),(8471,'02482',879,880,4,0),(8472,'02484',881,882,4,0),(8473,'02485',883,884,4,0),(8474,'02486',885,886,4,0),(8475,'02487',887,888,4,0),(8476,'02488',889,890,4,0),(8477,'02489',891,892,4,0),(8478,'02490',601,602,4,0),(8479,'02498',603,604,4,0),(8480,'02499',605,606,4,0),(8481,'02500',821,822,4,0),(8482,'02510',765,766,4,0),(8483,'02510',531,532,4,0),(8484,'02511',407,408,4,0),(8485,'02512',409,410,4,0),(8486,'02513',823,824,4,0),(8487,'02514',825,826,4,0),(8488,'02520',533,534,4,0),(8489,'02529',535,536,4,0),(8490,'02530',705,706,4,0),(8491,'02534',707,708,4,0),(8492,'02535',709,710,4,0),(8493,'02536',711,712,4,0),(8494,'02537',713,714,4,0),(8495,'02538',715,716,4,0),(8496,'02539',717,718,4,0),(8497,'02600',853,854,4,0),(8498,'02610',555,556,4,0),(8499,'02611',725,726,4,0),(8500,'02612',855,856,4,0),(8501,'02612',697,698,4,0),(8502,'02613',557,558,4,0),(8503,'02614',551,552,4,0),(8504,'02620',673,674,4,0),(8505,'02630',637,638,4,0),(8506,'02636',13157,13158,4,0),(8507,'02636',841,842,4,0),(8508,'02637',575,576,4,0),(8509,'02638',685,686,4,0),(8510,'02639',639,640,4,0),(8511,'02639',479,480,4,0),(8512,'02640',449,450,4,0),(8513,'02650',689,690,4,0),(8514,'02651',579,580,4,0),(8515,'02652',721,722,4,0),(8516,'02653',415,416,4,0),(8517,'02660',521,522,4,0),(8518,'02690',453,454,4,0),(8519,'02690',609,610,4,0),(8520,'02691',497,498,4,0),(8521,'02692',755,756,4,0),(8522,'02692',537,538,4,0),(8523,'02693',543,544,4,0),(8524,'02694',611,612,4,0),(8525,'02695',539,540,4,0),(8526,'02696',615,616,4,0),(8527,'02999',465,466,4,0),(8528,'03001',953,954,4,0),(8529,'03002',955,956,4,0),(8530,'03003',957,958,4,0),(8531,'03004',959,960,4,0),(8532,'03005',961,962,4,0),(8533,'03006',963,964,4,0),(8534,'03007',965,966,4,0),(8535,'03008',967,968,4,0),(8536,'03009',969,970,4,0),(8537,'03010',971,972,4,0),(8538,'03010',27883,27884,4,0),(8539,'03011',973,974,4,0),(8540,'03012',975,976,4,0),(8541,'03013',977,978,4,0),(8542,'03014',979,980,4,0),(8543,'03015',981,982,4,0),(8544,'03016',983,984,4,0),(8545,'03100',1365,1366,4,0),(8546,'03108',1629,1630,4,0),(8547,'03109',1617,1618,4,0),(8548,'03110',1441,1442,4,0),(8549,'03111',1139,1140,4,0),(8550,'03112',985,986,4,0),(8551,'03113',987,988,4,0),(8552,'03114',989,990,4,0),(8553,'03115',991,992,4,0),(8554,'03130',1591,1592,4,0),(8555,'03138',993,994,4,0),(8556,'03139',1255,1256,4,0),(8557,'03140',1339,1340,4,0),(8558,'03150',1219,1220,4,0),(8559,'03158',1191,1192,4,0),(8560,'03158',1173,1174,4,0),(8561,'03159',1199,1200,4,0),(8562,'03160',1007,1008,4,0),(8563,'03169',945,946,4,0),(8564,'03170',1551,1552,4,0),(8565,'03177',1317,1318,4,0),(8566,'03177',1203,1204,4,0),(8567,'03177',1567,1568,4,0),(8568,'03178',1091,1092,4,0),(8569,'03179',1319,1320,4,0),(8570,'03179',1009,1010,4,0),(8571,'03180',1633,1634,4,0),(8572,'03181',1635,1636,4,0),(8573,'03182',1637,1638,4,0),(8574,'03183',1639,1640,4,0),(8575,'03184',1641,1642,4,0),(8576,'03185',1643,1644,4,0),(8577,'03186',1645,1646,4,0),(8578,'03187',1411,1412,4,0),(8579,'03188',1647,1648,4,0),(8580,'03189',1467,1468,4,0),(8581,'03190',1521,1522,4,0),(8582,'03191',1523,1524,4,0),(8583,'03191',1469,1470,4,0),(8584,'03192',1471,1472,4,0),(8585,'03193',1575,1576,4,0),(8586,'03194',1257,1258,4,0),(8587,'03195',1259,1260,4,0),(8588,'03201',1261,1262,4,0),(8589,'03202',1263,1264,4,0),(8590,'03203',1265,1266,4,0),(8591,'03204',1267,1268,4,0),(8592,'03205',1269,1270,4,0),(8593,'03206',1271,1272,4,0),(8594,'03207',1273,1274,4,0),(8595,'03208',1275,1276,4,0),(8596,'03290',1277,1278,4,0),(8597,'03291',1279,1280,4,0),(8598,'03292',1281,1282,4,0),(8599,'03293',1283,1284,4,0),(8600,'03294',1285,1286,4,0),(8601,'03295',1287,1288,4,0),(8602,'03296',1289,1290,4,0),(8603,'03300',1473,1474,4,0),(8604,'03310',1475,1476,4,0),(8605,'03310',1351,1352,4,0),(8606,'03311',1477,1478,4,0),(8607,'03312',1479,1480,4,0),(8608,'03313',1481,1482,4,0),(8609,'03314',1483,1484,4,0),(8610,'03315',1485,1486,4,0),(8611,'03316',1049,1050,4,0),(8612,'03316',1487,1488,4,0),(8613,'03317',1147,1148,4,0),(8614,'03320',1291,1292,4,0),(8615,'03330',1193,1194,4,0),(8616,'03339',1195,1196,4,0),(8617,'03340',909,910,4,0),(8618,'03348',1335,1336,4,0),(8619,'03349',1571,1572,4,0),(8620,'03350',1187,1188,4,0),(8621,'03360',1149,1150,4,0),(8622,'03369',1489,1490,4,0),(8623,'03369',1539,1540,4,0),(8624,'03370',1543,1544,4,0),(8625,'03380',1131,1132,4,0),(8626,'03390',1045,1046,4,0),(8627,'03392',2649,2650,4,0),(8628,'03400',1661,1662,4,0),(8629,'03408',1663,1664,4,0),(8630,'03409',1161,1162,4,0),(8631,'03409',1665,1666,4,0),(8632,'03409',1559,1560,4,0),(8633,'03409',995,996,4,0),(8634,'03410',1127,1128,4,0),(8635,'03420',1165,1166,4,0),(8636,'03430',1453,1454,4,0),(8637,'03440',1347,1348,4,0),(8638,'03450',1031,1032,4,0),(8639,'03460',1039,1040,4,0),(8640,'03469',1157,1158,4,0),(8641,'03469',1041,1042,4,0),(8642,'03501',1069,1070,4,0),(8643,'03502',1071,1072,4,0),(8644,'03503',1073,1074,4,0),(8645,'03509',1313,1314,4,0),(8646,'03510',1143,1144,4,0),(8647,'03516',1103,1104,4,0),(8648,'03517',1083,1084,4,0),(8649,'03517',1183,1184,4,0),(8650,'03517',1057,1058,4,0),(8651,'03517',1227,1228,4,0),(8652,'03518',1135,1136,4,0),(8653,'03518',1607,1608,4,0),(8654,'03520',1531,1532,4,0),(8655,'03530',1383,1384,4,0),(8656,'03540',997,998,4,0),(8657,'03550',1587,1588,4,0),(8658,'03559',999,1000,4,0),(8659,'03560',1223,1224,4,0),(8660,'03569',905,906,4,0),(8661,'03570',1657,1658,4,0),(8662,'03578',1547,1548,4,0),(8663,'03579',1599,1600,4,0),(8664,'03579',1495,1496,4,0),(8665,'03580',1369,1370,4,0),(8666,'03581',1371,1372,4,0),(8667,'03590',1017,1018,4,0),(8668,'03599',1019,1020,4,0),(8669,'03600',1297,1298,4,0),(8670,'03610',1517,1518,4,0),(8671,'03630',1595,1596,4,0),(8672,'03638',1561,1562,4,0),(8673,'03639',1667,1668,4,0),(8674,'03640',1425,1426,4,0),(8675,'03649',1427,1428,4,0),(8676,'03650',1237,1238,4,0),(8677,'03657',1239,1240,4,0),(8678,'03657',28093,28094,4,0),(8679,'03658',1241,1242,4,0),(8680,'03658',1563,1564,4,0),(8681,'03659',1243,1244,4,0),(8682,'03659',27745,27746,4,0),(8683,'03660',1445,1446,4,0),(8684,'03668',949,950,4,0),(8685,'03669',1387,1388,4,0),(8686,'03670',1419,1420,4,0),(8687,'03679',1421,1422,4,0),(8688,'03680',1023,1024,4,0),(8689,'03688',1231,1232,4,0),(8690,'03689',1233,1234,4,0),(8691,'03689',1343,1344,4,0),(8692,'03689',1491,1492,4,0),(8693,'03690',1579,1580,4,0),(8694,'03698',897,898,4,0),(8695,'03699',1001,1002,4,0),(8696,'03700',1207,1208,4,0),(8697,'03709',1209,1210,4,0),(8698,'03710',1153,1154,4,0),(8699,'03720',1119,1120,4,0),(8700,'03723',913,914,4,0),(8701,'03724',1611,1612,4,0),(8702,'03725',1613,1614,4,0),(8703,'03726',1123,1124,4,0),(8704,'03727',1671,1672,4,0),(8705,'03728',915,916,4,0),(8706,'03729',1403,1404,4,0),(8707,'03729',1603,1604,4,0),(8708,'03730',1355,1356,4,0),(8709,'03737',1357,1358,4,0),(8710,'03738',1359,1360,4,0),(8711,'03739',1361,1362,4,0),(8712,'03740',1327,1328,4,0),(8713,'03749',1211,1212,4,0),(8714,'03750',1503,1504,4,0),(8715,'03759',1065,1066,4,0),(8716,'03760',1449,1450,4,0),(8717,'03769',1247,1248,4,0),(8718,'03769',1115,1116,4,0),(8719,'03769',1583,1584,4,0),(8720,'03770',1251,1252,4,0),(8721,'03770',1213,1214,4,0),(8722,'03778',1053,1054,4,0),(8723,'03779',1301,1302,4,0),(8724,'03780',1215,1216,4,0),(8725,'03780',1507,1508,4,0),(8726,'03786',1379,1380,4,0),(8727,'03787',1651,1652,4,0),(8728,'03788',1391,1392,4,0),(8729,'03788',1653,1654,4,0),(8730,'03789',1395,1396,4,0),(8731,'03790',1457,1458,4,0),(8732,'03791',1459,1460,4,0),(8733,'03791',1399,1400,4,0),(8734,'03792',1499,1500,4,0),(8735,'03792',1431,1432,4,0),(8736,'03792',1461,1462,4,0),(8737,'03793',1169,1170,4,0),(8738,'03794',1087,1088,4,0),(8739,'03795',1625,1626,4,0),(8740,'03795',1555,1556,4,0),(8741,'03795',1463,1464,4,0),(8742,'03800',927,928,4,0),(8743,'03801',929,930,4,0),(8744,'03802',931,932,4,0),(8745,'03803',933,934,4,0),(8746,'03804',935,936,4,0),(8747,'03810',1095,1096,4,0),(8748,'03811',1535,1536,4,0),(8749,'03811',1331,1332,4,0),(8750,'03812',1111,1112,4,0),(8751,'03812',1415,1416,4,0),(8752,'03812',1027,1028,4,0),(8753,'03813',1621,1622,4,0),(8754,'03813',1305,1306,4,0),(8755,'03813',1309,1310,4,0),(8756,'03814',923,924,4,0),(8757,'03814',1035,1036,4,0),(8758,'03815',1513,1514,4,0),(8759,'03816',1079,1080,4,0),(8760,'03818',937,938,4,0),(8761,'03820',1177,1178,4,0),(8762,'03827',1099,1100,4,0),(8763,'03827',1013,1014,4,0),(8764,'03827',1107,1108,4,0),(8765,'03828',1527,1528,4,0),(8766,'03829',1375,1376,4,0),(8767,'03829',1179,1180,4,0),(8768,'03830',1435,1436,4,0),(8769,'03837',901,902,4,0),(8770,'03838',941,942,4,0),(8771,'03839',1437,1438,4,0),(8772,'03840',1323,1324,4,0),(8773,'03841',919,920,4,0),(8774,'03850',1061,1062,4,0),(8775,'03860',1407,1408,4,0),(8776,'04001',1749,1750,4,0),(8777,'04002',1751,1752,4,0),(8778,'04003',1753,1754,4,0),(8779,'04004',1755,1756,4,0),(8780,'04005',1757,1758,4,0),(8781,'04006',1759,1760,4,0),(8782,'04007',1761,1762,4,0),(8783,'04008',1763,1764,4,0),(8784,'04009',1765,1766,4,0),(8785,'04100',2067,2068,4,0),(8786,'04110',2069,2070,4,0),(8787,'04113',2071,2072,4,0),(8788,'04114',2033,2034,4,0),(8789,'04114',2073,2074,4,0),(8790,'04115',2075,2076,4,0),(8791,'04116',2077,2078,4,0),(8792,'04117',2079,2080,4,0),(8793,'04118',2081,2082,4,0),(8794,'04119',2083,2084,4,0),(8795,'04120',1767,1768,4,0),(8796,'04130',1769,1770,4,0),(8797,'04131',1771,1772,4,0),(8798,'04140',1867,1868,4,0),(8799,'04147',2085,2086,4,0),(8800,'04149',2201,2202,4,0),(8801,'04149',1869,1870,4,0),(8802,'04149',2087,2088,4,0),(8803,'04150',1773,1774,4,0),(8804,'04151',2089,2090,4,0),(8805,'04160',1775,1776,4,0),(8806,'04188',2091,2092,4,0),(8807,'04200',2223,2224,4,0),(8808,'04210',2035,2036,4,0),(8809,'04211',2037,2038,4,0),(8810,'04211',2261,2262,4,0),(8811,'04211',2225,2226,4,0),(8812,'04212',2099,2100,4,0),(8813,'04212',2275,2276,4,0),(8814,'04212',1873,1874,4,0),(8815,'04213',2179,2180,4,0),(8816,'04230',1967,1968,4,0),(8817,'04240',2303,2304,4,0),(8818,'04248',2203,2204,4,0),(8819,'04250',2133,2134,4,0),(8820,'04259',2135,2136,4,0),(8821,'04260',2157,2158,4,0),(8822,'04270',2205,2206,4,0),(8823,'04271',2207,2208,4,0),(8824,'04271',2029,2030,4,0),(8825,'04274',2265,2266,4,0),(8826,'04274',1835,1836,4,0),(8827,'04275',2247,2248,4,0),(8828,'04275',2235,2236,4,0),(8829,'04276',1837,1838,4,0),(8830,'04276',1733,1734,4,0),(8831,'04276',1831,1832,4,0),(8832,'04277',2209,2210,4,0),(8833,'04278',2211,2212,4,0),(8834,'04279',2267,2268,4,0),(8835,'04279',2213,2214,4,0),(8836,'04279',2237,2238,4,0),(8837,'04280',2021,2022,4,0),(8838,'04288',2023,2024,4,0),(8839,'04288',1817,1818,4,0),(8840,'04289',2025,2026,4,0),(8841,'04289',1819,1820,4,0),(8842,'04289',2215,2216,4,0),(8843,'04400',1741,1742,4,0),(8844,'04409',1963,1964,4,0),(8845,'04409',1745,1746,4,0),(8846,'04410',1827,1828,4,0),(8847,'04420',2175,2176,4,0),(8848,'04430',1993,1994,4,0),(8849,'04431',1989,1990,4,0),(8850,'04440',2153,2154,4,0),(8851,'04450',1855,1856,4,0),(8852,'04458',1823,1824,4,0),(8853,'04458',1779,1780,4,0),(8854,'04458',2119,2120,4,0),(8855,'04459',2095,2096,4,0),(8856,'04460',1939,1940,4,0),(8857,'04470',2013,2014,4,0),(8858,'04479',2127,2128,4,0),(8859,'04479',1941,1942,4,0),(8860,'04479',1807,1808,4,0),(8861,'04480',1721,1722,4,0),(8862,'04500',1931,1932,4,0),(8863,'04510',1677,1678,4,0),(8864,'04520',1681,1682,4,0),(8865,'04530',2007,2008,4,0),(8866,'04531',1701,1702,4,0),(8867,'04532',2009,2010,4,0),(8868,'04533',1683,1684,4,0),(8869,'04540',2063,2064,4,0),(8870,'04549',1953,1954,4,0),(8871,'04550',1955,1956,4,0),(8872,'04558',1703,1704,4,0),(8873,'04558',1957,1958,4,0),(8874,'04559',1959,1960,4,0),(8875,'04560',1945,1946,4,0),(8876,'04567',1737,1738,4,0),(8877,'04568',2171,2172,4,0),(8878,'04568',1783,1784,4,0),(8879,'04569',2241,2242,4,0),(8880,'04569',1841,1842,4,0),(8881,'04600',1707,1708,4,0),(8882,'04600',1971,1972,4,0),(8883,'04610',1889,1890,4,0),(8884,'04616',1891,1892,4,0),(8885,'04617',1893,1894,4,0),(8886,'04618',1895,1896,4,0),(8887,'04619',1897,1898,4,0),(8888,'04620',2299,2300,4,0),(8889,'04628',1787,1788,4,0),(8890,'04629',1789,1790,4,0),(8891,'04630',1949,1950,4,0),(8892,'04638',2057,2058,4,0),(8893,'04639',2257,2258,4,0),(8894,'04639',2059,2060,4,0),(8895,'04640',2139,2140,4,0),(8896,'04640',2107,2108,4,0),(8897,'04647',1899,1900,4,0),(8898,'04647',2141,2142,4,0),(8899,'04648',1901,1902,4,0),(8900,'04648',2143,2144,4,0),(8901,'04649',2145,2146,4,0),(8902,'04650',2315,2316,4,0),(8903,'04659',2243,2244,4,0),(8904,'04660',1793,1794,4,0),(8905,'04661',2317,2318,4,0),(8906,'04661',2229,2230,4,0),(8907,'04662',2319,2320,4,0),(8908,'04662',1973,1974,4,0),(8909,'04690',1975,1976,4,0),(8910,'04691',1977,1978,4,0),(8911,'04692',1979,1980,4,0),(8912,'04692',1709,1710,4,0),(8913,'04692',2231,2232,4,0),(8914,'04693',1981,1982,4,0),(8915,'04694',1983,1984,4,0),(8916,'04700',1909,1910,4,0),(8917,'04710',1911,1912,4,0),(8918,'04711',1913,1914,4,0),(8919,'04712',1915,1916,4,0),(8920,'04713',1845,1846,4,0),(8921,'04715',1917,1918,4,0),(8922,'04716',1919,1920,4,0),(8923,'04720',2161,2162,4,0),(8924,'04727',2307,2308,4,0),(8925,'04728',1927,1928,4,0),(8926,'04729',1923,1924,4,0),(8927,'04738',2309,2310,4,0),(8928,'04740',2163,2164,4,0),(8929,'04741',2165,2166,4,0),(8930,'04743',2167,2168,4,0),(8931,'04745',1997,1998,4,0),(8932,'04746',1999,2000,4,0),(8933,'04750',1905,1906,4,0),(8934,'04760',1847,1848,4,0),(8935,'04768',1723,1724,4,0),(8936,'04768',1849,1850,4,0),(8937,'04769',1851,1852,4,0),(8938,'04770',1687,1688,4,0),(8939,'04778',1689,1690,4,0),(8940,'04779',2129,2130,4,0),(8941,'04779',1691,1692,4,0),(8942,'04779',1809,1810,4,0),(8943,'04800',1711,1712,4,0),(8944,'04810',2109,2110,4,0),(8945,'04810',2123,2124,4,0),(8946,'04811',2111,2112,4,0),(8947,'04812',1713,1714,4,0),(8948,'04813',2113,2114,4,0),(8949,'04813',1715,1716,4,0),(8950,'04814',1717,1718,4,0),(8951,'04815',1859,1860,4,0),(8952,'04820',2287,2288,4,0),(8953,'04825',1881,1882,4,0),(8954,'04826',2289,2290,4,0),(8955,'04827',2291,2292,4,0),(8956,'04828',2293,2294,4,0),(8957,'04829',2295,2296,4,0),(8958,'04829',2279,2280,4,0),(8959,'04830',2281,2282,4,0),(8960,'04838',2051,2052,4,0),(8961,'04839',2283,2284,4,0),(8962,'04839',2053,2054,4,0),(8963,'04850',1861,1862,4,0),(8964,'04857',1695,1696,4,0),(8965,'04858',1863,1864,4,0),(8966,'04858',1697,1698,4,0),(8967,'04859',1885,1886,4,0),(8968,'04859',1877,1878,4,0),(8969,'04859',2017,2018,4,0),(8970,'04860',2103,2104,4,0),(8971,'04867',2047,2048,4,0),(8972,'04868',2003,2004,4,0),(8973,'04869',1935,1936,4,0),(8974,'04870',2149,2150,4,0),(8975,'04877',2041,2042,4,0),(8976,'04877',2197,2198,4,0),(8977,'04878',2219,2220,4,0),(8978,'04878',2193,2194,4,0),(8979,'04879',2271,2272,4,0),(8980,'04880',2249,2250,4,0),(8981,'04887',2043,2044,4,0),(8982,'04887',2251,2252,4,0),(8983,'04888',1813,1814,4,0),(8984,'04888',1797,1798,4,0),(8985,'04889',1801,1802,4,0),(8986,'04889',2253,2254,4,0),(8987,'04890',2183,2184,4,0),(8988,'04897',1727,1728,4,0),(8989,'04897',2185,2186,4,0),(8990,'04898',2187,2188,4,0),(8991,'04898',1729,1730,4,0),(8992,'04899',2189,2190,4,0),(8993,'04899',2115,2116,4,0),(8994,'04964',1985,1986,4,0),(8995,'05001',3457,3458,4,0),(8996,'05002',3459,3460,4,0),(8997,'05003',3461,3462,4,0),(8998,'05004',3463,3464,4,0),(8999,'05005',3465,3466,4,0),(9000,'05100',4091,4092,4,0),(9001,'05110',3665,3666,4,0),(9002,'05111',4269,4270,4,0),(9003,'05113',3539,3540,4,0),(9004,'05114',4455,4456,4,0),(9005,'05115',4369,4370,4,0),(9006,'05115',4107,4108,4,0),(9007,'05116',4371,4372,4,0),(9008,'05120',4069,4070,4,0),(9009,'05120',4273,4274,4,0),(9010,'05120',4103,4104,4,0),(9011,'05122',4111,4112,4,0),(9012,'05122',4095,4096,4,0),(9013,'05123',4077,4078,4,0),(9014,'05123',3813,3814,4,0),(9015,'05130',4393,4394,4,0),(9016,'05131',3859,3860,4,0),(9017,'05131',4037,4038,4,0),(9018,'05131',3947,3948,4,0),(9019,'05132',3607,3608,4,0),(9020,'05132',4289,4290,4,0),(9021,'05132',3821,3822,4,0),(9022,'05133',4285,4286,4,0),(9023,'05134',4065,4066,4,0),(9024,'05134',3747,3748,4,0),(9025,'05134',4053,4054,4,0),(9026,'05140',3929,3930,4,0),(9027,'05140',3585,3586,4,0),(9028,'05140',3533,3534,4,0),(9029,'05140',3925,3926,4,0),(9030,'05141',3739,3740,4,0),(9031,'05141',4025,4026,4,0),(9032,'05141',3611,3612,4,0),(9033,'05141',4317,4318,4,0),(9034,'05143',4435,4436,4,0),(9035,'05145',3991,3992,4,0),(9036,'05145',4277,4278,4,0),(9037,'05145',3921,3922,4,0),(9038,'05146',3503,3504,4,0),(9039,'05146',3969,3970,4,0),(9040,'05146',4487,4488,4,0),(9041,'05146',3917,3918,4,0),(9042,'05146',4253,4254,4,0),(9043,'05146',3801,3802,4,0),(9044,'05146',3701,3702,4,0),(9045,'05147',3835,3836,4,0),(9046,'05147',3743,3744,4,0),(9047,'05148',3553,3554,4,0),(9048,'05149',3615,3616,4,0),(9049,'05149',4389,4390,4,0),(9050,'05150',4151,4152,4,0),(9051,'05150',4297,4298,4,0),(9052,'05150',4207,4208,4,0),(9053,'05151',3933,3934,4,0),(9054,'05151',3645,3646,4,0),(9055,'05152',3935,3936,4,0),(9056,'05153',3439,3440,4,0),(9057,'05153',3487,3488,4,0),(9058,'05153',3909,3910,4,0),(9059,'05153',3691,3692,4,0),(9060,'05153',3627,3628,4,0),(9061,'05154',4021,4022,4,0),(9062,'05154',4491,4492,4,0),(9063,'05154',3693,3694,4,0),(9064,'05160',3467,3468,4,0),(9065,'05161',3959,3960,4,0),(9066,'05162',3887,3888,4,0),(9067,'05163',3979,3980,4,0),(9068,'05163',3773,3774,4,0),(9069,'05163',4167,4168,4,0),(9070,'05164',3697,3698,4,0),(9071,'05164',4459,4460,4,0),(9072,'05164',3789,3790,4,0),(9073,'05164',4301,4302,4,0),(9074,'05164',4209,4210,4,0),(9075,'05165',4159,4160,4,0),(9076,'05165',3671,3672,4,0),(9077,'05165',3557,3558,4,0),(9078,'05165',4405,4406,4,0),(9079,'05170',3705,3706,4,0),(9080,'05190',4213,4214,4,0),(9081,'05191',4123,4124,4,0),(9082,'05191',3965,3966,4,0),(9083,'05192',3869,3870,4,0),(9084,'05192',3855,3856,4,0),(9085,'05192',4009,4010,4,0),(9086,'05193',4345,4346,4,0),(9087,'05193',4127,4128,4,0),(9088,'05194',3939,3940,4,0),(9089,'05194',3469,3470,4,0),(9090,'05194',3499,3500,4,0),(9091,'05195',3471,3472,4,0),(9092,'05196',3793,3794,4,0),(9093,'05196',4419,4420,4,0),(9094,'05197',3473,3474,4,0),(9095,'05197',3675,3676,4,0),(9096,'05197',3757,3758,4,0),(9097,'05198',4397,4398,4,0),(9098,'05200',3443,3444,4,0),(9099,'05210',3809,3810,4,0),(9100,'05210',4263,4264,4,0),(9101,'05211',3619,3620,4,0),(9102,'05211',3549,3550,4,0),(9103,'05211',3573,3574,4,0),(9104,'05211',3495,3496,4,0),(9105,'05212',3735,3736,4,0),(9106,'05212',3425,3426,4,0),(9107,'05212',4463,4464,4,0),(9108,'05212',3561,3562,4,0),(9109,'05212',3731,3732,4,0),(9110,'05213',3879,3880,4,0),(9111,'05215',4379,4380,4,0),(9112,'05215',4143,4144,4,0),(9113,'05215',3653,3654,4,0),(9114,'05216',4041,4042,4,0),(9115,'05217',3631,3632,4,0),(9116,'05217',3545,3546,4,0),(9117,'05217',4309,4310,4,0),(9118,'05217',3649,3650,4,0),(9119,'05220',3901,3902,4,0),(9120,'05229',3491,3492,4,0),(9121,'05229',4245,4246,4,0),(9122,'05229',3599,3600,4,0),(9123,'05229',3477,3478,4,0),(9124,'05230',3891,3892,4,0),(9125,'05239',3893,3894,4,0),(9126,'05239',4163,4164,4,0),(9127,'05240',4081,4082,4,0),(9128,'05250',3683,3684,4,0),(9129,'05260',3603,3604,4,0),(9130,'05267',4237,4238,4,0),(9131,'05268',3795,3796,4,0),(9132,'05268',4321,4322,4,0),(9133,'05270',3707,3708,4,0),(9134,'05278',3709,3710,4,0),(9135,'05278',3667,3668,4,0),(9136,'05279',3711,3712,4,0),(9137,'05280',3961,3962,4,0),(9138,'05289',4409,4410,4,0),(9139,'05289',4241,4242,4,0),(9140,'05290',3513,3514,4,0),(9141,'05290',4313,4314,4,0),(9142,'05291',3905,3906,4,0),(9143,'05292',4361,4362,4,0),(9144,'05292',4139,4140,4,0),(9145,'05292',4439,4440,4,0),(9146,'05292',4443,4444,4,0),(9147,'05292',4191,4192,4,0),(9148,'05294',3797,3798,4,0),(9149,'05296',3785,3786,4,0),(9150,'05296',3715,3716,4,0),(9151,'05296',3413,3414,4,0),(9152,'05296',4131,4132,4,0),(9153,'05298',4411,4412,4,0),(9154,'05298',4203,4204,4,0),(9155,'05298',3913,3914,4,0),(9156,'05299',3509,3510,4,0),(9157,'05299',3983,3984,4,0),(9158,'05300',3635,3636,4,0),(9159,'05309',4483,4484,4,0),(9160,'05309',3637,3638,4,0),(9161,'05309',3999,4000,4,0),(9162,'05309',3623,3624,4,0),(9163,'05309',4217,4218,4,0),(9164,'05310',3723,3724,4,0),(9165,'05320',3577,3578,4,0),(9166,'05340',3447,3448,4,0),(9167,'05340',3535,3536,4,0),(9168,'05350',4305,4306,4,0),(9169,'05357',4365,4366,4,0),(9170,'05357',3529,3530,4,0),(9171,'05357',4001,4002,4,0),(9172,'05357',3449,3450,4,0),(9173,'05357',3777,3778,4,0),(9174,'05357',4447,4448,4,0),(9175,'05357',4375,4376,4,0),(9176,'05358',4005,4006,4,0),(9177,'05358',4147,4148,4,0),(9178,'05358',3417,3418,4,0),(9179,'05358',4029,4030,4,0),(9180,'05358',4265,4266,4,0),(9181,'05364',3829,3830,4,0),(9182,'05370',3719,3720,4,0),(9183,'05370',4033,4034,4,0),(9184,'05380',4225,4226,4,0),(9185,'05380',3505,3506,4,0),(9186,'05380',3769,3770,4,0),(9187,'05380',4013,4014,4,0),(9188,'05400',3433,3434,4,0),(9189,'05410',3973,3974,4,0),(9190,'05412',4249,4250,4,0),(9191,'05413',4325,4326,4,0),(9192,'05413',4475,4476,4,0),(9193,'05414',3641,3642,4,0),(9194,'05415',3679,3680,4,0),(9195,'05416',3657,3658,4,0),(9196,'05417',3781,3782,4,0),(9197,'05418',3435,3436,4,0),(9198,'05420',4401,4402,4,0),(9199,'05427',3805,3806,4,0),(9200,'05427',3727,3728,4,0),(9201,'05428',3593,3594,4,0),(9202,'05429',3595,3596,4,0),(9203,'05429',4349,4350,4,0),(9204,'05429',4061,4062,4,0),(9205,'05430',3843,3844,4,0),(9206,'05440',4177,4178,4,0),(9207,'05450',3589,3590,4,0),(9208,'05460',3751,3752,4,0),(9209,'05461',3955,3956,4,0),(9210,'05470',4155,4156,4,0),(9211,'05480',3567,3568,4,0),(9212,'05489',3569,3570,4,0),(9213,'05490',3883,3884,4,0),(9214,'05491',3975,3976,4,0),(9215,'05492',4187,4188,4,0),(9216,'05500',4171,4172,4,0),(9217,'05510',4339,4340,4,0),(9218,'05511',4341,4342,4,0),(9219,'05513',3541,3542,4,0),(9220,'05514',3951,3952,4,0),(9221,'05514',4293,4294,4,0),(9222,'05514',3523,3524,4,0),(9223,'05514',4423,4424,4,0),(9224,'05514',4057,4058,4,0),(9225,'05515',4173,4174,4,0),(9226,'05516',3817,3818,4,0),(9227,'05516',4233,4234,4,0),(9228,'05516',4471,4472,4,0),(9229,'05519',2651,2652,4,0),(9230,'05520',4221,4222,4,0),(9231,'05520',4135,4136,4,0),(9232,'05520',3873,3874,4,0),(9233,'05530',3995,3996,4,0),(9234,'05530',4335,4336,4,0),(9235,'05540',4179,4180,4,0),(9236,'05540',3987,3988,4,0),(9237,'05540',3875,3876,4,0),(9238,'05560',4017,4018,4,0),(9239,'05560',4431,4432,4,0),(9240,'05560',4183,4184,4,0),(9241,'05560',3429,3430,4,0),(9242,'05560',4195,4196,4,0),(9243,'05560',4479,4480,4,0),(9244,'05570',3525,3526,4,0),(9245,'05571',4451,4452,4,0),(9246,'05571',4049,4050,4,0),(9247,'05571',3581,3582,4,0),(9248,'05580',3421,3422,4,0),(9249,'05580',4329,4330,4,0),(9250,'05580',3453,3454,4,0),(9251,'05581',4331,4332,4,0),(9252,'05591',4467,4468,4,0),(9253,'05592',4353,4354,4,0),(9254,'05593',3847,3848,4,0),(9255,'05600',3661,3662,4,0),(9256,'05610',3481,3482,4,0),(9257,'05619',3765,3766,4,0),(9258,'05619',4229,4230,4,0),(9259,'05619',4119,4120,4,0),(9260,'05619',3943,3944,4,0),(9261,'05620',3851,3852,4,0),(9262,'05621',4199,4200,4,0),(9263,'05621',4383,4384,4,0),(9264,'05630',4357,4358,4,0),(9265,'05630',3517,3518,4,0),(9266,'05631',4495,4496,4,0),(9267,'05631',4085,4086,4,0),(9268,'05632',4257,4258,4,0),(9269,'05632',4087,4088,4,0),(9270,'05633',4259,4260,4,0),(9271,'05634',3825,3826,4,0),(9272,'05634',3831,3832,4,0),(9273,'05635',4099,4100,4,0),(9274,'05640',3753,3754,4,0),(9275,'05690',3519,3520,4,0),(9276,'05690',3897,3898,4,0),(9277,'05691',4385,4386,4,0),(9278,'05692',3687,3688,4,0),(9279,'05693',4427,4428,4,0),(9280,'05693',3761,3762,4,0),(9281,'05694',3483,3484,4,0),(9282,'05694',3839,3840,4,0),(9283,'05695',3863,3864,4,0),(9284,'05696',3865,3866,4,0),(9285,'05696',4281,4282,4,0),(9286,'05697',4073,4074,4,0),(9287,'05697',4415,4416,4,0),(9288,'05697',4115,4116,4,0),(9289,'05697',4045,4046,4,0),(9290,'06001',4561,4562,4,0),(9291,'06002',4563,4564,4,0),(9292,'06003',4565,4566,4,0),(9293,'06004',4567,4568,4,0),(9294,'06005',4569,4570,4,0),(9295,'06006',4571,4572,4,0),(9296,'06007',4573,4574,4,0),(9297,'06008',4575,4576,4,0),(9298,'06009',4577,4578,4,0),(9299,'06010',4579,4580,4,0),(9300,'06011',4581,4582,4,0),(9301,'06100',4987,4988,4,0),(9302,'06105',4693,4694,4,0),(9303,'06106',4989,4990,4,0),(9304,'06107',4991,4992,4,0),(9305,'06108',4993,4994,4,0),(9306,'06109',4995,4996,4,0),(9307,'06110',5239,5240,4,0),(9308,'06120',4979,4980,4,0),(9309,'06129',5261,5262,4,0),(9310,'06130',5199,5200,4,0),(9311,'06131',4527,4528,4,0),(9312,'06132',4813,4814,4,0),(9313,'06133',5127,5128,4,0),(9314,'06134',5175,5176,4,0),(9315,'06140',5123,5124,4,0),(9316,'06150',5099,5100,4,0),(9317,'06160',4601,4602,4,0),(9318,'06170',4583,4584,4,0),(9319,'06170',4835,4836,4,0),(9320,'06171',4539,4540,4,0),(9321,'06172',5135,5136,4,0),(9322,'06173',4975,4976,4,0),(9323,'06174',5077,5078,4,0),(9324,'06174',4851,4852,4,0),(9325,'06175',5081,5082,4,0),(9326,'06176',4869,4870,4,0),(9327,'06176',4861,4862,4,0),(9328,'06177',5187,5188,4,0),(9329,'06178',5191,5192,4,0),(9330,'06180',4585,4586,4,0),(9331,'06181',4587,4588,4,0),(9332,'06182',4589,4590,4,0),(9333,'06183',4591,4592,4,0),(9334,'06184',5049,5050,4,0),(9335,'06185',5163,5164,4,0),(9336,'06186',4785,4786,4,0),(9337,'06187',4887,4888,4,0),(9338,'06190',4873,4874,4,0),(9339,'06191',5031,5032,4,0),(9340,'06192',5249,5250,4,0),(9341,'06193',4593,4594,4,0),(9342,'06194',4595,4596,4,0),(9343,'06195',4597,4598,4,0),(9344,'06196',4701,4702,4,0),(9345,'06196',5111,5112,4,0),(9346,'06197',4729,4730,4,0),(9347,'06198',5113,5114,4,0),(9348,'06200',4543,4544,4,0),(9349,'06207',4507,4508,4,0),(9350,'06208',5223,5224,4,0),(9351,'06209',5115,5116,4,0),(9352,'06210',5143,5144,4,0),(9353,'06220',5211,5212,4,0),(9354,'06225',5069,5070,4,0),(9355,'06226',4821,4822,4,0),(9356,'06227',4879,4880,4,0),(9357,'06228',4825,4826,4,0),(9358,'06229',5045,5046,4,0),(9359,'06230',4893,4894,4,0),(9360,'06240',4757,4758,4,0),(9361,'06249',4671,4672,4,0),(9362,'06249',4653,4654,4,0),(9363,'06250',4623,4624,4,0),(9364,'06260',4937,4938,4,0),(9365,'06270',5103,5104,4,0),(9366,'06280',4769,4770,4,0),(9367,'06290',5155,5156,4,0),(9368,'06291',4941,4942,4,0),(9369,'06292',4649,4650,4,0),(9370,'06293',4641,4642,4,0),(9371,'06300',5257,5258,4,0),(9372,'06310',5035,5036,4,0),(9373,'06320',4921,4922,4,0),(9374,'06329',4551,4552,4,0),(9375,'06330',5179,5180,4,0),(9376,'06340',4749,4750,4,0),(9377,'06350',4817,4818,4,0),(9378,'06360',4765,4766,4,0),(9379,'06370',4631,4632,4,0),(9380,'06378',5195,5196,4,0),(9381,'06380',4829,4830,4,0),(9382,'06389',4831,4832,4,0),(9383,'06390',4745,4746,4,0),(9384,'06391',4857,4858,4,0),(9385,'06392',5037,5038,4,0),(9386,'06393',4531,4532,4,0),(9387,'06394',4627,4628,4,0),(9388,'06400',4713,4714,4,0),(9389,'06410',4509,4510,4,0),(9390,'06410',5095,5096,4,0),(9391,'06410',4789,4790,4,0),(9392,'06410',4715,4716,4,0),(9393,'06411',4917,4918,4,0),(9394,'06412',4717,4718,4,0),(9395,'06413',4925,4926,4,0),(9396,'06420',4689,4690,4,0),(9397,'06427',4949,4950,4,0),(9398,'06428',4609,4610,4,0),(9399,'06429',4611,4612,4,0),(9400,'06430',5265,5266,4,0),(9401,'06439',4737,4738,4,0),(9402,'06440',4909,4910,4,0),(9403,'06441',4805,4806,4,0),(9404,'06442',5065,5066,4,0),(9405,'06443',4663,4664,4,0),(9406,'06444',5171,5172,4,0),(9407,'06445',4809,4810,4,0),(9408,'06450',5053,5054,4,0),(9409,'06458',5183,5184,4,0),(9410,'06459',4657,4658,4,0),(9411,'06460',4659,4660,4,0),(9412,'06468',4897,4898,4,0),(9413,'06469',4843,4844,4,0),(9414,'06470',4791,4792,4,0),(9415,'06473',5219,5220,4,0),(9416,'06474',5167,5168,4,0),(9417,'06475',4983,4984,4,0),(9418,'06476',5007,5008,4,0),(9419,'06477',5027,5028,4,0),(9420,'06478',4913,4914,4,0),(9421,'06479',4705,4706,4,0),(9422,'06480',4953,4954,4,0),(9423,'06486',4865,4866,4,0),(9424,'06487',4697,4698,4,0),(9425,'06488',4673,4674,4,0),(9426,'06489',4955,4956,4,0),(9427,'06490',5023,5024,4,0),(9428,'06498',4889,4890,4,0),(9429,'06499',4957,4958,4,0),(9430,'06500',5089,5090,4,0),(9431,'06510',4521,4522,4,0),(9432,'06518',4839,4840,4,0),(9433,'06519',4523,4524,4,0),(9434,'06600',4635,4636,4,0),(9435,'06610',5011,5012,4,0),(9436,'06611',5269,5270,4,0),(9437,'06612',4667,4668,4,0),(9438,'06613',4613,4614,4,0),(9439,'06614',4637,4638,4,0),(9440,'06615',4615,4616,4,0),(9441,'06620',4741,4742,4,0),(9442,'06630',5019,5020,4,0),(9443,'06640',5119,5120,4,0),(9444,'06650',5107,5108,4,0),(9445,'06656',4777,4778,4,0),(9446,'06657',5073,5074,4,0),(9447,'06658',5131,5132,4,0),(9448,'06659',4605,4606,4,0),(9449,'06660',4753,4754,4,0),(9450,'06670',4799,4800,4,0),(9451,'06678',5253,5254,4,0),(9452,'06679',4801,4802,4,0),(9453,'06680',4685,4686,4,0),(9454,'06689',5159,5160,4,0),(9455,'06690',4773,4774,4,0),(9456,'06692',4795,4796,4,0),(9457,'06700',5227,5228,4,0),(9458,'06710',5229,5230,4,0),(9459,'06711',4719,4720,4,0),(9460,'06712',5231,5232,4,0),(9461,'06713',4501,4502,4,0),(9462,'06714',4853,4854,4,0),(9463,'06715',5061,5062,4,0),(9464,'06716',5243,5244,4,0),(9465,'06717',5245,5246,4,0),(9466,'06717',4721,4722,4,0),(9467,'06718',5233,5234,4,0),(9468,'06720',5235,5236,4,0),(9469,'06730',4967,4968,4,0),(9470,'06730',4503,4504,4,0),(9471,'06731',4969,4970,4,0),(9472,'06740',5003,5004,4,0),(9473,'06750',4999,5000,4,0),(9474,'06760',4971,4972,4,0),(9475,'06770',4677,4678,4,0),(9476,'06800',4929,4930,4,0),(9477,'06810',4645,4646,4,0),(9478,'06820',4709,4710,4,0),(9479,'06830',40993,40994,4,0),(9480,'06840',4517,4518,4,0),(9481,'06850',4547,4548,4,0),(9482,'06860',4733,4734,4,0),(9483,'06870',4847,4848,4,0),(9484,'06880',5139,5140,4,0),(9485,'06890',5207,5208,4,0),(9486,'06891',4933,4934,4,0),(9487,'06892',5151,5152,4,0),(9488,'06893',5085,5086,4,0),(9489,'06894',4535,4536,4,0),(9490,'06894',4725,4726,4,0),(9491,'06900',4883,4884,4,0),(9492,'06906',5041,5042,4,0),(9493,'06907',4943,4944,4,0),(9494,'06908',4945,4946,4,0),(9495,'06909',5147,5148,4,0),(9496,'06910',4781,4782,4,0),(9497,'06919',5015,5016,4,0),(9498,'06920',4555,4556,4,0),(9499,'06927',5203,5204,4,0),(9500,'06928',4905,4906,4,0),(9501,'06929',4557,4558,4,0),(9502,'06930',4619,4620,4,0),(9503,'06939',4901,4902,4,0),(9504,'06940',4513,4514,4,0),(9505,'06950',5215,5216,4,0),(9506,'06960',4681,4682,4,0),(9507,'06970',5057,5058,4,0),(9508,'06980',4761,4762,4,0),(9509,'07001',5537,5538,4,0),(9510,'07002',5539,5540,4,0),(9511,'07003',5541,5542,4,0),(9512,'07004',5543,5544,4,0),(9513,'07005',5545,5546,4,0),(9514,'07006',5547,5548,4,0),(9515,'07007',5549,5550,4,0),(9516,'07008',5551,5552,4,0),(9517,'07009',5553,5554,4,0),(9518,'07010',5391,5392,4,0),(9519,'07010',5555,5556,4,0),(9520,'07011',5557,5558,4,0),(9521,'07012',5559,5560,4,0),(9522,'07013',5561,5562,4,0),(9523,'07014',5563,5564,4,0),(9524,'07015',5565,5566,4,0),(9525,'07071',5567,5568,4,0),(9526,'07100',5693,5694,4,0),(9527,'07101',5695,5696,4,0),(9528,'07108',5697,5698,4,0),(9529,'07109',5471,5472,4,0),(9530,'07110',5393,5394,4,0),(9531,'07120',5569,5570,4,0),(9532,'07140',5673,5674,4,0),(9533,'07141',5523,5524,4,0),(9534,'07142',5627,5628,4,0),(9535,'07143',5675,5676,4,0),(9536,'07144',5677,5678,4,0),(9537,'07144',5439,5440,4,0),(9538,'07150',5355,5356,4,0),(9539,'07157',5357,5358,4,0),(9540,'07159',5359,5360,4,0),(9541,'07160',5401,5402,4,0),(9542,'07160',5361,5362,4,0),(9543,'07170',5713,5714,4,0),(9544,'07179',5699,5700,4,0),(9545,'07179',5443,5444,4,0),(9546,'07180',5403,5404,4,0),(9547,'07181',5405,5406,4,0),(9548,'07183',5407,5408,4,0),(9549,'07184',5409,5410,4,0),(9550,'07190',5451,5452,4,0),(9551,'07190',5377,5378,4,0),(9552,'07190',5715,5716,4,0),(9553,'07191',5379,5380,4,0),(9554,'07192',5455,5456,4,0),(9555,'07193',5395,5396,4,0),(9556,'07194',5601,5602,4,0),(9557,'07195',5603,5604,4,0),(9558,'07196',5411,5412,4,0),(9559,'07198',5571,5572,4,0),(9560,'07199',5573,5574,4,0),(9561,'07200',5459,5460,4,0),(9562,'07208',5461,5462,4,0),(9563,'07209',5463,5464,4,0),(9564,'07210',5347,5348,4,0),(9565,'07220',5349,5350,4,0),(9566,'07230',5527,5528,4,0),(9567,'07240',5611,5612,4,0),(9568,'07250',5719,5720,4,0),(9569,'07259',5365,5366,4,0),(9570,'07260',5597,5598,4,0),(9571,'07300',5475,5476,4,0),(9572,'07310',5415,5416,4,0),(9573,'07311',5387,5388,4,0),(9574,'07312',5515,5516,4,0),(9575,'07313',5663,5664,4,0),(9576,'07314',5665,5666,4,0),(9577,'07315',5447,5448,4,0),(9578,'07316',5667,5668,4,0),(9579,'07320',5639,5640,4,0),(9580,'07330',5435,5436,4,0),(9581,'07340',5339,5340,4,0),(9582,'07349',5397,5398,4,0),(9583,'07350',5383,5384,4,0),(9584,'07360',5483,5484,4,0),(9585,'07369',5669,5670,4,0),(9586,'07400',5343,5344,4,0),(9587,'07420',5607,5608,4,0),(9588,'07430',5487,5488,4,0),(9589,'07440',5531,5532,4,0),(9590,'07450',5631,5632,4,0),(9591,'07458',5633,5634,4,0),(9592,'07458',5533,5534,4,0),(9593,'07459',5635,5636,4,0),(9594,'07460',5589,5590,4,0),(9595,'07469',5591,5592,4,0),(9596,'07470',5593,5594,4,0),(9597,'07500',5501,5502,4,0),(9598,'07509',5503,5504,4,0),(9599,'07510',5689,5690,4,0),(9600,'07511',5679,5680,4,0),(9601,'07518',5479,5480,4,0),(9602,'07519',5519,5520,4,0),(9603,'07520',5585,5586,4,0),(9604,'07529',5367,5368,4,0),(9605,'07530',5617,5618,4,0),(9606,'07540',5619,5620,4,0),(9607,'07550',5703,5704,4,0),(9608,'07559',5705,5706,4,0),(9609,'07560',5707,5708,4,0),(9610,'07560',5621,5622,4,0),(9611,'07560',5643,5644,4,0),(9612,'07570',5371,5372,4,0),(9613,'07579',5373,5374,4,0),(9614,'07580',5427,5428,4,0),(9615,'07589',5429,5430,4,0),(9616,'07590',5431,5432,4,0),(9617,'07600',5491,5492,4,0),(9618,'07600',5575,5576,4,0),(9619,'07608',5577,5578,4,0),(9620,'07609',5493,5494,4,0),(9621,'07610',5579,5580,4,0),(9622,'07620',5495,5496,4,0),(9623,'07629',5351,5352,4,0),(9624,'07630',5419,5420,4,0),(9625,'07638',5683,5684,4,0),(9626,'07638',5421,5422,4,0),(9627,'07639',5423,5424,4,0),(9628,'07639',5497,5498,4,0),(9629,'07640',5685,5686,4,0),(9630,'07650',5645,5646,4,0),(9631,'07659',5647,5648,4,0),(9632,'07660',5649,5650,4,0),(9633,'07669',5465,5466,4,0),(9634,'07669',5651,5652,4,0),(9635,'07670',5467,5468,4,0),(9636,'07680',5505,5506,4,0),(9637,'07687',5507,5508,4,0),(9638,'07687',5623,5624,4,0),(9639,'07688',5509,5510,4,0),(9640,'07689',5511,5512,4,0),(9641,'07690',5653,5654,4,0),(9642,'07691',5655,5656,4,0),(9643,'07700',5755,5756,4,0),(9644,'07701',5757,5758,4,0),(9645,'07702',5759,5760,4,0),(9646,'07703',5761,5762,4,0),(9647,'07710',5769,5770,4,0),(9648,'07711',5771,5772,4,0),(9649,'07712',5763,5764,4,0),(9650,'07713',5773,5774,4,0),(9651,'07714',5765,5766,4,0),(9652,'07720',5613,5614,4,0),(9653,'07720',5737,5738,4,0),(9654,'07730',5725,5726,4,0),(9655,'07740',5741,5742,4,0),(9656,'07748',5743,5744,4,0),(9657,'07749',5747,5748,4,0),(9658,'07750',5709,5710,4,0),(9659,'07750',5729,5730,4,0),(9660,'07750',5751,5752,4,0),(9661,'07760',5731,5732,4,0),(9663,'07769',5733,5734,4,0),(9664,'07800',5277,5278,4,0),(9665,'07800',5291,5292,4,0),(9666,'07800',5323,5324,4,0),(9667,'07810',5301,5302,4,0),(9668,'07811',5303,5304,4,0),(9669,'07812',5305,5306,4,0),(9670,'07814',5325,5326,4,0),(9671,'07815',5307,5308,4,0),(9672,'07816',5293,5294,4,0),(9673,'07817',5311,5312,4,0),(9674,'07818',5313,5314,4,0),(9675,'07819',5327,5328,4,0),(9676,'07820',5295,5296,4,0),(9677,'07828',5297,5298,4,0),(9678,'07829',5315,5316,4,0),(9679,'07830',5317,5318,4,0),(9680,'07839',5319,5320,4,0),(9681,'07840',5329,5330,4,0),(9682,'07849',5331,5332,4,0),(9683,'07850',5333,5334,4,0),(9684,'07850',5659,5660,4,0),(9685,'07860',5281,5282,4,0),(9686,'07870',5283,5284,4,0),(9687,'07871',5285,5286,4,0),(9688,'07872',5287,5288,4,0),(9689,'08001',5881,5882,4,0),(9690,'08002',5883,5884,4,0),(9691,'08003',5885,5886,4,0),(9692,'08004',5887,5888,4,0),(9693,'08005',5889,5890,4,0),(9694,'08006',5891,5892,4,0),(9695,'08007',5893,5894,4,0),(9696,'08008',5895,5896,4,0),(9697,'08009',5897,5898,4,0),(9698,'08010',5899,5900,4,0),(9699,'08011',5901,5902,4,0),(9700,'08012',5903,5904,4,0),(9701,'08013',5905,5906,4,0),(9702,'08014',5907,5908,4,0),(9703,'08015',5909,5910,4,0),(9704,'08016',5911,5912,4,0),(9705,'08017',5913,5914,4,0),(9706,'08018',5915,5916,4,0),(9707,'08019',5917,5918,4,0),(9708,'08020',5919,5920,4,0),(9709,'08021',5921,5922,4,0),(9710,'08022',5923,5924,4,0),(9711,'08023',5925,5926,4,0),(9712,'08024',5927,5928,4,0),(9713,'08025',5929,5930,4,0),(9714,'08026',5931,5932,4,0),(9715,'08027',5933,5934,4,0),(9716,'08028',5935,5936,4,0),(9717,'08029',5937,5938,4,0),(9718,'08030',5939,5940,4,0),(9719,'08031',5941,5942,4,0),(9720,'08032',5943,5944,4,0),(9721,'08033',5945,5946,4,0),(9722,'08034',5947,5948,4,0),(9723,'08035',5949,5950,4,0),(9724,'08036',5951,5952,4,0),(9725,'08037',5953,5954,4,0),(9726,'08038',5955,5956,4,0),(9727,'08039',5957,5958,4,0),(9728,'08040',5959,5960,4,0),(9729,'08041',5961,5962,4,0),(9730,'08042',5963,5964,4,0),(9731,'08100',6529,6530,4,0),(9732,'08104',6531,6532,4,0),(9733,'08105',6873,6874,4,0),(9734,'08106',7081,7082,4,0),(9735,'08107',6493,6494,4,0),(9736,'08110',6543,6544,4,0),(9737,'08120',6395,6396,4,0),(9738,'08130',7099,7100,4,0),(9739,'08140',6017,6018,4,0),(9740,'08146',6289,6290,4,0),(9741,'08148',6359,6360,4,0),(9742,'08150',6665,6666,4,0),(9743,'08160',6567,6568,4,0),(9744,'08161',6729,6730,4,0),(9745,'08170',6571,6572,4,0),(9746,'08172',6825,6826,4,0),(9747,'08173',6827,6828,4,0),(9748,'08174',6829,6830,4,0),(9749,'08175',6831,6832,4,0),(9750,'08178',6179,6180,4,0),(9751,'08180',6521,6522,4,0),(9752,'08181',7111,7112,4,0),(9753,'08182',6861,6862,4,0),(9754,'08183',6145,6146,4,0),(9755,'08183',6111,6112,4,0),(9756,'08183',6309,6310,4,0),(9757,'08184',6361,6362,4,0),(9758,'08184',6655,6656,4,0),(9759,'08185',6451,6452,4,0),(9760,'08186',6447,6448,4,0),(9761,'08187',7055,7056,4,0),(9762,'08188',7241,7242,4,0),(9763,'08189',6997,6998,4,0),(9764,'08190',6833,6834,4,0),(9765,'08191',6731,6732,4,0),(9766,'08192',6989,6990,4,0),(9767,'08193',6165,6166,4,0),(9768,'08194',6991,6992,4,0),(9769,'08195',6835,6836,4,0),(9770,'08196',6837,6838,4,0),(9771,'08197',6839,6840,4,0),(9772,'08198',6841,6842,4,0),(9773,'08201',6743,6744,4,0),(9774,'08202',6745,6746,4,0),(9775,'08203',6747,6748,4,0),(9776,'08204',6749,6750,4,0),(9777,'08205',6751,6752,4,0),(9778,'08206',6753,6754,4,0),(9779,'08207',6755,6756,4,0),(9780,'08208',6757,6758,4,0),(9781,'08210',5877,5878,4,0),(9782,'08211',6099,6100,4,0),(9783,'08212',6917,6918,4,0),(9784,'08213',6681,6682,4,0),(9785,'08214',5861,5862,4,0),(9786,'08220',6799,6800,4,0),(9787,'08221',7167,7168,4,0),(9788,'08222',7169,7170,4,0),(9789,'08223',7171,7172,4,0),(9790,'08224',7173,7174,4,0),(9791,'08225',7175,7176,4,0),(9792,'08226',7177,7178,4,0),(9793,'08227',7179,7180,4,0),(9794,'08228',7181,7182,4,0),(9795,'08228',6993,6994,4,0),(9796,'08230',6503,6504,4,0),(9797,'08231',7215,7216,4,0),(9798,'08232',7263,7264,4,0),(9799,'08233',7219,7220,4,0),(9800,'08240',6475,6476,4,0),(9801,'08241',6477,6478,4,0),(9802,'08242',6479,6480,4,0),(9803,'08243',6481,6482,4,0),(9804,'08250',6893,6894,4,0),(9805,'08251',7107,7108,4,0),(9806,'08251',6137,6138,4,0),(9807,'08253',7009,7010,4,0),(9808,'08254',6225,6226,4,0),(9809,'08255',6129,6130,4,0),(9810,'08256',5783,5784,4,0),(9811,'08256',6713,6714,4,0),(9812,'08259',6271,6272,4,0),(9813,'08260',7139,7140,4,0),(9814,'08261',6075,6076,4,0),(9815,'08262',6029,6030,4,0),(9816,'08263',6943,6944,4,0),(9817,'08269',6593,6594,4,0),(9818,'08269',6945,6946,4,0),(9819,'08270',6589,6590,4,0),(9820,'08271',5817,5818,4,0),(9821,'08272',6877,6878,4,0),(9822,'08273',7071,7072,4,0),(9823,'08274',6869,6870,4,0),(9824,'08275',6009,6010,4,0),(9825,'08275',6535,6536,4,0),(9826,'08278',7147,7148,4,0),(9827,'08278',6585,6586,4,0),(9828,'08279',5827,5828,4,0),(9829,'08280',6005,6006,4,0),(9830,'08281',6971,6972,4,0),(9831,'08281',6033,6034,4,0),(9832,'08281',6237,6238,4,0),(9833,'08281',24025,24026,4,0),(9834,'08281',6125,6126,4,0),(9835,'08282',6939,6940,4,0),(9836,'08282',6709,6710,4,0),(9837,'08289',6183,6184,4,0),(9838,'08289',7245,7246,4,0),(9839,'08289',24419,24420,4,0),(9840,'08290',6167,6168,4,0),(9841,'08291',6721,6722,4,0),(9842,'08292',6241,6242,4,0),(9843,'08293',6175,6176,4,0),(9844,'08294',6205,6206,4,0),(9845,'08295',7013,7014,4,0),(9846,'08296',6103,6104,4,0),(9847,'08297',6133,6134,4,0),(9848,'08298',6485,6486,4,0),(9849,'08299',6717,6718,4,0),(9850,'08301',6507,6508,4,0),(9851,'08302',6509,6510,4,0),(9852,'08303',6511,6512,4,0),(9853,'08304',6513,6514,4,0),(9854,'08310',5813,5814,4,0),(9855,'08317',6643,6644,4,0),(9856,'08318',6199,6200,4,0),(9857,'08319',6201,6202,4,0),(9858,'08320',6213,6214,4,0),(9859,'08328',5791,5792,4,0),(9860,'08329',7163,7164,4,0),(9861,'08330',6697,6698,4,0),(9862,'08338',6693,6694,4,0),(9863,'08339',7291,7292,4,0),(9864,'08340',7295,7296,4,0),(9865,'08348',5999,6000,4,0),(9866,'08349',5995,5996,4,0),(9867,'08350',5799,5800,4,0),(9868,'08350',5803,5804,4,0),(9869,'08358',5805,5806,4,0),(9870,'08359',6885,6886,4,0),(9871,'08360',6043,6044,4,0),(9872,'08370',6021,6022,4,0),(9873,'08380',6463,6464,4,0),(9874,'08384',6001,6002,4,0),(9875,'08389',6651,6652,4,0),(9876,'08390',6555,6556,4,0),(9877,'08391',7187,7188,4,0),(9878,'08392',6787,6788,4,0),(9879,'08393',6013,6014,4,0),(9880,'08394',7017,7018,4,0),(9881,'08395',6975,6976,4,0),(9882,'08396',6809,6810,4,0),(9883,'08397',6677,6678,4,0),(9884,'08398',7103,7104,4,0),(9885,'08401',6313,6314,4,0),(9886,'08402',6315,6316,4,0),(9887,'08403',6317,6318,4,0),(9888,'08410',7283,7284,4,0),(9889,'08415',5981,5982,4,0),(9890,'08416',5983,5984,4,0),(9891,'08420',6047,6048,4,0),(9892,'08430',6419,6420,4,0),(9893,'08440',6071,6072,4,0),(9894,'08440',6051,6052,4,0),(9895,'08445',6053,6054,4,0),(9896,'08450',6455,6456,4,0),(9897,'08455',7271,7272,4,0),(9898,'08458',6919,6920,4,0),(9899,'08458',6963,6964,4,0),(9900,'08459',6791,6792,4,0),(9901,'08459',6965,6966,4,0),(9902,'08460',6967,6968,4,0),(9903,'08460',7095,7096,4,0),(9904,'08460',6849,6850,4,0),(9905,'08461',6851,6852,4,0),(9906,'08469',6575,6576,4,0),(9907,'08470',6261,6262,4,0),(9908,'08470',6813,6814,4,0),(9909,'08470',6037,6038,4,0),(9910,'08470',7231,7232,4,0),(9911,'08471',7233,7234,4,0),(9912,'08472',6039,6040,4,0),(9913,'08474',6323,6324,4,0),(9914,'08476',6815,6816,4,0),(9915,'08479',6263,6264,4,0),(9916,'08480',6345,6346,4,0),(9917,'08490',7195,7196,4,0),(9918,'08495',6257,6258,4,0),(9919,'08500',7249,7250,4,0),(9920,'08503',6331,6332,4,0),(9921,'08504',6905,6906,4,0),(9922,'08505',6579,6580,4,0),(9923,'08505',7051,7052,4,0),(9924,'08506',6025,6026,4,0),(9925,'08507',7047,7048,4,0),(9926,'08508',6441,6442,4,0),(9927,'08508',6983,6984,4,0),(9928,'08509',6443,6444,4,0),(9929,'08509',7029,7030,4,0),(9930,'08510',6437,6438,4,0),(9931,'08510',6725,6726,4,0),(9932,'08511',6353,6354,4,0),(9933,'08511',7159,7160,4,0),(9934,'08512',6881,6882,4,0),(9935,'08513',6689,6690,4,0),(9936,'08514',6459,6460,4,0),(9937,'08515',6923,6924,4,0),(9938,'08516',6621,6622,4,0),(9939,'08517',7085,7086,4,0),(9940,'08518',6635,6636,4,0),(9941,'08519',7275,7276,4,0),(9942,'08519',7155,7156,4,0),(9943,'08519',6339,6340,4,0),(9944,'08519',7251,7252,4,0),(9945,'08519',6267,6268,4,0),(9946,'08519',7005,7006,4,0),(9947,'08519',6467,6468,4,0),(9948,'08519',6795,6796,4,0),(9949,'08520',6431,6432,4,0),(9950,'08521',6433,6434,4,0),(9951,'08529',6581,6582,4,0),(9952,'08530',6055,6056,4,0),(9953,'08530',6383,6384,4,0),(9954,'08540',6157,6158,4,0),(9955,'08550',5869,5870,4,0),(9956,'08551',7191,7192,4,0),(9957,'08552',7151,7152,4,0),(9958,'08553',7115,7116,4,0),(9959,'08554',7117,7118,4,0),(9960,'08559',6209,6210,4,0),(9961,'08560',6471,6472,4,0),(9962,'08569',6739,6740,4,0),(9963,'08569',6355,6356,4,0),(9964,'08570',7199,7200,4,0),(9965,'08571',7021,7022,4,0),(9966,'08572',6959,6960,4,0),(9967,'08573',6631,6632,4,0),(9968,'08580',6985,6986,4,0),(9969,'08584',7075,7076,4,0),(9970,'08587',5795,5796,4,0),(9971,'08588',7131,7132,4,0),(9972,'08589',7077,7078,4,0),(9973,'08589',6779,6780,4,0),(9974,'08589',6805,6806,4,0),(9975,'08589',6551,6552,4,0),(9976,'08589',6669,6670,4,0),(9977,'08589',7127,7128,4,0),(9978,'08590',6249,6250,4,0),(9979,'08591',5787,5788,4,0),(9980,'08592',6927,6928,4,0),(9981,'08593',7143,7144,4,0),(9982,'08600',5977,5978,4,0),(9983,'08604',6087,6088,4,0),(9984,'08605',6547,6548,4,0),(9985,'08610',5821,5822,4,0),(9986,'08611',6625,6626,4,0),(9987,'08612',6559,6560,4,0),(9988,'08613',7255,7256,4,0),(9989,'08614',6349,6350,4,0),(9990,'08619',5987,5988,4,0),(9991,'08619',6415,6416,4,0),(9992,'08619',6889,6890,4,0),(9993,'08619',6095,6096,4,0),(9994,'08619',7087,7088,4,0),(9995,'08619',6761,6762,4,0),(9996,'08619',6067,6068,4,0),(9997,'08620',7025,7026,4,0),(9998,'08629',7211,7212,4,0),(9999,'08630',5779,5780,4,0),(10000,'08635',6855,6856,4,0),(10001,'08640',6613,6614,4,0),(10002,'08650',6771,6772,4,0),(10003,'08660',5873,5874,4,0),(10004,'08670',6595,6596,4,0),(10005,'08672',6281,6282,4,0),(10006,'08673',7303,7304,4,0),(10007,'08680',6301,6302,4,0),(10008,'08690',7033,7034,4,0),(10009,'08691',6539,6540,4,0),(10010,'08692',6701,6702,4,0),(10011,'08693',6083,6084,4,0),(10012,'08694',6901,6902,4,0),(10013,'08694',6327,6328,4,0),(10014,'08695',5865,5866,4,0),(10015,'08695',6305,6306,4,0),(10016,'08696',6091,6092,4,0),(10017,'08696',6411,6412,4,0),(10018,'08697',23965,23966,4,0),(10019,'08697',6765,6766,4,0),(10020,'08698',6399,6400,4,0),(10021,'08698',6161,6162,4,0),(10022,'08699',6767,6768,4,0),(10023,'08699',7227,7228,4,0),(10024,'08699',6627,6628,4,0),(10025,'08699',5823,5824,4,0),(10026,'08699',6253,6254,4,0),(10027,'08700',6335,6336,4,0),(10028,'08710',7063,7064,4,0),(10029,'08711',6599,6600,4,0),(10030,'08712',6931,6932,4,0),(10031,'08717',5809,5810,4,0),(10032,'08717',24513,24514,4,0),(10033,'08717',6563,6564,4,0),(10034,'08718',5991,5992,4,0),(10035,'08719',6735,6736,4,0),(10036,'08719',6341,6342,4,0),(10037,'08719',6141,6142,4,0),(10038,'08720',7267,7268,4,0),(10039,'08729',6119,6120,4,0),(10040,'08730',7067,7068,4,0),(10041,'08731',5831,5832,4,0),(10042,'08731',6935,6936,4,0),(10043,'08732',6121,6122,4,0),(10044,'08732',6149,6150,4,0),(10045,'08733',6221,6222,4,0),(10046,'08734',5833,5834,4,0),(10047,'08734',6603,6604,4,0),(10048,'08735',7299,7300,4,0),(10049,'08736',6275,6276,4,0),(10050,'08737',7207,7208,4,0),(10051,'08738',6685,6686,4,0),(10052,'08739',6277,6278,4,0),(10053,'08739',7135,7136,4,0),(10054,'08740',6783,6784,4,0),(10055,'08750',6525,6526,4,0),(10056,'08753',6659,6660,4,0),(10057,'08754',6217,6218,4,0),(10058,'08755',6107,6108,4,0),(10059,'08756',6403,6404,4,0),(10060,'08757',6187,6188,4,0),(10061,'08758',6171,6172,4,0),(10062,'08759',7237,7238,4,0),(10063,'08760',6489,6490,4,0),(10064,'08769',6153,6154,4,0),(10065,'08770',7001,7002,4,0),(10066,'08770',6817,6818,4,0),(10067,'08773',6517,6518,4,0),(10068,'08775',7203,7204,4,0),(10069,'08776',6955,6956,4,0),(10070,'08777',6979,6980,4,0),(10071,'08779',6391,6392,4,0),(10072,'08780',6661,6662,4,0),(10073,'08781',6233,6234,4,0),(10074,'08782',6857,6858,4,0),(10075,'08782',6497,6498,4,0),(10076,'08783',6499,6500,4,0),(10077,'08784',6673,6674,4,0),(10078,'08785',7223,7224,4,0),(10079,'08786',6063,6064,4,0),(10080,'08787',7091,7092,4,0),(10081,'08787',6639,6640,4,0),(10082,'08787',6407,6408,4,0),(10083,'08787',6079,6080,4,0),(10084,'08788',7279,7280,4,0),(10085,'08789',6423,6424,4,0),(10086,'08790',6297,6298,4,0),(10087,'08791',6913,6914,4,0),(10088,'08792',7059,7060,4,0),(10089,'08792',6387,6388,4,0),(10090,'08793',5835,5836,4,0),(10091,'08794',6427,6428,4,0),(10092,'08795',6609,6610,4,0),(10093,'08796',6647,6648,4,0),(10094,'08797',6705,6706,4,0),(10095,'08798',6845,6846,4,0),(10096,'08798',5837,5838,4,0),(10097,'08799',6605,6606,4,0),(10098,'08800',7287,7288,4,0),(10099,'08801',7183,7184,4,0),(10100,'08810',6949,6950,4,0),(10101,'08811',6059,6060,4,0),(10102,'08812',6951,6952,4,0),(10103,'08818',6617,6618,4,0),(10104,'08820',6229,6230,4,0),(10105,'08830',6801,6802,4,0),(10106,'08840',7259,7260,4,0),(10107,'08849',6821,6822,4,0),(10108,'08850',6293,6294,4,0),(10109,'08859',5969,5970,4,0),(10110,'08860',6115,6116,4,0),(10111,'08870',7121,7122,4,0),(10112,'08871',7123,7124,4,0),(10113,'08880',6195,6196,4,0),(10114,'08901',6365,6366,4,0),(10115,'08902',6367,6368,4,0),(10116,'08903',6369,6370,4,0),(10117,'08904',6371,6372,4,0),(10118,'08905',6373,6374,4,0),(10119,'08906',6375,6376,4,0),(10120,'08907',6377,6378,4,0),(10121,'08908',6379,6380,4,0),(10122,'08911',5841,5842,4,0),(10123,'08912',5843,5844,4,0),(10124,'08913',5845,5846,4,0),(10125,'08914',5847,5848,4,0),(10126,'08915',5849,5850,4,0),(10127,'08916',5851,5852,4,0),(10128,'08917',5853,5854,4,0),(10129,'08918',5855,5856,4,0),(10130,'08921',7037,7038,4,0),(10131,'08922',7039,7040,4,0),(10132,'08923',7041,7042,4,0),(10133,'08924',7043,7044,4,0),(10134,'08930',6775,6776,4,0),(10135,'08940',6191,6192,4,0),(10136,'08950',6245,6246,4,0),(10137,'08960',6909,6910,4,0),(10138,'08970',6897,6898,4,0),(10139,'08980',6865,6866,4,0),(10140,'09001',7529,7530,4,0),(10141,'09002',7531,7532,4,0),(10142,'09003',7533,7534,4,0),(10143,'09004',8687,8688,4,0),(10144,'09004',7535,7536,4,0),(10145,'09005',7537,7538,4,0),(10146,'09006',7539,7540,4,0),(10147,'09007',7541,7542,4,0),(10148,'09100',8137,8138,4,0),(10149,'09107',7967,7968,4,0),(10150,'09107',7655,7656,4,0),(10151,'09107',7401,7402,4,0),(10152,'09107',8307,8308,4,0),(10153,'09108',8139,8140,4,0),(10154,'09108',7645,7646,4,0),(10155,'09108',8295,8296,4,0),(10156,'09108',8523,8524,4,0),(10157,'09108',9123,9124,4,0),(10158,'09109',8291,8292,4,0),(10159,'09109',8667,8668,4,0),(10160,'09109',7659,7660,4,0),(10161,'09109',9067,9068,4,0),(10162,'09110',7661,7662,4,0),(10163,'09119',7663,7664,4,0),(10164,'09119',8075,8076,4,0),(10165,'09119',9035,9036,4,0),(10166,'09119',8353,8354,4,0),(10167,'09120',8921,8922,4,0),(10168,'09121',8141,8142,4,0),(10169,'09123',8669,8670,4,0),(10170,'09124',7927,7928,4,0),(10171,'09124',8923,8924,4,0),(10172,'09125',8785,8786,4,0),(10173,'09125',8925,8926,4,0),(10174,'09125',7911,7912,4,0),(10175,'09125',8235,8236,4,0),(10176,'09125',7457,7458,4,0),(10177,'09126',7929,7930,4,0),(10178,'09126',7459,7460,4,0),(10179,'09127',7461,7462,4,0),(10180,'09127',8893,8894,4,0),(10181,'09128',8677,8678,4,0),(10182,'09128',7851,7852,4,0),(10183,'09128',8927,8928,4,0),(10184,'09128',7937,7938,4,0),(10185,'09128',8999,9000,4,0),(10186,'09128',9097,9098,4,0),(10187,'09129',8929,8930,4,0),(10188,'09130',8479,8480,4,0),(10189,'09130',8709,8710,4,0),(10190,'09131',8039,8040,4,0),(10191,'09131',8853,8854,4,0),(10192,'09131',8345,8346,4,0),(10193,'09131',7345,7346,4,0),(10194,'09133',8701,8702,4,0),(10195,'09133',8033,8034,4,0),(10196,'09133',8727,8728,4,0),(10197,'09133',8349,8350,4,0),(10198,'09133',7959,7960,4,0),(10199,'09133',8113,8114,4,0),(10200,'09133',8931,8932,4,0),(10201,'09135',8693,8694,4,0),(10202,'09136',8695,8696,4,0),(10203,'09140',8161,8162,4,0),(10204,'09140',8431,8432,4,0),(10205,'09140',8463,8464,4,0),(10206,'09141',7309,7310,4,0),(10207,'09141',8163,8164,4,0),(10208,'09142',8165,8166,4,0),(10209,'09142',8861,8862,4,0),(10210,'09143',8775,8776,4,0),(10211,'09143',8655,8656,4,0),(10212,'09144',8657,8658,4,0),(10213,'09145',8659,8660,4,0),(10214,'09145',8863,8864,4,0),(10215,'09145',8777,8778,4,0),(10216,'09146',8059,8060,4,0),(10217,'09146',8897,8898,4,0),(10218,'09146',8865,8866,4,0),(10219,'09150',8855,8856,4,0),(10220,'09150',7913,7914,4,0),(10221,'09150',8035,8036,4,0),(10222,'09159',8857,8858,4,0),(10223,'09191',8809,8810,4,0),(10224,'09191',7933,7934,4,0),(10225,'09191',9089,9090,4,0),(10226,'09192',8287,8288,4,0),(10227,'09192',7543,7544,4,0),(10228,'09192',7609,7610,4,0),(10229,'09193',7649,7650,4,0),(10230,'09193',7603,7604,4,0),(10231,'09193',7545,7546,4,0),(10232,'09193',7593,7594,4,0),(10233,'09194',7595,7596,4,0),(10234,'09194',7599,7600,4,0),(10235,'09194',8067,8068,4,0),(10236,'09194',8509,8510,4,0),(10237,'09194',7939,7940,4,0),(10238,'09195',7395,7396,4,0),(10239,'09195',8965,8966,4,0),(10240,'09195',9063,9064,4,0),(10241,'09195',8977,8978,4,0),(10242,'09197',8979,8980,4,0),(10243,'09197',7347,7348,4,0),(10244,'09197',8939,8940,4,0),(10245,'09197',8167,8168,4,0),(10246,'09197',8689,8690,4,0),(10247,'09198',7651,7652,4,0),(10248,'09198',8577,8578,4,0),(10249,'09198',7941,7942,4,0),(10250,'09199',7417,7418,4,0),(10251,'09199',8545,8546,4,0),(10252,'09199',7605,7606,4,0),(10253,'09199',7453,7454,4,0),(10254,'09199',8371,8372,4,0),(10255,'09199',7547,7548,4,0),(10256,'09199',9071,9072,4,0),(10257,'09199',7409,7410,4,0),(10258,'09199',8471,8472,4,0),(10259,'09200',8197,8198,4,0),(10260,'09210',8871,8872,4,0),(10261,'09211',8335,8336,4,0),(10262,'09211',8873,8874,4,0),(10263,'09211',8267,8268,4,0),(10264,'09211',7815,7816,4,0),(10265,'09212',8875,8876,4,0),(10266,'09212',8145,8146,4,0),(10267,'09212',8199,8200,4,0),(10268,'09213',7695,7696,4,0),(10269,'09213',8767,8768,4,0),(10270,'09213',8877,8878,4,0),(10271,'09214',7499,7500,4,0),(10272,'09215',7719,7720,4,0),(10273,'09216',7721,7722,4,0),(10274,'09217',7723,7724,4,0),(10275,'09218',8201,8202,4,0),(10276,'09218',7725,7726,4,0),(10277,'09219',8613,8614,4,0),(10278,'09219',7501,7502,4,0),(10279,'09219',7357,7358,4,0),(10280,'09219',9031,9032,4,0),(10281,'09219',8203,8204,4,0),(10282,'09219',7757,7758,4,0),(10283,'09219',7361,7362,4,0),(10284,'09219',8633,8634,4,0),(10285,'09219',8909,8910,4,0),(10286,'09220',8319,8320,4,0),(10287,'09226',7449,7450,4,0),(10288,'09226',8315,8316,4,0),(10289,'09226',7469,7470,4,0),(10290,'09226',9039,9040,4,0),(10291,'09226',7679,7680,4,0),(10292,'09226',9085,9086,4,0),(10293,'09226',8321,8322,4,0),(10294,'09226',9093,9094,4,0),(10295,'09227',7625,7626,4,0),(10296,'09227',8987,8988,4,0),(10297,'09227',7877,7878,4,0),(10298,'09227',8705,8706,4,0),(10299,'09227',7955,7956,4,0),(10300,'09228',8095,8096,4,0),(10301,'09228',9079,9080,4,0),(10302,'09228',8407,8408,4,0),(10303,'09228',8263,8264,4,0),(10304,'09228',7691,7692,4,0),(10305,'09228',8117,8118,4,0),(10306,'09230',8585,8586,4,0),(10307,'09230',7525,7526,4,0),(10308,'09230',7781,7782,4,0),(10309,'09230',7899,7900,4,0),(10310,'09230',7791,7792,4,0),(10311,'09233',7335,7336,4,0),(10312,'09239',7671,7672,4,0),(10313,'09239',7397,7398,4,0),(10314,'09239',7667,7668,4,0),(10315,'09239',7783,7784,4,0),(10316,'09239',7327,7328,4,0),(10317,'09240',7509,7510,4,0),(10318,'09244',7551,7552,4,0),(10319,'09244',7819,7820,4,0),(10320,'09244',8427,8428,4,0),(10321,'09245',9131,9132,4,0),(10322,'09245',8805,8806,4,0),(10323,'09245',7511,7512,4,0),(10324,'09245',7855,7856,4,0),(10325,'09245',7495,7496,4,0),(10326,'09246',8269,8270,4,0),(10327,'09246',8079,8080,4,0),(10328,'09246',8055,8056,4,0),(10329,'09246',8391,8392,4,0),(10330,'09246',8367,8368,4,0),(10331,'09246',7587,7588,4,0),(10332,'09246',8423,8424,4,0),(10333,'09246',8535,8536,4,0),(10334,'09247',7847,7848,4,0),(10335,'09247',8573,8574,4,0),(10336,'09248',8501,8502,4,0),(10337,'09248',7433,7434,4,0),(10338,'09248',7473,7474,4,0),(10339,'09248',7513,7514,4,0),(10340,'09248',8397,8398,4,0),(10341,'09248',7613,7614,4,0),(10342,'09249',8247,8248,4,0),(10343,'09249',8271,8272,4,0),(10344,'09249',8081,8082,4,0),(10345,'09249',8023,8024,4,0),(10346,'09249',8917,8918,4,0),(10347,'09249',7323,7324,4,0),(10348,'09249',7515,7516,4,0),(10349,'09250',7475,7476,4,0),(10350,'09251',7749,7750,4,0),(10351,'09252',8211,8212,4,0),(10352,'09257',8951,8952,4,0),(10353,'09258',8763,8764,4,0),(10354,'09258',7629,7630,4,0),(10355,'09258',7777,7778,4,0),(10356,'09258',7477,7478,4,0),(10357,'09258',8849,8850,4,0),(10358,'09258',8953,8954,4,0),(10359,'09258',7331,7332,4,0),(10360,'09258',9003,9004,4,0),(10361,'09259',7945,7946,4,0),(10362,'09259',7465,7466,4,0),(10363,'09259',7799,7800,4,0),(10364,'09259',7633,7634,4,0),(10365,'09259',8487,8488,4,0),(10366,'09259',9107,9108,4,0),(10367,'09259',8491,8492,4,0),(10368,'09260',8401,8402,4,0),(10369,'09267',7795,7796,4,0),(10370,'09267',7479,7480,4,0),(10371,'09268',8473,8474,4,0),(10372,'09268',8403,8404,4,0),(10373,'09268',8961,8962,4,0),(10374,'09268',8597,8598,4,0),(10375,'09268',8609,8610,4,0),(10376,'09268',8913,8914,4,0),(10377,'09269',8475,8476,4,0),(10378,'09270',8493,8494,4,0),(10379,'09270',7683,7684,4,0),(10380,'09271',8459,8460,4,0),(10381,'09272',7481,7482,4,0),(10382,'09272',7807,7808,4,0),(10383,'09280',7759,7760,4,0),(10384,'09280',8327,8328,4,0),(10385,'09280',7617,7618,4,0),(10386,'09285',8829,8830,4,0),(10387,'09290',8435,8436,4,0),(10388,'09290',7811,7812,4,0),(10389,'09292',7413,7414,4,0),(10390,'09292',8223,8224,4,0),(10391,'09292',8941,8942,4,0),(10392,'09292',8625,8626,4,0),(10393,'09292',7687,7688,4,0),(10394,'09292',8443,8444,4,0),(10395,'09292',8637,8638,4,0),(10396,'09292',7517,7518,4,0),(10397,'09293',7521,7522,4,0),(10398,'09293',8205,8206,4,0),(10399,'09294',8011,8012,4,0),(10400,'09294',7727,7728,4,0),(10401,'09300',8531,8532,4,0),(10402,'09310',9075,9076,4,0),(10403,'09310',8753,8754,4,0),(10404,'09310',8757,8758,4,0),(10405,'09311',8259,8260,4,0),(10406,'09311',8007,8008,4,0),(10407,'09312',7365,7366,4,0),(10408,'09312',8759,8760,4,0),(10409,'09314',8935,8936,4,0),(10410,'09314',8339,8340,4,0),(10411,'09315',7823,7824,4,0),(10412,'09315',7835,7836,4,0),(10413,'09315',7999,8000,4,0),(10414,'09316',7907,7908,4,0),(10415,'09316',7491,7492,4,0),(10416,'09317',8099,8100,4,0),(10417,'09317',8589,8590,4,0),(10418,'09317',8341,8342,4,0),(10419,'09318',7831,7832,4,0),(10420,'09318',8797,8798,4,0),(10421,'09318',8243,8244,4,0),(10422,'09320',8085,8086,4,0),(10423,'09320',7711,7712,4,0),(10424,'09320',8801,8802,4,0),(10425,'09330',8089,8090,4,0),(10426,'09338',8905,8906,4,0),(10427,'09339',9081,9082,4,0),(10428,'09339',9015,9016,4,0),(10429,'09339',9119,9120,4,0),(10430,'09339',8995,8996,4,0),(10431,'09340',8043,8044,4,0),(10432,'09341',8601,8602,4,0),(10433,'09341',8731,8732,4,0),(10434,'09341',8045,8046,4,0),(10435,'09342',8747,8748,4,0),(10436,'09342',8621,8622,4,0),(10437,'09342',8363,8364,4,0),(10438,'09343',8969,8970,4,0),(10439,'09344',8539,8540,4,0),(10440,'09344',8957,8958,4,0),(10441,'09345',8541,8542,4,0),(10442,'09345',7949,7950,4,0),(10443,'09345',8749,8750,4,0),(10444,'09345',7421,7422,4,0),(10445,'09346',8121,8122,4,0),(10446,'09346',7739,7740,4,0),(10447,'09347',8451,8452,4,0),(10448,'09347',7741,7742,4,0),(10449,'09347',8505,8506,4,0),(10450,'09347',8411,8412,4,0),(10451,'09347',8047,8048,4,0),(10452,'09348',8049,8050,4,0),(10453,'09348',8455,8456,4,0),(10454,'09348',8251,8252,4,0),(10455,'09348',7675,7676,4,0),(10456,'09348',8673,8674,4,0),(10457,'09349',7699,7700,4,0),(10458,'09349',8051,8052,4,0),(10459,'09349',7703,7704,4,0),(10460,'09349',7787,7788,4,0),(10461,'09349',8375,8376,4,0),(10462,'09349',8447,8448,4,0),(10463,'09350',8641,8642,4,0),(10464,'09350',7555,7556,4,0),(10465,'09350',8283,8284,4,0),(10466,'09350',7425,7426,4,0),(10467,'09351',8069,8070,4,0),(10468,'09351',7885,7886,4,0),(10469,'09352',7745,7746,4,0),(10470,'09353',8629,8630,4,0),(10471,'09354',8387,8388,4,0),(10472,'09370',7369,7370,4,0),(10473,'09370',8419,8420,4,0),(10474,'09370',7859,7860,4,0),(10475,'09390',8617,8618,4,0),(10476,'09390',8991,8992,4,0),(10477,'09390',8735,8736,4,0),(10478,'09390',8091,8092,4,0),(10479,'09391',7641,7642,4,0),(10480,'09400',7371,7372,4,0),(10481,'09410',8357,8358,4,0),(10482,'09410',7735,7736,4,0),(10483,'09410',7377,7378,4,0),(10484,'09430',7921,7922,4,0),(10485,'09436',7871,7872,4,0),(10486,'09440',8681,8682,4,0),(10487,'09441',8683,8684,4,0),(10488,'09442',8717,8718,4,0),(10489,'09443',8973,8974,4,0),(10490,'09443',7863,7864,4,0),(10491,'09450',7429,7430,4,0),(10492,'09450',7373,7374,4,0),(10493,'09450',7889,7890,4,0),(10494,'09450',9027,9028,4,0),(10495,'09451',7391,7392,4,0),(10496,'09451',7381,7382,4,0),(10497,'09451',7563,7564,4,0),(10498,'09451',7387,7388,4,0),(10499,'09453',8983,8984,4,0),(10500,'09453',8793,8794,4,0),(10501,'09453',8781,8782,4,0),(10502,'09454',7923,7924,4,0),(10503,'09454',8415,8416,4,0),(10504,'09460',8193,8194,4,0),(10505,'09461',7839,7840,4,0),(10506,'09462',7315,7316,4,0),(10507,'09462',7881,7882,4,0),(10508,'09462',8239,8240,4,0),(10509,'09462',8019,8020,4,0),(10510,'09462',8331,8332,4,0),(10511,'09463',7873,7874,4,0),(10512,'09471',8027,8028,4,0),(10513,'09471',7827,7828,4,0),(10514,'09471',8605,8606,4,0),(10515,'09471',7843,7844,4,0),(10516,'09490',7505,7506,4,0),(10517,'09490',8359,8360,4,0),(10518,'09490',9127,9128,4,0),(10519,'09490',8581,8582,4,0),(10520,'09491',8789,8790,4,0),(10521,'09491',8029,8030,4,0),(10522,'09491',7803,7804,4,0),(10523,'09493',7567,7568,4,0),(10524,'09493',8739,8740,4,0),(10525,'09500',8125,8126,4,0),(10526,'09510',8815,8816,4,0),(10527,'09510',7979,7980,4,0),(10528,'09511',7985,7986,4,0),(10529,'09511',7487,7488,4,0),(10530,'09511',8817,8818,4,0),(10531,'09512',8127,8128,4,0),(10532,'09512',8819,8820,4,0),(10533,'09513',8129,8130,4,0),(10534,'09513',9043,9044,4,0),(10535,'09514',8155,8156,4,0),(10536,'09514',8131,8132,4,0),(10537,'09514',7981,7982,4,0),(10538,'09515',8147,8148,4,0),(10539,'09515',8133,8134,4,0),(10540,'09530',8273,8274,4,0),(10541,'09540',8769,8770,4,0),(10542,'09545',8831,8832,4,0),(10543,'09549',8771,8772,4,0),(10544,'09549',8879,8880,4,0),(10545,'09549',8149,8150,4,0),(10546,'09549',9045,9046,4,0),(10547,'09550',9047,9048,4,0),(10548,'09551',8867,8868,4,0),(10549,'09551',8061,8062,4,0),(10550,'09553',9049,9050,4,0),(10551,'09554',9051,9052,4,0),(10552,'09554',8275,8276,4,0),(10553,'09555',9053,9054,4,0),(10554,'09556',9055,9056,4,0),(10555,'09557',8173,8174,4,0),(10556,'09557',9057,9058,4,0),(10557,'09557',8181,8182,4,0),(10558,'09558',9059,9060,4,0),(10559,'09558',8823,8824,4,0),(10560,'09559',8189,8190,4,0),(10561,'09559',8063,8064,4,0),(10562,'09559',8277,8278,4,0),(10563,'09560',7767,7768,4,0),(10564,'09566',7769,7770,4,0),(10565,'09567',7771,7772,4,0),(10566,'09567',8175,8176,4,0),(10567,'09568',8177,8178,4,0),(10568,'09569',7773,7774,4,0),(10569,'09569',8157,8158,4,0),(10570,'09569',8833,8834,4,0),(10571,'09570',7405,7406,4,0),(10572,'09570',7351,7352,4,0),(10573,'09571',7337,7338,4,0),(10574,'09571',8883,8884,4,0),(10575,'09571',7353,7354,4,0),(10576,'09572',8885,8886,4,0),(10577,'09572',8825,8826,4,0),(10578,'09572',7339,7340,4,0),(10579,'09573',8183,8184,4,0),(10580,'09574',8185,8186,4,0),(10581,'09580',8835,8836,4,0),(10582,'09585',8837,8838,4,0),(10583,'09586',8839,8840,4,0),(10584,'09587',8841,8842,4,0),(10585,'09588',8843,8844,4,0),(10586,'09589',8323,8324,4,0),(10587,'09589',8845,8846,4,0),(10588,'09591',8811,8812,4,0),(10589,'09591',8169,8170,4,0),(10590,'09592',7311,7312,4,0),(10591,'09592',8549,8550,4,0),(10592,'09592',8393,8394,4,0),(10593,'09592',7589,7590,4,0),(10594,'09593',7579,7580,4,0),(10595,'09593',7319,7320,4,0),(10596,'09593',8299,8300,4,0),(10597,'09593',8553,8554,4,0),(10598,'09593',8279,8280,4,0),(10599,'09593',8557,8558,4,0),(10600,'09594',8151,8152,4,0),(10601,'09600',8561,8562,4,0),(10602,'09610',7763,7764,4,0),(10603,'09610',7707,7708,4,0),(10604,'09610',8651,8652,4,0),(10605,'09611',7867,7868,4,0),(10606,'09611',7583,7584,4,0),(10607,'09611',9023,9024,4,0),(10608,'09612',8379,8380,4,0),(10609,'09612',8003,8004,4,0),(10610,'09612',7559,7560,4,0),(10611,'09612',8109,8110,4,0),(10612,'09613',8563,8564,4,0),(10613,'09613',8383,8384,4,0),(10614,'09613',9115,9116,4,0),(10615,'09613',8015,8016,4,0),(10616,'09613',7441,7442,4,0),(10617,'09613',7731,7732,4,0),(10618,'09613',8219,8220,4,0),(10619,'09614',8889,8890,4,0),(10620,'09614',7917,7918,4,0),(10621,'09614',7445,7446,4,0),(10622,'09615',8565,8566,4,0),(10623,'09615',8231,8232,4,0),(10624,'09615',8527,8528,4,0),(10625,'09615',7437,7438,4,0),(10626,'09616',8713,8714,4,0),(10627,'09617',8645,8646,4,0),(10628,'09618',8647,8648,4,0),(10629,'09619',7893,7894,4,0),(10630,'09620',8519,8520,4,0),(10631,'09620',8663,8664,4,0),(10632,'09620',8569,8570,4,0),(10633,'09620',8215,8216,4,0),(10634,'09631',7383,7384,4,0),(10635,'09640',7903,7904,4,0),(10636,'09640',9101,9102,4,0),(10637,'09640',7621,7622,4,0),(10638,'09640',7989,7990,4,0),(10639,'09640',8721,8722,4,0),(10640,'09640',8103,8104,4,0),(10641,'09640',7971,7972,4,0),(10642,'09640',8593,8594,4,0),(10643,'09640',8945,8946,4,0),(10644,'09640',7975,7976,4,0),(10645,'09641',7753,7754,4,0),(10646,'09642',8105,8106,4,0),(10647,'09642',8071,8072,4,0),(10648,'09645',8743,8744,4,0),(10649,'09646',9103,9104,4,0),(10650,'09647',8511,8512,4,0),(10651,'09649',8311,8312,4,0),(10652,'09649',9011,9012,4,0),(10653,'09649',8723,8724,4,0),(10654,'09650',8947,8948,4,0),(10655,'09650',7571,7572,4,0),(10656,'09651',7991,7992,4,0),(10657,'09652',9019,9020,4,0),(10658,'09653',7961,7962,4,0),(10659,'09654',7963,7964,4,0),(10660,'09660',7895,7896,4,0),(10661,'09660',8467,8468,4,0),(10662,'09670',8439,8440,4,0),(10663,'09678',7951,7952,4,0),(10664,'09679',8255,8256,4,0),(10665,'09680',8303,8304,4,0),(10666,'09690',9111,9112,4,0),(10667,'09691',8227,8228,4,0),(10668,'09691',7637,7638,4,0),(10669,'09692',7575,7576,4,0),(10670,'09693',8497,8498,4,0),(10671,'10000',9287,9288,4,0),(10672,'10001',9289,9290,4,0),(10673,'10002',9291,9292,4,0),(10674,'10003',9293,9294,4,0),(10675,'10004',9295,9296,4,0),(10676,'10005',9297,9298,4,0),(10677,'10100',9707,9708,4,0),(10678,'10109',9709,9710,4,0),(10679,'10110',9653,9654,4,0),(10680,'10110',9663,9664,4,0),(10681,'10120',9649,9650,4,0),(10682,'10129',9253,9254,4,0),(10683,'10130',10183,10184,4,0),(10684,'10131',10081,10082,4,0),(10685,'10132',9219,9220,4,0),(10686,'10133',9479,9480,4,0),(10687,'10134',9337,9338,4,0),(10688,'10135',9179,9180,4,0),(10689,'10136',9341,9342,4,0),(10690,'10137',9207,9208,4,0),(10691,'10140',9523,9524,4,0),(10692,'10160',9183,9184,4,0),(10693,'10162',9385,9386,4,0),(10694,'10163',9187,9188,4,0),(10695,'10164',9299,9300,4,0),(10696,'10169',10173,10174,4,0),(10697,'10170',10167,10168,4,0),(10698,'10170',9729,9730,4,0),(10699,'10180',10067,10068,4,0),(10700,'10181',9961,9962,4,0),(10701,'10182',10141,10142,4,0),(10702,'10182',10037,10038,4,0),(10703,'10183',10041,10042,4,0),(10704,'10184',10033,10034,4,0),(10705,'10185',9245,9246,4,0),(10706,'10185',9261,9262,4,0),(10707,'10186',10007,10008,4,0),(10708,'10187',9165,9166,4,0),(10709,'10189',9899,9900,4,0),(10710,'10189',9907,9908,4,0),(10711,'10189',9891,9892,4,0),(10712,'10189',10175,10176,4,0),(10713,'10190',9675,9676,4,0),(10714,'10190',9367,9368,4,0),(10715,'10191',9931,9932,4,0),(10716,'10192',9579,9580,4,0),(10717,'10193',9965,9966,4,0),(10718,'10194',9725,9726,4,0),(10719,'10195',9301,9302,4,0),(10720,'10197',9167,9168,4,0),(10721,'10198',9921,9922,4,0),(10722,'10198',9925,9926,4,0),(10723,'10199',9303,9304,4,0),(10724,'10200',10045,10046,4,0),(10725,'10210',9667,9668,4,0),(10726,'10220',10047,10048,4,0),(10727,'10230',9551,9552,4,0),(10728,'10240',9445,9446,4,0),(10729,'10250',9493,9494,4,0),(10730,'10251',9191,9192,4,0),(10731,'10252',10015,10016,4,0),(10732,'10260',9911,9912,4,0),(10733,'10261',9873,9874,4,0),(10734,'10261',9853,9854,4,0),(10735,'10262',9141,9142,4,0),(10736,'10263',10131,10132,4,0),(10737,'10269',9875,9876,4,0),(10738,'10270',9627,9628,4,0),(10739,'10271',9835,9836,4,0),(10740,'10280',9597,9598,4,0),(10741,'10290',10049,10050,4,0),(10742,'10291',9623,9624,4,0),(10743,'10291',10051,10052,4,0),(10744,'10292',10053,10054,4,0),(10745,'10300',9749,9750,4,0),(10746,'10310',9973,9974,4,0),(10747,'10317',9439,9440,4,0),(10748,'10318',9975,9976,4,0),(10749,'10319',9977,9978,4,0),(10750,'10320',9257,9258,4,0),(10751,'10328',9483,9484,4,0),(10752,'10329',9703,9704,4,0),(10753,'10329',9333,9334,4,0),(10754,'10329',10061,10062,4,0),(10755,'10330',10157,10158,4,0),(10756,'10331',9363,9364,4,0),(10757,'10331',10159,10160,4,0),(10758,'10332',10077,10078,4,0),(10759,'10332',10063,10064,4,0),(10760,'10333',9513,9514,4,0),(10761,'10334',9799,9800,4,0),(10762,'10335',9795,9796,4,0),(10763,'10340',9419,9420,4,0),(10764,'10341',9753,9754,4,0),(10765,'10350',9215,9216,4,0),(10766,'10359',9883,9884,4,0),(10767,'10359',9575,9576,4,0),(10768,'10360',9399,9400,4,0),(10769,'10370',9459,9460,4,0),(10770,'10370',9557,9558,4,0),(10771,'10371',9879,9880,4,0),(10772,'10372',9269,9270,4,0),(10773,'10373',9271,9272,4,0),(10774,'10374',9761,9762,4,0),(10775,'10380',9601,9602,4,0),(10776,'10390',9943,9944,4,0),(10777,'10391',9887,9888,4,0),(10778,'10392',9249,9250,4,0),(10779,'10392',9467,9468,4,0),(10780,'10393',10073,10074,4,0),(10781,'10394',9713,9714,4,0),(10782,'10394',9241,9242,4,0),(10783,'10400',9607,9608,4,0),(10784,'10410',9229,9230,4,0),(10785,'10411',9787,9788,4,0),(10786,'10412',9497,9498,4,0),(10787,'10413',10029,10030,4,0),(10788,'10414',9441,9442,4,0),(10789,'10415',10089,10090,4,0),(10790,'10420',9981,9982,4,0),(10791,'10430',9455,9456,4,0),(10792,'10440',9195,9196,4,0),(10793,'10450',9611,9612,4,0),(10794,'10459',9547,9548,4,0),(10795,'10460',9655,9656,4,0),(10796,'10470',10147,10148,4,0),(10797,'10480',9659,9660,4,0),(10798,'10484',10113,10114,4,0),(10799,'10490',10105,10106,4,0),(10800,'10490',10149,10150,4,0),(10801,'10491',9969,9970,4,0),(10802,'10492',10119,10120,4,0),(10803,'10493',9869,9870,4,0),(10804,'10500',10091,10092,4,0),(10805,'10509',10093,10094,4,0),(10806,'10510',9927,9928,4,0),(10807,'10511',9353,9354,4,0),(10808,'10512',9563,9564,4,0),(10809,'10513',9427,9428,4,0),(10810,'10514',10095,10096,4,0),(10811,'10515',10097,10098,4,0),(10812,'10516',10099,10100,4,0),(10813,'10519',10101,10102,4,0),(10814,'10520',9989,9990,4,0),(10815,'10520',9411,9412,4,0),(10816,'10528',9957,9958,4,0),(10817,'10529',9671,9672,4,0),(10818,'10530',9951,9952,4,0),(10819,'10540',9717,9718,4,0),(10820,'10550',9211,9212,4,0),(10821,'10560',9567,9568,4,0),(10822,'10570',9895,9896,4,0),(10823,'10580',9699,9700,4,0),(10824,'10590',9681,9682,4,0),(10825,'10591',9991,9992,4,0),(10826,'10591',9683,9684,4,0),(10827,'10591',9553,9554,4,0),(10828,'10592',9395,9396,4,0),(10829,'10593',9369,9370,4,0),(10830,'10600',9827,9828,4,0),(10831,'10610',9279,9280,4,0),(10832,'10611',9999,10000,4,0),(10833,'10612',9619,9620,4,0),(10834,'10613',9745,9746,4,0),(10835,'10614',10057,10058,4,0),(10836,'10615',9823,9824,4,0),(10837,'10616',9539,9540,4,0),(10838,'10616',9403,9404,4,0),(10839,'10616',9283,9284,4,0),(10840,'10617',36273,36274,4,0),(10841,'10617',9471,9472,4,0),(10842,'10620',9321,9322,4,0),(10843,'10623',9323,9324,4,0),(10844,'10623',9765,9766,4,0),(10845,'10624',9325,9326,4,0),(10846,'10624',9643,9644,4,0),(10847,'10625',9645,9646,4,0),(10848,'10626',9767,9768,4,0),(10849,'10627',9769,9770,4,0),(10850,'10628',9771,9772,4,0),(10851,'10628',9381,9382,4,0),(10852,'10629',9327,9328,4,0),(10853,'10629',9773,9774,4,0),(10854,'10630',9329,9330,4,0),(10855,'10630',9373,9374,4,0),(10856,'10630',9815,9816,4,0),(10857,'10638',9817,9818,4,0),(10858,'10639',9819,9820,4,0),(10859,'10640',9375,9376,4,0),(10860,'10649',9639,9640,4,0),(10861,'10649',9377,9378,4,0),(10862,'10650',9157,9158,4,0),(10863,'10660',9783,9784,4,0),(10864,'10660',9915,9916,4,0),(10865,'10660',9777,9778,4,0),(10866,'10661',9917,9918,4,0),(10867,'10662',9691,9692,4,0),(10868,'10663',9431,9432,4,0),(10869,'10663',9603,9604,4,0),(10870,'10664',9721,9722,4,0),(10871,'10665',9541,9542,4,0),(10872,'10666',9153,9154,4,0),(10873,'10666',9939,9940,4,0),(10874,'10667',9779,9780,4,0),(10875,'10670',9357,9358,4,0),(10876,'10671',9829,9830,4,0),(10877,'10671',9203,9204,4,0),(10878,'10671',9359,9360,4,0),(10879,'10672',10085,10086,4,0),(10880,'10680',9685,9686,4,0),(10881,'10690',9487,9488,4,0),(10882,'10690',9831,9832,4,0),(10883,'10690',9161,9162,4,0),(10884,'10691',9489,9490,4,0),(10885,'10692',9531,9532,4,0),(10886,'10693',9859,9860,4,0),(10887,'10694',9993,9994,4,0),(10888,'10694',10019,10020,4,0),(10889,'10695',9953,9954,4,0),(10890,'10696',9505,9506,4,0),(10891,'10696',9237,9238,4,0),(10892,'10697',9995,9996,4,0),(10893,'10697',9983,9984,4,0),(10894,'10697',9687,9688,4,0),(10895,'10700',9571,9572,4,0),(10896,'10701',35205,35206,4,0),(10897,'10710',10169,10170,4,0),(10898,'10711',9635,9636,4,0),(10899,'10712',9543,9544,4,0),(10900,'10720',10153,10154,4,0),(10901,'10728',9615,9616,4,0),(10902,'10729',9275,9276,4,0),(10903,'10730',9407,9408,4,0),(10904,'10739',9947,9948,4,0),(10905,'10740',9199,9200,4,0),(10906,'10748',9137,9138,4,0),(10907,'10749',9501,9502,4,0),(10908,'10750',9233,9234,4,0),(10909,'10759',9631,9632,4,0),(10910,'10800',9449,9450,4,0),(10911,'10810',10069,10070,4,0),(10912,'10810',9733,9734,4,0),(10913,'10811',9741,9742,4,0),(10914,'10811',9533,9534,4,0),(10915,'10811',9451,9452,4,0),(10916,'10812',10143,10144,4,0),(10917,'10813',9847,9848,4,0),(10918,'10814',10123,10124,4,0),(10919,'10815',9527,9528,4,0),(10920,'10816',9389,9390,4,0),(10921,'10816',9535,9536,4,0),(10922,'10817',9317,9318,4,0),(10923,'10818',9415,9416,4,0),(10924,'10818',9391,9392,4,0),(10925,'10820',9345,9346,4,0),(10926,'10824',9583,9584,4,0),(10927,'10828',9843,9844,4,0),(10928,'10829',9585,9586,4,0),(10929,'10829',9347,9348,4,0),(10930,'10829',9791,9792,4,0),(10931,'10829',9861,9862,4,0),(10932,'10830',10023,10024,4,0),(10933,'10839',10025,10026,4,0),(10934,'10840',9737,9738,4,0),(10935,'10848',10115,10116,4,0),(10936,'10849',9593,9594,4,0),(10937,'10849',9517,9518,4,0),(10938,'10850',9589,9590,4,0),(10939,'10857',9145,9146,4,0),(10940,'10858',10163,10164,4,0),(10941,'10859',9935,9936,4,0),(10942,'10860',9519,9520,4,0),(10943,'10864',10003,10004,4,0),(10944,'10865',9313,9314,4,0),(10945,'10866',9463,9464,4,0),(10946,'10867',9865,9866,4,0),(10947,'10868',9559,9560,4,0),(10948,'10869',10011,10012,4,0),(10949,'10870',9423,9424,4,0),(10950,'10879',9149,9150,4,0),(10951,'10880',10179,10180,4,0),(10952,'10881',9309,9310,4,0),(10953,'10882',9807,9808,4,0),(10954,'10883',9839,9840,4,0),(10955,'10890',10109,10110,4,0),(10956,'10891',9475,9476,4,0),(10957,'10892',9903,9904,4,0),(10958,'10893',10135,10136,4,0),(10959,'10894',10137,10138,4,0),(10960,'10895',9435,9436,4,0),(10961,'10896',9803,9804,4,0),(10962,'10897',9349,9350,4,0),(10963,'10900',9223,9224,4,0),(10964,'10910',9677,9678,4,0),(10965,'10920',9305,9306,4,0),(10966,'10930',9757,9758,4,0),(10967,'10940',9509,9510,4,0),(10968,'10950',9265,9266,4,0),(10969,'10960',10127,10128,4,0),(10970,'10970',9695,9696,4,0),(10971,'10980',9171,9172,4,0),(10972,'10989',9173,9174,4,0),(10973,'10990',9175,9176,4,0),(10974,'10991',9811,9812,4,0),(10975,'11001',10259,10260,4,0),(10976,'11002',10261,10262,4,0),(10977,'11003',10263,10264,4,0),(10978,'11004',10265,10266,4,0),(10979,'11005',10267,10268,4,0),(10980,'11006',10269,10270,4,0),(10981,'11007',10271,10272,4,0),(10982,'11008',10273,10274,4,0),(10983,'11009',10275,10276,4,0),(10984,'11010',10277,10278,4,0),(10985,'11011',10279,10280,4,0),(10986,'11012',10281,10282,4,0),(10987,'11100',10423,10424,4,0),(10988,'11130',10291,10292,4,0),(10989,'11139',10293,10294,4,0),(10990,'11140',10301,10302,4,0),(10991,'11149',10303,10304,4,0),(10992,'11150',10489,10490,4,0),(10993,'11150',10235,10236,4,0),(10994,'11158',10491,10492,4,0),(10995,'11159',10237,10238,4,0),(10996,'11159',10493,10494,4,0),(10997,'11160',10239,10240,4,0),(10998,'11170',10387,10388,4,0),(10999,'11178',10397,10398,4,0),(11000,'11179',10495,10496,4,0),(11001,'11179',10389,10390,4,0),(11002,'11180',10189,10190,4,0),(11003,'11190',10245,10246,4,0),(11004,'11201',10201,10202,4,0),(11005,'11202',10203,10204,4,0),(11006,'11203',10205,10206,4,0),(11007,'11204',10207,10208,4,0),(11008,'11205',10209,10210,4,0),(11009,'11206',10211,10212,4,0),(11010,'11207',10213,10214,4,0),(11011,'11300',10377,10378,4,0),(11012,'11300',10413,10414,4,0),(11013,'11310',10433,10434,4,0),(11014,'11311',10435,10436,4,0),(11015,'11311',10451,10452,4,0),(11016,'11312',10437,10438,4,0),(11017,'11313',10439,10440,4,0),(11018,'11314',10441,10442,4,0),(11019,'11320',10367,10368,4,0),(11020,'11330',10369,10370,4,0),(11021,'11339',10371,10372,4,0),(11022,'11340',10373,10374,4,0),(11023,'11350',10287,10288,4,0),(11024,'11360',10443,10444,4,0),(11025,'11368',10445,10446,4,0),(11026,'11369',10447,10448,4,0),(11027,'11369',10453,10454,4,0),(11028,'11370',10381,10382,4,0),(11029,'11379',10383,10384,4,0),(11030,'11380',10465,10466,4,0),(11031,'11390',10467,10468,4,0),(11032,'11390',10215,10216,4,0),(11033,'11391',10469,10470,4,0),(11034,'11391',10217,10218,4,0),(11035,'11392',10471,10472,4,0),(11036,'11393',10473,10474,4,0),(11037,'11393',10241,10242,4,0),(11038,'11400',10329,10330,4,0),(11039,'11401',10331,10332,4,0),(11040,'11402',10333,10334,4,0),(11041,'11403',10335,10336,4,0),(11042,'11404',10337,10338,4,0),(11043,'11405',10339,10340,4,0),(11044,'11406',10341,10342,4,0),(11045,'11407',10343,10344,4,0),(11046,'11408',10345,10346,4,0),(11047,'11500',10315,10316,4,0),(11048,'11510',10405,10406,4,0),(11049,'11518',10407,10408,4,0),(11050,'11519',10409,10410,4,0),(11051,'11520',10419,10420,4,0),(11052,'11540',10455,10456,4,0),(11053,'11549',10457,10458,4,0),(11054,'11550',10297,10298,4,0),(11055,'11560',10481,10482,4,0),(11056,'11570',10347,10348,4,0),(11057,'11579',10349,10350,4,0),(11058,'11580',10427,10428,4,0),(11059,'11589',10429,10430,4,0),(11060,'11590',10351,10352,4,0),(11061,'11591',10353,10354,4,0),(11062,'11592',10355,10356,4,0),(11063,'11593',10357,10358,4,0),(11064,'11594',10359,10360,4,0),(11065,'11595',10361,10362,4,0),(11066,'11596',10363,10364,4,0),(11067,'11600',10485,10486,4,0),(11068,'11610',10323,10324,4,0),(11069,'11611',10499,10500,4,0),(11070,'11612',10249,10250,4,0),(11071,'11620',10227,10228,4,0),(11072,'11630',10229,10230,4,0),(11073,'11638',10231,10232,4,0),(11074,'11639',10197,10198,4,0),(11075,'11640',10253,10254,4,0),(11076,'11648',10319,10320,4,0),(11077,'11649',10255,10256,4,0),(11078,'11650',10503,10504,4,0),(11079,'11659',10415,10416,4,0),(11080,'11660',10401,10402,4,0),(11081,'11670',10307,10308,4,0),(11082,'11679',10325,10326,4,0),(11083,'11680',10221,10222,4,0),(11084,'11687',10311,10312,4,0),(11085,'11688',10507,10508,4,0),(11086,'11689',10223,10224,4,0),(11087,'11690',10393,10394,4,0),(11088,'11691',10477,10478,4,0),(11089,'11692',10461,10462,4,0),(11090,'11693',10193,10194,4,0),(11091,'12001',11443,11444,4,0),(11092,'12002',11445,11446,4,0),(11093,'12003',11447,11448,4,0),(11094,'12004',11449,11450,4,0),(11095,'12005',11451,11452,4,0),(11096,'12006',11453,11454,4,0),(11097,'12100',11455,11456,4,0),(11098,'12110',11569,11570,4,0),(11099,'12118',11813,11814,4,0),(11100,'12119',11507,11508,4,0),(11101,'12119',11571,11572,4,0),(11102,'12120',11629,11630,4,0),(11103,'12121',11573,11574,4,0),(11104,'12122',11531,11532,4,0),(11105,'12122',11815,11816,4,0),(11106,'12123',11461,11462,4,0),(11107,'12123',11633,11634,4,0),(11108,'12124',11859,11860,4,0),(11109,'12125',11899,11900,4,0),(11110,'12126',11501,11502,4,0),(11111,'12127',11503,11504,4,0),(11112,'12130',11727,11728,4,0),(11113,'12131',11817,11818,4,0),(11114,'12132',11357,11358,4,0),(11115,'12133',11359,11360,4,0),(11116,'12134',11383,11384,4,0),(11117,'12134',11483,11484,4,0),(11118,'12135',11551,11552,4,0),(11119,'12135',11879,11880,4,0),(11120,'12140',11303,11304,4,0),(11121,'12150',11855,11856,4,0),(11122,'12159',11435,11436,4,0),(11123,'12160',11387,11388,4,0),(11124,'12161',11605,11606,4,0),(11125,'12162',11851,11852,4,0),(11126,'12163',11511,11512,4,0),(11127,'12164',11751,11752,4,0),(11128,'12165',11345,11346,4,0),(11129,'12166',11753,11754,4,0),(11130,'12170',11735,11736,4,0),(11131,'12179',11781,11782,4,0),(11132,'12180',11417,11418,4,0),(11133,'12181',11401,11402,4,0),(11134,'12182',11755,11756,4,0),(11135,'12183',11847,11848,4,0),(11136,'12184',11609,11610,4,0),(11137,'12184',11601,11602,4,0),(11138,'12185',11625,11626,4,0),(11139,'12186',11597,11598,4,0),(11140,'12190',11413,11414,4,0),(11141,'12191',11593,11594,4,0),(11142,'12192',11843,11844,4,0),(11143,'12193',11821,11822,4,0),(11144,'12193',11757,11758,4,0),(11145,'12194',11823,11824,4,0),(11146,'12200',11671,11672,4,0),(11147,'12210',11705,11706,4,0),(11148,'12220',11673,11674,4,0),(11149,'12221',11773,11774,4,0),(11150,'12222',11313,11314,4,0),(11151,'12222',11299,11300,4,0),(11152,'12223',11769,11770,4,0),(11153,'12224',11863,11864,4,0),(11154,'12224',11363,11364,4,0),(11155,'12225',11543,11544,4,0),(11156,'12225',11797,11798,4,0),(11157,'12230',11831,11832,4,0),(11158,'12230',11789,11790,4,0),(11159,'12230',11523,11524,4,0),(11160,'12230',11527,11528,4,0),(11161,'12230',11349,11350,4,0),(11162,'12231',11495,11496,4,0),(11163,'12232',11341,11342,4,0),(11164,'12232',11497,11498,4,0),(11165,'12232',11805,11806,4,0),(11166,'12300',11653,11654,4,0),(11167,'12310',11535,11536,4,0),(11168,'12311',11895,11896,4,0),(11169,'12311',11871,11872,4,0),(11170,'12311',11681,11682,4,0),(11171,'12312',11667,11668,4,0),(11172,'12312',11585,11586,4,0),(11173,'12312',11785,11786,4,0),(11174,'12315',11835,11836,4,0),(11175,'12317',11557,11558,4,0),(11176,'12318',11697,11698,4,0),(11177,'12318',11491,11492,4,0),(11178,'12319',11431,11432,4,0),(11179,'12320',11731,11732,4,0),(11180,'12330',11721,11722,4,0),(11181,'12330',11809,11810,4,0),(11182,'12340',11577,11578,4,0),(11183,'12350',11427,11428,4,0),(11184,'12360',11889,11890,4,0),(11185,'12370',11891,11892,4,0),(11186,'12400',11743,11744,4,0),(11187,'12410',11337,11338,4,0),(11188,'12412',11745,11746,4,0),(11189,'12412',11553,11554,4,0),(11190,'12413',11329,11330,4,0),(11191,'12413',11439,11440,4,0),(11192,'12414',11747,11748,4,0),(11193,'12414',11321,11322,4,0),(11194,'12414',11827,11828,4,0),(11195,'12415',11547,11548,4,0),(11196,'12415',11637,11638,4,0),(11197,'12420',11371,11372,4,0),(11198,'12428',11701,11702,4,0),(11199,'12428',11867,11868,4,0),(11200,'12428',11539,11540,4,0),(11201,'12429',11693,11694,4,0),(11202,'12429',11515,11516,4,0),(11203,'12430',11375,11376,4,0),(11204,'12431',11793,11794,4,0),(11205,'12440',11469,11470,4,0),(11206,'12447',11645,11646,4,0),(11207,'12448',11649,11650,4,0),(11208,'12449',11379,11380,4,0),(11209,'12449',11561,11562,4,0),(11210,'12449',11685,11686,4,0),(11211,'12450',11565,11566,4,0),(11212,'12460',11883,11884,4,0),(11213,'12469',11777,11778,4,0),(11214,'12469',11717,11718,4,0),(11215,'12469',11885,11886,4,0),(11216,'12470',11657,11658,4,0),(11217,'12480',11761,11762,4,0),(11218,'12489',11765,11766,4,0),(11219,'12490',11367,11368,4,0),(11220,'12499',11487,11488,4,0),(11221,'12500',11875,11876,4,0),(11222,'12510',11723,11724,4,0),(11223,'12511',11709,11710,4,0),(11224,'12512',11711,11712,4,0),(11225,'12513',11465,11466,4,0),(11226,'12520',11661,11662,4,0),(11227,'12526',11617,11618,4,0),(11228,'12527',11353,11354,4,0),(11229,'12528',11519,11520,4,0),(11230,'12529',11663,11664,4,0),(11231,'12530',11391,11392,4,0),(11232,'12530',11409,11410,4,0),(11233,'12539',11621,11622,4,0),(11234,'12540',11839,11840,4,0),(11235,'12549',11405,11406,4,0),(11236,'12550',11325,11326,4,0),(11237,'12560',11457,11458,4,0),(11238,'12560',11397,11398,4,0),(11239,'12570',11307,11308,4,0),(11240,'12578',11473,11474,4,0),(11241,'12579',11309,11310,4,0),(11242,'12580',11393,11394,4,0),(11243,'12589',11423,11424,4,0),(11244,'12590',11333,11334,4,0),(11245,'12591',11581,11582,4,0),(11246,'12592',11477,11478,4,0),(11247,'12593',11641,11642,4,0),(11248,'12594',11677,11678,4,0),(11249,'12595',11419,11420,4,0),(11250,'12596',11801,11802,4,0),(11251,'12597',11739,11740,4,0),(11252,'12598',11689,11690,4,0),(11253,'12599',11713,11714,4,0),(11254,'12599',11589,11590,4,0),(11255,'12600',11613,11614,4,0),(11256,'12609',11317,11318,4,0),(11257,'12952',11479,11480,4,0),(11258,'13001',12093,12094,4,0),(11259,'13002',12095,12096,4,0),(11260,'13003',12097,12098,4,0),(11261,'13004',12099,12100,4,0),(11262,'13005',12101,12102,4,0),(11263,'13097',12103,12104,4,0),(11264,'13100',12251,12252,4,0),(11265,'13107',11939,11940,4,0),(11266,'13108',12193,12194,4,0),(11267,'13109',12275,12276,4,0),(11268,'13110',12169,12170,4,0),(11269,'13114',12125,12126,4,0),(11270,'13115',11933,11934,4,0),(11271,'13116',11935,11936,4,0),(11272,'13117',12009,12010,4,0),(11273,'13118',12261,12262,4,0),(11274,'13118',12011,12012,4,0),(11275,'13120',12263,12264,4,0),(11276,'13129',12265,12266,4,0),(11277,'13130',12137,12138,4,0),(11278,'13140',12129,12130,4,0),(11279,'13150',12077,12078,4,0),(11280,'13160',12339,12340,4,0),(11281,'13170',12221,12222,4,0),(11282,'13179',12271,12272,4,0),(11283,'13180',11905,11906,4,0),(11284,'13189',11977,11978,4,0),(11285,'13190',12113,12114,4,0),(11286,'13190',12223,12224,4,0),(11287,'13191',12073,12074,4,0),(11288,'13191',12189,12190,4,0),(11289,'13192',11979,11980,4,0),(11290,'13192',12049,12050,4,0),(11291,'13193',12133,12134,4,0),(11292,'13193',12031,12032,4,0),(11293,'13193',12235,12236,4,0),(11294,'13194',12197,12198,4,0),(11295,'13194',12239,12240,4,0),(11296,'13194',12267,12268,4,0),(11297,'13194',12293,12294,4,0),(11298,'13195',12105,12106,4,0),(11299,'13195',12257,12258,4,0),(11300,'13196',12247,12248,4,0),(11301,'13196',12253,12254,4,0),(11302,'13196',12107,12108,4,0),(11303,'13197',12109,12110,4,0),(11304,'13200',12207,12208,4,0),(11305,'13210',12399,12400,4,0),(11306,'13220',12181,12182,4,0),(11307,'13230',12211,12212,4,0),(11308,'13240',12173,12174,4,0),(11309,'13247',12305,12306,4,0),(11310,'13248',11951,11952,4,0),(11311,'13249',12297,12298,4,0),(11312,'13250',12121,12122,4,0),(11313,'13260',12039,12040,4,0),(11314,'13260',11967,11968,4,0),(11315,'13270',11969,11970,4,0),(11316,'13279',12361,12362,4,0),(11317,'13300',12355,12356,4,0),(11318,'13300',11923,11924,4,0),(11319,'13310',12357,12358,4,0),(11320,'13320',12383,12384,4,0),(11321,'13326',12227,12228,4,0),(11322,'13327',12313,12314,4,0),(11323,'13328',11973,11974,4,0),(11324,'13329',12081,12082,4,0),(11325,'13330',12379,12380,4,0),(11326,'13331',12365,12366,4,0),(11327,'13332',12367,12368,4,0),(11328,'13333',12141,12142,4,0),(11329,'13340',11919,11920,4,0),(11330,'13341',12329,12330,4,0),(11331,'13342',12279,12280,4,0),(11332,'13343',12371,12372,4,0),(11333,'13344',12343,12344,4,0),(11334,'13345',12117,12118,4,0),(11335,'13350',12231,12232,4,0),(11336,'13360',12151,12152,4,0),(11337,'13370',12057,12058,4,0),(11338,'13379',12387,12388,4,0),(11339,'13380',11947,11948,4,0),(11340,'13390',11953,11954,4,0),(11341,'13391',11943,11944,4,0),(11342,'13400',11957,11958,4,0),(11343,'13410',11911,11912,4,0),(11344,'13411',12351,12352,4,0),(11345,'13412',12089,12090,4,0),(11346,'13413',11915,11916,4,0),(11347,'13414',11961,11962,4,0),(11348,'13414',12301,12302,4,0),(11349,'13415',11981,11982,4,0),(11350,'13420',12199,12200,4,0),(11351,'13427',12185,12186,4,0),(11352,'13428',12201,12202,4,0),(11353,'13428',12145,12146,4,0),(11354,'13429',12203,12204,4,0),(11355,'13430',12069,12070,4,0),(11356,'13431',12391,12392,4,0),(11357,'13432',12035,12036,4,0),(11358,'13440',12027,12028,4,0),(11359,'13449',12043,12044,4,0),(11360,'13450',12045,12046,4,0),(11361,'13459',11983,11984,4,0),(11362,'13460',11985,11986,4,0),(11363,'13470',11987,11988,4,0),(11364,'13473',11989,11990,4,0),(11365,'13473',11907,11908,4,0),(11366,'13480',11963,11964,4,0),(11367,'13490',12155,12156,4,0),(11368,'13499',12157,12158,4,0),(11369,'13500',12287,12288,4,0),(11370,'13580',11991,11992,4,0),(11371,'13590',12165,12166,4,0),(11372,'13591',12053,12054,4,0),(11373,'13592',12215,12216,4,0),(11374,'13593',12325,12326,4,0),(11375,'13594',12217,12218,4,0),(11376,'13595',12375,12376,4,0),(11377,'13596',11993,11994,4,0),(11378,'13597',12289,12290,4,0),(11379,'13598',11995,11996,4,0),(11380,'13600',11925,11926,4,0),(11381,'13610',12065,12066,4,0),(11382,'13619',12015,12016,4,0),(11383,'13620',12243,12244,4,0),(11384,'13629',12333,12334,4,0),(11385,'13630',12321,12322,4,0),(11386,'13640',12161,12162,4,0),(11387,'13640',11997,11998,4,0),(11388,'13650',12283,12284,4,0),(11389,'13660',12177,12178,4,0),(11390,'13670',12395,12396,4,0),(11391,'13679',12019,12020,4,0),(11392,'13680',12147,12148,4,0),(11393,'13690',11927,11928,4,0),(11394,'13700',12335,12336,4,0),(11395,'13710',12023,12024,4,0),(11396,'13720',11929,11930,4,0),(11397,'13730',12317,12318,4,0),(11398,'13738',12403,12404,4,0),(11399,'13739',12059,12060,4,0),(11400,'13739',12405,12406,4,0),(11401,'13740',12347,12348,4,0),(11402,'13750',12085,12086,4,0),(11403,'13760',12003,12004,4,0),(11404,'13768',12005,12006,4,0),(11405,'13768',12407,12408,4,0),(11406,'13770',12409,12410,4,0),(11407,'13779',12309,12310,4,0),(11408,'13779',12061,12062,4,0),(11409,'14001',12533,12534,4,0),(11410,'14002',12535,12536,4,0),(11411,'14003',12537,12538,4,0),(11412,'14004',12539,12540,4,0),(11413,'14005',12541,12542,4,0),(11414,'14006',12543,12544,4,0),(11415,'14007',12545,12546,4,0),(11416,'14008',12547,12548,4,0),(11417,'14009',12549,12550,4,0),(11418,'14010',12551,12552,4,0),(11419,'14011',12553,12554,4,0),(11420,'14012',12555,12556,4,0),(11421,'14013',12557,12558,4,0),(11422,'14014',12559,12560,4,0),(11423,'14015',12561,12562,4,0),(11424,'14016',12563,12564,4,0),(11425,'14029',12565,12566,4,0),(11426,'14045',12509,12510,4,0),(11427,'14071',12891,12892,4,0),(11428,'14100',12705,12706,4,0),(11429,'14110',12655,12656,4,0),(11430,'14111',12707,12708,4,0),(11431,'14112',12657,12658,4,0),(11432,'14113',12659,12660,4,0),(11433,'14115',12601,12602,4,0),(11434,'14115',12661,12662,4,0),(11435,'14120',12663,12664,4,0),(11436,'14129',12683,12684,4,0),(11437,'14129',12665,12666,4,0),(11438,'14130',12675,12676,4,0),(11439,'14140',12723,12724,4,0),(11440,'14150',12855,12856,4,0),(11441,'14190',12567,12568,4,0),(11442,'14191',12709,12710,4,0),(11443,'14192',12569,12570,4,0),(11444,'14193',12711,12712,4,0),(11445,'14193',12571,12572,4,0),(11446,'14199',12731,12732,4,0),(11447,'14200',12815,12816,4,0),(11448,'14206',12881,12882,4,0),(11449,'14207',12715,12716,4,0),(11450,'14208',12727,12728,4,0),(11451,'14209',12639,12640,4,0),(11452,'14209',12685,12686,4,0),(11453,'14209',12461,12462,4,0),(11454,'14210',12667,12668,4,0),(11455,'14210',12623,12624,4,0),(11456,'14210',12897,12898,4,0),(11457,'14220',12625,12626,4,0),(11458,'14230',12909,12910,4,0),(11459,'14240',12463,12464,4,0),(11460,'14248',12465,12466,4,0),(11461,'14248',12641,12642,4,0),(11462,'14249',12467,12468,4,0),(11463,'14249',12643,12644,4,0),(11464,'14250',12905,12906,4,0),(11465,'14260',12635,12636,4,0),(11466,'14270',12679,12680,4,0),(11467,'14280',12573,12574,4,0),(11468,'14280',12457,12458,4,0),(11469,'14290',12645,12646,4,0),(11470,'14297',12647,12648,4,0),(11471,'14298',12649,12650,4,0),(11472,'14299',12651,12652,4,0),(11473,'14300',12917,12918,4,0),(11474,'14310',12785,12786,4,0),(11475,'14320',12919,12920,4,0),(11476,'14320',12787,12788,4,0),(11477,'14320',12627,12628,4,0),(11478,'14340',12575,12576,4,0),(11479,'14350',12577,12578,4,0),(11480,'14350',12789,12790,4,0),(11481,'14400',12825,12826,4,0),(11482,'14410',12873,12874,4,0),(11483,'14412',12811,12812,4,0),(11484,'14413',12607,12608,4,0),(11485,'14420',12893,12894,4,0),(11486,'14430',12415,12416,4,0),(11487,'14439',12417,12418,4,0),(11488,'14440',12901,12902,4,0),(11489,'14440',12511,12512,4,0),(11490,'14445',12513,12514,4,0),(11491,'14445',12469,12470,4,0),(11492,'14446',12515,12516,4,0),(11493,'14447',12517,12518,4,0),(11494,'14448',12529,12530,4,0),(11495,'14449',11999,12000,4,0),(11496,'14450',12443,12444,4,0),(11497,'14460',12597,12598,4,0),(11498,'14470',12921,12922,4,0),(11499,'14470',12611,12612,4,0),(11500,'14480',12427,12428,4,0),(11501,'14490',12913,12914,4,0),(11502,'14491',12859,12860,4,0),(11503,'14500',12843,12844,4,0),(11504,'14510',12775,12776,4,0),(11505,'14511',12733,12734,4,0),(11506,'14512',12845,12846,4,0),(11507,'14520',12757,12758,4,0),(11508,'14520',12631,12632,4,0),(11509,'14530',12759,12760,4,0),(11510,'14540',12719,12720,4,0),(11511,'14546',12865,12866,4,0),(11512,'14547',12867,12868,4,0),(11513,'14548',12753,12754,4,0),(11514,'14549',12869,12870,4,0),(11515,'14550',12445,12446,4,0),(11516,'14550',12763,12764,4,0),(11517,'14600',12767,12768,4,0),(11518,'14610',12579,12580,4,0),(11519,'14610',12419,12420,4,0),(11520,'14620',12603,12604,4,0),(11521,'14630',12807,12808,4,0),(11522,'14640',12885,12886,4,0),(11523,'14650',12479,12480,4,0),(11524,'14656',12481,12482,4,0),(11525,'14659',12483,12484,4,0),(11526,'14660',12497,12498,4,0),(11527,'14670',12877,12878,4,0),(11528,'14700',12797,12798,4,0),(11529,'14709',12799,12800,4,0),(11530,'14709',12687,12688,4,0),(11531,'14710',12581,12582,4,0),(11532,'14711',12583,12584,4,0),(11533,'14719',12585,12586,4,0),(11534,'14720',12437,12438,4,0),(11535,'14729',12439,12440,4,0),(11536,'14730',12819,12820,4,0),(11537,'14730',12801,12802,4,0),(11538,'14739',12821,12822,4,0),(11539,'14740',12689,12690,4,0),(11540,'14749',12803,12804,4,0),(11541,'14800',12745,12746,4,0),(11542,'14800',12829,12830,4,0),(11543,'14810',12501,12502,4,0),(11544,'14811',12503,12504,4,0),(11545,'14811',12487,12488,4,0),(11546,'14811',12831,12832,4,0),(11547,'14812',12431,12432,4,0),(11548,'14813',12433,12434,4,0),(11549,'14814',12833,12834,4,0),(11550,'14815',12671,12672,4,0),(11551,'14815',12835,12836,4,0),(11552,'14816',12837,12838,4,0),(11553,'14816',12505,12506,4,0),(11554,'14817',12839,12840,4,0),(11555,'14820',12587,12588,4,0),(11556,'14830',12619,12620,4,0),(11557,'14840',12521,12522,4,0),(11558,'14850',12449,12450,4,0),(11559,'14850',12735,12736,4,0),(11560,'14852',12779,12780,4,0),(11561,'14857',12781,12782,4,0),(11562,'14857',12523,12524,4,0),(11563,'14858',12525,12526,4,0),(11564,'14859',12451,12452,4,0),(11565,'14860',12593,12594,4,0),(11566,'14870',12925,12926,4,0),(11567,'14880',12747,12748,4,0),(11568,'14889',12749,12750,4,0),(11569,'14900',12737,12738,4,0),(11570,'14910',12473,12474,4,0),(11571,'14911',12739,12740,4,0),(11572,'14912',12589,12590,4,0),(11573,'14913',12615,12616,4,0),(11574,'14913',12741,12742,4,0),(11575,'14914',12793,12794,4,0),(11576,'14915',12475,12476,4,0),(11577,'14920',12423,12424,4,0),(11578,'14930',12771,12772,4,0),(11579,'14930',12489,12490,4,0),(11580,'14940',12491,12492,4,0),(11581,'14940',12887,12888,4,0),(11582,'14941',12861,12862,4,0),(11583,'14949',12493,12494,4,0),(11584,'14950',12453,12454,4,0),(11585,'14950',12691,12692,4,0),(11586,'14950',12849,12850,4,0),(11587,'14960',12851,12852,4,0),(11588,'14970',12695,12696,4,0),(11589,'14978',12697,12698,4,0),(11590,'14979',12699,12700,4,0),(11591,'15001',20087,20088,4,0),(11592,'15002',20089,20090,4,0),(11593,'15003',20091,20092,4,0),(11594,'15004',20093,20094,4,0),(11595,'15005',20095,20096,4,0),(11596,'15006',20097,20098,4,0),(11597,'15007',20099,20100,4,0),(11598,'15008',20165,20166,4,0),(11599,'15008',20101,20102,4,0),(11600,'15009',20103,20104,4,0),(11601,'15010',20105,20106,4,0),(11602,'15011',20107,20108,4,0),(11603,'15100',20319,20320,4,0),(11604,'15102',20321,20322,4,0),(11605,'15105',20323,20324,4,0),(11606,'15105',20119,20120,4,0),(11607,'15106',20325,20326,4,0),(11608,'15107',20327,20328,4,0),(11609,'15108',20329,20330,4,0),(11610,'15109',20331,20332,4,0),(11611,'15110',20797,20798,4,0),(11612,'15110',20273,20274,4,0),(11613,'15111',20535,20536,4,0),(11614,'15112',20537,20538,4,0),(11615,'15113',20539,20540,4,0),(11616,'15114',20799,20800,4,0),(11617,'15115',20275,20276,4,0),(11618,'15116',20277,20278,4,0),(11619,'15117',20517,20518,4,0),(11620,'15118',20519,20520,4,0),(11621,'15119',20279,20280,4,0),(11622,'15121',20295,20296,4,0),(11623,'15121',21061,21062,4,0),(11624,'15122',20297,20298,4,0),(11625,'15123',20299,20300,4,0),(11626,'15124',20621,20622,4,0),(11627,'15125',20623,20624,4,0),(11628,'15126',20625,20626,4,0),(11629,'15126',21063,21064,4,0),(11630,'15127',21065,21066,4,0),(11631,'15128',21067,21068,4,0),(11632,'15129',21069,21070,4,0),(11633,'15130',20409,20410,4,0),(11634,'15137',20411,20412,4,0),(11635,'15138',20379,20380,4,0),(11636,'15139',20421,20422,4,0),(11637,'15140',20167,20168,4,0),(11638,'15141',20169,20170,4,0),(11639,'15142',20171,20172,4,0),(11640,'15144',20173,20174,4,0),(11641,'15145',20121,20122,4,0),(11642,'15146',20123,20124,4,0),(11643,'15147',20415,20416,4,0),(11644,'15148',20417,20418,4,0),(11645,'15149',20281,20282,4,0),(11646,'15150',21071,21072,4,0),(11647,'15150',21075,21076,4,0),(11648,'15151',20451,20452,4,0),(11649,'15152',20453,20454,4,0),(11650,'15153',20499,20500,4,0),(11651,'15154',20501,20502,4,0),(11652,'15155',20503,20504,4,0),(11653,'15160',20881,20882,4,0),(11654,'15165',20215,20216,4,0),(11655,'15166',20217,20218,4,0),(11656,'15167',20219,20220,4,0),(11657,'15168',20883,20884,4,0),(11658,'15169',20885,20886,4,0),(11659,'15170',20109,20110,4,0),(11660,'15171',20691,20692,4,0),(11661,'15172',20693,20694,4,0),(11662,'15173',20695,20696,4,0),(11663,'15174',20423,20424,4,0),(11664,'15175',20355,20356,4,0),(11665,'15176',20697,20698,4,0),(11666,'15177',20699,20700,4,0),(11667,'15178',20701,20702,4,0),(11668,'15179',20703,20704,4,0),(11669,'15180',20425,20426,4,0),(11670,'15181',20303,20304,4,0),(11671,'15182',20357,20358,4,0),(11672,'15183',20359,20360,4,0),(11673,'15184',20361,20362,4,0),(11674,'15185',20389,20390,4,0),(11675,'15186',20391,20392,4,0),(11676,'15187',20393,20394,4,0),(11677,'15188',20395,20396,4,0),(11678,'15189',20427,20428,4,0),(11679,'15190',20111,20112,4,0),(11680,'15191',20113,20114,4,0),(11681,'15192',20115,20116,4,0),(11682,'15198',20429,20430,4,0),(11683,'15199',20431,20432,4,0),(11684,'15200',20667,20668,4,0),(11685,'15201',27885,27886,4,0),(11686,'15210',20669,20670,4,0),(11687,'15211',20671,20672,4,0),(11688,'15212',20523,20524,4,0),(11689,'15213',20673,20674,4,0),(11690,'15214',20525,20526,4,0),(11691,'15215',20527,20528,4,0),(11692,'15216',20529,20530,4,0),(11693,'15218',20815,20816,4,0),(11694,'15218',20675,20676,4,0),(11695,'15218',20531,20532,4,0),(11696,'15220',20139,20140,4,0),(11697,'15228',20141,20142,4,0),(11698,'15229',20143,20144,4,0),(11699,'15230',20745,20746,4,0),(11700,'15236',20747,20748,4,0),(11701,'15237',20749,20750,4,0),(11702,'15239',20751,20752,4,0),(11703,'15240',20607,20608,4,0),(11704,'15250',20609,20610,4,0),(11705,'15256',20549,20550,4,0),(11706,'15258',20551,20552,4,0),(11707,'15259',20611,20612,4,0),(11708,'15270',20381,20382,4,0),(11709,'15280',20265,20266,4,0),(11710,'15281',20867,20868,4,0),(11711,'15282',20869,20870,4,0),(11712,'15284',20613,20614,4,0),(11713,'15286',20753,20754,4,0),(11714,'15287',20755,20756,4,0),(11715,'15288',20757,20758,4,0),(11716,'15290',20615,20616,4,0),(11717,'15291',20617,20618,4,0),(11718,'15292',20345,20346,4,0),(11719,'15293',20347,20348,4,0),(11720,'15295',20349,20350,4,0),(11721,'15296',20351,20352,4,0),(11722,'15297',20455,20456,4,0),(11723,'15298',20383,20384,4,0),(11724,'15299',20385,20386,4,0),(11725,'15300',20227,20228,4,0),(11726,'15310',20437,20438,4,0),(11727,'15313',20513,20514,4,0),(11728,'15314',20777,20778,4,0),(11729,'15315',20589,20590,4,0),(11730,'15316',20405,20406,4,0),(11731,'15317',20153,20154,4,0),(11732,'15318',20135,20136,4,0),(11733,'15319',20229,20230,4,0),(11734,'15319',20779,20780,4,0),(11735,'15319',20221,20222,4,0),(11736,'15320',20187,20188,4,0),(11737,'15324',20189,20190,4,0),(11738,'15325',20191,20192,4,0),(11739,'15326',20193,20194,4,0),(11740,'15327',20195,20196,4,0),(11741,'15328',20197,20198,4,0),(11742,'15329',20199,20200,4,0),(11743,'15330',20727,20728,4,0),(11744,'15332',20729,20730,4,0),(11745,'15337',20543,20544,4,0),(11746,'15338',20731,20732,4,0),(11747,'15339',20545,20546,4,0),(11748,'15339',20733,20734,4,0),(11749,'15340',20735,20736,4,0),(11750,'15347',20365,20366,4,0),(11751,'15349',20737,20738,4,0),(11752,'15350',20367,20368,4,0),(11753,'15357',20369,20370,4,0),(11754,'15358',20371,20372,4,0),(11755,'15359',20373,20374,4,0),(11756,'15360',20335,20336,4,0),(11757,'15365',20337,20338,4,0),(11758,'15366',20339,20340,4,0),(11759,'15367',20739,20740,4,0),(11760,'15368',20741,20742,4,0),(11761,'15369',20341,20342,4,0),(11762,'15379',20439,20440,4,0),(11763,'15380',20761,20762,4,0),(11764,'15386',20763,20764,4,0),(11765,'15387',20765,20766,4,0),(11766,'15388',20767,20768,4,0),(11767,'15389',20769,20770,4,0),(11768,'15390',20771,20772,4,0),(11769,'15391',20773,20774,4,0),(11770,'15401',20471,20472,4,0),(11771,'15402',20473,20474,4,0),(11772,'15403',20475,20476,4,0),(11773,'15404',20477,20478,4,0),(11774,'15405',20479,20480,4,0),(11775,'15406',20481,20482,4,0),(11776,'15407',20483,20484,4,0),(11777,'15489',15467,15468,4,0),(11778,'15500',20459,20460,4,0),(11779,'15509',20461,20462,4,0),(11780,'15510',20649,20650,4,0),(11781,'15520',20463,20464,4,0),(11782,'15528',20465,20466,4,0),(11783,'15530',20399,20400,4,0),(11784,'15540',20629,20630,4,0),(11785,'15541',20631,20632,4,0),(11786,'15542',21023,21024,4,0),(11787,'15543',21025,21026,4,0),(11788,'15550',21027,21028,4,0),(11789,'15551',21029,21030,4,0),(11790,'15552',21031,21032,4,0),(11791,'15553',21033,21034,4,0),(11792,'15554',21035,21036,4,0),(11793,'15555',20375,20376,4,0),(11794,'15560',20889,20890,4,0),(11795,'15561',20891,20892,4,0),(11796,'15562',20893,20894,4,0),(11797,'15563',20583,20584,4,0),(11798,'15564',20585,20586,4,0),(11799,'15565',20205,20206,4,0),(11800,'15566',20207,20208,4,0),(11801,'15567',20209,20210,4,0),(11802,'15568',20211,20212,4,0),(11803,'15569',20401,20402,4,0),(11804,'15570',20633,20634,4,0),(11805,'15572',20635,20636,4,0),(11806,'15573',20637,20638,4,0),(11807,'15576',20895,20896,4,0),(11808,'15577',20639,20640,4,0),(11809,'15577',20651,20652,4,0),(11810,'15578',20641,20642,4,0),(11811,'15579',20653,20654,4,0),(11812,'15580',20897,20898,4,0),(11813,'15582',20201,20202,4,0),(11814,'15582',20257,20258,4,0),(11815,'15587',20643,20644,4,0),(11816,'15590',20485,20486,4,0),(11817,'15591',20487,20488,4,0),(11818,'15592',20489,20490,4,0),(11819,'15593',20491,20492,4,0),(11820,'15594',20493,20494,4,0),(11821,'15595',20495,20496,4,0),(11822,'15596',20645,20646,4,0),(11823,'15598',20899,20900,4,0),(11824,'15600',20803,20804,4,0),(11825,'15607',20805,20806,4,0),(11826,'15608',20807,20808,4,0),(11827,'15608',20573,20574,4,0),(11828,'15609',20809,20810,4,0),(11829,'15609',20591,20592,4,0),(11830,'15611',20285,20286,4,0),(11831,'15612',20287,20288,4,0),(11832,'15613',20083,20084,4,0),(11833,'15614',20811,20812,4,0),(11834,'15615',21047,21048,4,0),(11835,'15616',21049,21050,4,0),(11836,'15617',20593,20594,4,0),(11837,'15619',20595,20596,4,0),(11838,'15620',20599,20600,4,0),(11839,'15621',20289,20290,4,0),(11840,'15622',20291,20292,4,0),(11841,'15623',20157,20158,4,0),(11842,'15624',20159,20160,4,0),(11843,'15625',20161,20162,4,0),(11844,'15626',20601,20602,4,0),(11845,'15627',20603,20604,4,0),(11846,'15627',20467,20468,4,0),(11847,'15630',20575,20576,4,0),(11848,'15635',20577,20578,4,0),(11849,'15637',21051,21052,4,0),(11850,'15638',21053,21054,4,0),(11851,'15639',20579,20580,4,0),(11852,'15640',20223,20224,4,0),(11853,'15650',20305,20306,4,0),(11854,'15656',21077,21078,4,0),(11855,'15659',20307,20308,4,0),(11856,'15660',20309,20310,4,0),(11857,'15668',20311,20312,4,0),(11858,'15669',20313,20314,4,0),(11859,'15670',20433,20434,4,0),(11860,'15679',20315,20316,4,0),(11861,'15680',20707,20708,4,0),(11862,'15683',20989,20990,4,0),(11863,'15684',20719,20720,4,0),(11864,'15684',20991,20992,4,0),(11865,'15684',20709,20710,4,0),(11866,'15685',20565,20566,4,0),(11867,'15685',20507,20508,4,0),(11868,'15685',20711,20712,4,0),(11869,'15686',21007,21008,4,0),(11870,'15686',20567,20568,4,0),(11871,'15686',20509,20510,4,0),(11872,'15687',20713,20714,4,0),(11873,'15687',21009,21010,4,0),(11874,'15688',20923,20924,4,0),(11875,'15688',20721,20722,4,0),(11876,'15689',20715,20716,4,0),(11877,'15689',20993,20994,4,0),(11878,'15689',20569,20570,4,0),(11879,'15690',20175,20176,4,0),(11880,'15701',20925,20926,4,0),(11881,'15702',20927,20928,4,0),(11882,'15703',20929,20930,4,0),(11883,'15704',20931,20932,4,0),(11884,'15705',20933,20934,4,0),(11885,'15706',20935,20936,4,0),(11886,'15707',20937,20938,4,0),(11887,'15800',20555,20556,4,0),(11888,'15805',20557,20558,4,0),(11889,'15806',20985,20986,4,0),(11890,'15807',21057,21058,4,0),(11891,'15808',20963,20964,4,0),(11892,'15809',20559,20560,4,0),(11893,'15810',20179,20180,4,0),(11894,'15813',20967,20968,4,0),(11895,'15814',20969,20970,4,0),(11896,'15815',20971,20972,4,0),(11897,'15816',20233,20234,4,0),(11898,'15817',20235,20236,4,0),(11899,'15818',20237,20238,4,0),(11900,'15819',20561,20562,4,0),(11901,'15819',20181,20182,4,0),(11902,'15820',20939,20940,4,0),(11903,'15821',20679,20680,4,0),(11904,'15822',20997,20998,4,0),(11905,'15823',20681,20682,4,0),(11906,'15823',20999,21000,4,0),(11907,'15824',21001,21002,4,0),(11908,'15824',20683,20684,4,0),(11909,'15825',20685,20686,4,0),(11910,'15826',20183,20184,4,0),(11911,'15828',21003,21004,4,0),(11912,'15830',20657,20658,4,0),(11913,'15837',20903,20904,4,0),(11914,'15838',20659,20660,4,0),(11915,'15839',20661,20662,4,0),(11916,'15839',20267,20268,4,0),(11917,'15839',20075,20076,4,0),(11918,'15840',20905,20906,4,0),(11919,'15841',20907,20908,4,0),(11920,'15845',20909,20910,4,0),(11921,'15846',20911,20912,4,0),(11922,'15847',20913,20914,4,0),(11923,'15848',20915,20916,4,0),(11924,'15850',21079,21080,4,0),(11925,'15851',21081,21082,4,0),(11926,'15855',21083,21084,4,0),(11927,'15856',21085,21086,4,0),(11928,'15857',21087,21088,4,0),(11929,'15858',21089,21090,4,0),(11930,'15859',21091,21092,4,0),(11931,'15860',20917,20918,4,0),(11932,'15861',20919,20920,4,0),(11933,'15862',20077,20078,4,0),(11934,'15863',20079,20080,4,0),(11935,'15863',20663,20664,4,0),(11936,'15864',20145,20146,4,0),(11937,'15865',20269,20270,4,0),(11938,'15866',20975,20976,4,0),(11939,'15870',20147,20148,4,0),(11940,'15871',21013,21014,4,0),(11941,'15872',21015,21016,4,0),(11942,'15873',21017,21018,4,0),(11943,'15874',21019,21020,4,0),(11944,'15880',21039,21040,4,0),(11945,'15881',20259,20260,4,0),(11946,'15881',21041,21042,4,0),(11947,'15882',20261,20262,4,0),(11948,'15883',20977,20978,4,0),(11949,'15884',20941,20942,4,0),(11950,'15885',21043,21044,4,0),(11951,'15886',20979,20980,4,0),(11952,'15887',20687,20688,4,0),(11953,'15888',20723,20724,4,0),(11954,'15890',20943,20944,4,0),(11955,'15891',20945,20946,4,0),(11956,'15892',20947,20948,4,0),(11957,'15893',20949,20950,4,0),(11958,'15894',20981,20982,4,0),(11959,'15895',20149,20150,4,0),(11960,'15896',20951,20952,4,0),(11961,'15897',20953,20954,4,0),(11962,'15898',20955,20956,4,0),(11963,'15899',20957,20958,4,0),(11964,'15900',20783,20784,4,0),(11965,'15910',20785,20786,4,0),(11966,'15911',20871,20872,4,0),(11967,'15912',20873,20874,4,0),(11968,'15913',20875,20876,4,0),(11969,'15914',20787,20788,4,0),(11970,'15915',20789,20790,4,0),(11971,'15916',20443,20444,4,0),(11972,'15917',20791,20792,4,0),(11973,'15920',20835,20836,4,0),(11974,'15928',20837,20838,4,0),(11975,'15930',20241,20242,4,0),(11976,'15937',20243,20244,4,0),(11977,'15938',20245,20246,4,0),(11978,'15939',20247,20248,4,0),(11979,'15940',20127,20128,4,0),(11980,'15948',20129,20130,4,0),(11981,'15949',20131,20132,4,0),(11982,'15950',20847,20848,4,0),(11983,'15959',20849,20850,4,0),(11984,'15960',20851,20852,4,0),(11985,'15965',20853,20854,4,0),(11986,'15966',20855,20856,4,0),(11987,'15967',20857,20858,4,0),(11988,'15968',20859,20860,4,0),(11989,'15969',20861,20862,4,0),(11990,'15970',20817,20818,4,0),(11991,'15978',20819,20820,4,0),(11992,'15979',20821,20822,4,0),(11993,'15980',20793,20794,4,0),(11994,'15980',20877,20878,4,0),(11995,'15981',20445,20446,4,0),(11996,'15982',20447,20448,4,0),(11997,'15983',20839,20840,4,0),(11998,'15984',20841,20842,4,0),(11999,'15985',20843,20844,4,0),(12000,'15990',20249,20250,4,0),(12001,'15991',20251,20252,4,0),(12002,'15992',20253,20254,4,0),(12003,'15993',20863,20864,4,0),(12004,'15994',20823,20824,4,0),(12005,'15995',20825,20826,4,0),(12006,'15996',20827,20828,4,0),(12007,'15998',20829,20830,4,0),(12008,'15999',20831,20832,4,0),(12009,'16001',13223,13224,4,0),(12010,'16002',13225,13226,4,0),(12011,'16003',13227,13228,4,0),(12012,'16004',13229,13230,4,0),(12013,'16043',13087,13088,4,0),(12014,'16100',13827,13828,4,0),(12015,'16111',13953,13954,4,0),(12016,'16111',12939,12940,4,0),(12017,'16113',13437,13438,4,0),(12018,'16114',13071,13072,4,0),(12019,'16118',13365,13366,4,0),(12020,'16118',13027,13028,4,0),(12021,'16118',13609,13610,4,0),(12022,'16118',13561,13562,4,0),(12023,'16120',13475,13476,4,0),(12024,'16122',13295,13296,4,0),(12025,'16122',13815,13816,4,0),(12026,'16123',13001,13002,4,0),(12027,'16140',13861,13862,4,0),(12028,'16141',13005,13006,4,0),(12029,'16141',13301,13302,4,0),(12030,'16141',13195,13196,4,0),(12031,'16141',13617,13618,4,0),(12032,'16142',13463,13464,4,0),(12033,'16143',13729,13730,4,0),(12034,'16143',13497,13498,4,0),(12035,'16144',13731,13732,4,0),(12036,'16144',13429,13430,4,0),(12037,'16145',13733,13734,4,0),(12038,'16146',13981,13982,4,0),(12039,'16146',13231,13232,4,0),(12040,'16147',13499,13500,4,0),(12041,'16150',13779,13780,4,0),(12042,'16150',13839,13840,4,0),(12043,'16152',13373,13374,4,0),(12044,'16152',13795,13796,4,0),(12045,'16152',13035,13036,4,0),(12046,'16152',13799,13800,4,0),(12047,'16160',13581,13582,4,0),(12048,'16160',16313,16314,4,0),(12049,'16161',13763,13764,4,0),(12050,'16162',13765,13766,4,0),(12051,'16190',13317,13318,4,0),(12052,'16190',13211,13212,4,0),(12053,'16191',13233,13234,4,0),(12054,'16191',13319,13320,4,0),(12055,'16191',13213,13214,4,0),(12056,'16191',13031,13032,4,0),(12057,'16191',13897,13898,4,0),(12058,'16192',13585,13586,4,0),(12059,'16192',13075,13076,4,0),(12060,'16193',13325,13326,4,0),(12061,'16193',13235,13236,4,0),(12062,'16194',13237,13238,4,0),(12063,'16194',13321,13322,4,0),(12064,'16194',13215,13216,4,0),(12065,'16195',13385,13386,4,0),(12066,'16195',13907,13908,4,0),(12067,'16195',13767,13768,4,0),(12068,'16195',12991,12992,4,0),(12069,'16195',12931,12932,4,0),(12070,'16196',13909,13910,4,0),(12071,'16200',13539,13540,4,0),(12072,'16210',13083,13084,4,0),(12073,'16211',13269,13270,4,0),(12074,'16212',13629,13630,4,0),(12075,'16214',13831,13832,4,0),(12076,'16214',12935,12936,4,0),(12077,'16214',13333,13334,4,0),(12078,'16214',13819,13820,4,0),(12079,'16215',12983,12984,4,0),(12080,'16216',13725,13726,4,0),(12081,'16216',13557,13558,4,0),(12082,'16216',13219,13220,4,0),(12083,'16216',13477,13478,4,0),(12084,'16220',13649,13650,4,0),(12085,'16230',13885,13886,4,0),(12086,'16235',13409,13410,4,0),(12087,'16236',13887,13888,4,0),(12088,'16236',13411,13412,4,0),(12089,'16236',13855,13856,4,0),(12090,'16237',13481,13482,4,0),(12091,'16238',13857,13858,4,0),(12092,'16238',13889,13890,4,0),(12093,'16239',13183,13184,4,0),(12094,'16240',13265,13266,4,0),(12095,'16250',13191,13192,4,0),(12096,'16251',13349,13350,4,0),(12097,'16260',13507,13508,4,0),(12098,'16269',13445,13446,4,0),(12099,'16269',13645,13646,4,0),(12100,'16270',13873,13874,4,0),(12101,'16280',13945,13946,4,0),(12102,'16290',13253,13254,4,0),(12103,'16290',13413,13414,4,0),(12104,'16300',13127,13128,4,0),(12105,'16311',13063,13064,4,0),(12106,'16311',13089,13090,4,0),(12107,'16311',13381,13382,4,0),(12108,'16311',13313,13314,4,0),(12109,'16312',13353,13354,4,0),(12110,'16312',13337,13338,4,0),(12111,'16313',12975,12976,4,0),(12112,'16315',12951,12952,4,0),(12113,'16316',13389,13390,4,0),(12114,'16316',13807,13808,4,0),(12115,'16316',13093,13094,4,0),(12116,'16316',13449,13450,4,0),(12117,'16317',13675,13676,4,0),(12118,'16317',13973,13974,4,0),(12119,'16317',13751,13752,4,0),(12120,'16318',13683,13684,4,0),(12121,'16320',13737,13738,4,0),(12122,'16321',13739,13740,4,0),(12123,'16330',13457,13458,4,0),(12124,'16336',13703,13704,4,0),(12125,'16338',13167,13168,4,0),(12126,'16338',12971,12972,4,0),(12127,'16339',13705,13706,4,0),(12128,'16339',13459,13460,4,0),(12129,'16339',13345,13346,4,0),(12130,'16340',13803,13804,4,0),(12131,'16340',13425,13426,4,0),(12132,'16340',13103,13104,4,0),(12133,'16350',13139,13140,4,0),(12134,'16360',13527,13528,4,0),(12135,'16360',13009,13010,4,0),(12136,'16370',13913,13914,4,0),(12137,'16370',13695,13696,4,0),(12138,'16371',13545,13546,4,0),(12139,'16371',13957,13958,4,0),(12140,'16372',13589,13590,4,0),(12141,'16372',13291,13292,4,0),(12142,'16373',13143,13144,4,0),(12143,'16373',13965,13966,4,0),(12144,'16373',13591,13592,4,0),(12145,'16390',13573,13574,4,0),(12146,'16390',13577,13578,4,0),(12147,'16390',13657,13658,4,0),(12148,'16393',13511,13512,4,0),(12149,'16400',13743,13744,4,0),(12150,'16410',13369,13370,4,0),(12151,'16411',13305,13306,4,0),(12152,'16412',13245,13246,4,0),(12153,'16413',13771,13772,4,0),(12154,'16414',13633,13634,4,0),(12155,'16415',13877,13878,4,0),(12156,'16417',13489,13490,4,0),(12157,'16420',12979,12980,4,0),(12158,'16420',13941,13942,4,0),(12159,'16421',13641,13642,4,0),(12160,'16421',13361,13362,4,0),(12161,'16422',13783,13784,4,0),(12162,'16423',13569,13570,4,0),(12163,'16430',13671,13672,4,0),(12164,'16431',12987,12988,4,0),(12165,'16432',13661,13662,4,0),(12166,'16432',13925,13926,4,0),(12167,'16433',12967,12968,4,0),(12168,'16433',13893,13894,4,0),(12169,'16434',13519,13520,4,0),(12170,'16435',13433,13434,4,0),(12171,'16440',13523,13524,4,0),(12172,'16441',13257,13258,4,0),(12173,'16442',13937,13938,4,0),(12174,'16444',13207,13208,4,0),(12175,'16452',13787,13788,4,0),(12176,'16452',13663,13664,4,0),(12177,'16452',13791,13792,4,0),(12178,'16460',13021,13022,4,0),(12179,'16461',13485,13486,4,0),(12180,'16463',13667,13668,4,0),(12181,'16464',12959,12960,4,0),(12182,'16465',13595,13596,4,0),(12183,'16465',13377,13378,4,0),(12184,'16470',13039,13040,4,0),(12185,'16470',13023,13024,4,0),(12186,'16470',13977,13978,4,0),(12187,'16500',13393,13394,4,0),(12188,'16510',13281,13282,4,0),(12189,'16510',13843,13844,4,0),(12190,'16512',13283,13284,4,0),(12191,'16512',13079,13080,4,0),(12192,'16514',13285,13286,4,0),(12193,'16520',13395,13396,4,0),(12194,'16521',13397,13398,4,0),(12195,'16522',13755,13756,4,0),(12196,'16522',13613,13614,4,0),(12197,'16532',13881,13882,4,0),(12198,'16532',13341,13342,4,0),(12199,'16532',13399,13400,4,0),(12200,'16532',13441,13442,4,0),(12201,'16535',13865,13866,4,0),(12202,'16537',12963,12964,4,0),(12203,'16537',13123,13124,4,0),(12204,'16540',13401,13402,4,0),(12205,'16541',13929,13930,4,0),(12206,'16541',13403,13404,4,0),(12207,'16541',13605,13606,4,0),(12208,'16541',13493,13494,4,0),(12209,'16542',13921,13922,4,0),(12210,'16550',13097,13098,4,0),(12211,'16550',13405,13406,4,0),(12212,'16555',13099,13100,4,0),(12213,'16600',13687,13688,4,0),(12214,'16610',13163,13164,4,0),(12215,'16611',13175,13176,4,0),(12216,'16612',13179,13180,4,0),(12217,'16620',13417,13418,4,0),(12218,'16621',13713,13714,4,0),(12219,'16622',13601,13602,4,0),(12220,'16623',13199,13200,4,0),(12221,'16630',13535,13536,4,0),(12222,'16638',13261,13262,4,0),(12223,'16639',13709,13710,4,0),(12224,'16640',13045,13046,4,0),(12225,'16646',13869,13870,4,0),(12226,'16647',13309,13310,4,0),(12227,'16647',13851,13852,4,0),(12228,'16648',13903,13904,4,0),(12229,'16649',13653,13654,4,0),(12230,'16649',13153,13154,4,0),(12231,'16649',13515,13516,4,0),(12232,'16650',13467,13468,4,0),(12233,'16660',13471,13472,4,0),(12234,'16670',13277,13278,4,0),(12235,'16700',13721,13722,4,0),(12236,'16707',13159,13160,4,0),(12237,'16708',13625,13626,4,0),(12238,'16708',13171,13172,4,0),(12239,'16709',13835,13836,4,0),(12240,'16710',13017,13018,4,0),(12241,'16710',13747,13748,4,0),(12242,'16720',13107,13108,4,0),(12243,'16730',13357,13358,4,0),(12244,'16738',13249,13250,4,0),(12245,'16739',13775,13776,4,0),(12246,'16740',13421,13422,4,0),(12247,'16740',13041,13042,4,0),(12248,'16760',13549,13550,4,0),(12249,'16770',13691,13692,4,0),(12250,'16771',13933,13934,4,0),(12251,'16771',13969,13970,4,0),(12252,'16779',13051,13052,4,0),(12253,'16780',13531,13532,4,0),(12254,'16780',12993,12994,4,0),(12255,'16781',13297,13298,4,0),(12256,'16800',13637,13638,4,0),(12257,'16812',12997,12998,4,0),(12258,'16812',12955,12956,4,0),(12259,'16812',13961,13962,4,0),(12260,'16812',13273,13274,4,0),(12261,'16812',12947,12948,4,0),(12262,'16813',13699,13700,4,0),(12263,'16813',13679,13680,4,0),(12264,'16813',13811,13812,4,0),(12265,'16813',13917,13918,4,0),(12266,'16840',13899,13900,4,0),(12267,'16841',12943,12944,4,0),(12268,'16842',13759,13760,4,0),(12269,'16843',13949,13950,4,0),(12270,'16850',13119,13120,4,0),(12271,'16851',13067,13068,4,0),(12272,'16852',13553,13554,4,0),(12273,'16853',13565,13566,4,0),(12274,'16854',13203,13204,4,0),(12275,'16855',13013,13014,4,0),(12276,'16857',13111,13112,4,0),(12277,'16860',13847,13848,4,0),(12278,'16870',13055,13056,4,0),(12279,'16878',13453,13454,4,0),(12280,'16878',13621,13622,4,0),(12281,'16878',13503,13504,4,0),(12282,'16878',13717,13718,4,0),(12283,'16879',13241,13242,4,0),(12284,'16879',13147,13148,4,0),(12285,'16879',13823,13824,4,0),(12286,'16879',13057,13058,4,0),(12287,'16890',13115,13116,4,0),(12288,'16890',13329,13330,4,0),(12289,'16890',13131,13132,4,0),(12290,'16891',13133,13134,4,0),(12291,'16891',13149,13150,4,0),(12292,'16892',13135,13136,4,0),(12293,'16893',13059,13060,4,0),(12294,'17001',14321,14322,4,0),(12295,'17002',14323,14324,4,0),(12296,'17003',14325,14326,4,0),(12297,'17004',14327,14328,4,0),(12298,'17005',14329,14330,4,0),(12299,'17006',14331,14332,4,0),(12300,'17007',14333,14334,4,0),(12301,'17100',14375,14376,4,0),(12302,'17110',14289,14290,4,0),(12303,'17111',14291,14292,4,0),(12304,'17113',14293,14294,4,0),(12305,'17114',14991,14992,4,0),(12306,'17116',14219,14220,4,0),(12307,'17117',14221,14222,4,0),(12308,'17118',14223,14224,4,0),(12309,'17120',14391,14392,4,0),(12310,'17121',14225,14226,4,0),(12311,'17121',14207,14208,4,0),(12312,'17124',14613,14614,4,0),(12313,'17130',14371,14372,4,0),(12314,'17130',14963,14964,4,0),(12315,'17131',14755,14756,4,0),(12316,'17132',14269,14270,4,0),(12317,'17133',14657,14658,4,0),(12318,'17133',14271,14272,4,0),(12319,'17133',14995,14996,4,0),(12320,'17133',14917,14918,4,0),(12321,'17134',14399,14400,4,0),(12322,'17135',14401,14402,4,0),(12323,'17136',14001,14002,4,0),(12324,'17137',15011,15012,4,0),(12325,'17137',15045,15046,4,0),(12326,'17140',14965,14966,4,0),(12327,'17140',14987,14988,4,0),(12328,'17141',14967,14968,4,0),(12329,'17141',14049,14050,4,0),(12330,'17142',15021,15022,4,0),(12331,'17143',14359,14360,4,0),(12332,'17144',14203,14204,4,0),(12333,'17144',15105,15106,4,0),(12334,'17150',14801,14802,4,0),(12335,'17151',14803,14804,4,0),(12336,'17152',14849,14850,4,0),(12337,'17153',14851,14852,4,0),(12338,'17154',14771,14772,4,0),(12339,'17160',14015,14016,4,0),(12340,'17161',14609,14610,4,0),(12341,'17162',14057,14058,4,0),(12342,'17163',14059,14060,4,0),(12343,'17164',14841,14842,4,0),(12344,'17164',14805,14806,4,0),(12345,'17164',14853,14854,4,0),(12346,'17165',14379,14380,4,0),(12347,'17166',14935,14936,4,0),(12348,'17166',14381,14382,4,0),(12349,'17170',14011,14012,4,0),(12350,'17171',14773,14774,4,0),(12351,'17171',14937,14938,4,0),(12352,'17172',14433,14434,4,0),(12353,'17173',14435,14436,4,0),(12354,'17174',14791,14792,4,0),(12355,'17176',14409,14410,4,0),(12356,'17177',14411,14412,4,0),(12357,'17178',14439,14440,4,0),(12358,'17178',14413,14414,4,0),(12359,'17179',14739,14740,4,0),(12360,'17179',14415,14416,4,0),(12361,'17180',15041,15042,4,0),(12362,'17181',13991,13992,4,0),(12363,'17182',14061,14062,4,0),(12364,'17183',15097,15098,4,0),(12365,'17184',15099,15100,4,0),(12366,'17185',15101,15102,4,0),(12367,'17190',14763,14764,4,0),(12368,'17199',14807,14808,4,0),(12369,'17199',14153,14154,4,0),(12370,'17200',14615,14616,4,0),(12371,'17210',14617,14618,4,0),(12372,'17211',14619,14620,4,0),(12373,'17212',14621,14622,4,0),(12374,'17213',14623,14624,4,0),(12375,'17213',14043,14044,4,0),(12376,'17214',14719,14720,4,0),(12377,'17220',14785,14786,4,0),(12378,'17230',14627,14628,4,0),(12379,'17240',14887,14888,4,0),(12380,'17240',14447,14448,4,0),(12381,'17241',14703,14704,4,0),(12382,'17242',14705,14706,4,0),(12383,'17243',14451,14452,4,0),(12384,'17244',14165,14166,4,0),(12385,'17244',14227,14228,4,0),(12386,'17245',14889,14890,4,0),(12387,'17246',14891,14892,4,0),(12388,'17248',14169,14170,4,0),(12389,'17248',14787,14788,4,0),(12390,'17249',14171,14172,4,0),(12391,'17250',14173,14174,4,0),(12392,'17251',14123,14124,4,0),(12393,'17252',14125,14126,4,0),(12394,'17253',15003,15004,4,0),(12395,'17253',14579,14580,4,0),(12396,'17255',14045,14046,4,0),(12397,'17256',14637,14638,4,0),(12398,'17256',14649,14650,4,0),(12399,'17257',14343,14344,4,0),(12400,'17257',14969,14970,4,0),(12401,'17257',14281,14282,4,0),(12402,'17258',14971,14972,4,0),(12403,'17300',14075,14076,4,0),(12404,'17310',14471,14472,4,0),(12405,'17320',14983,14984,4,0),(12406,'17320',14629,14630,4,0),(12407,'17400',14097,14098,4,0),(12408,'17401',14019,14020,4,0),(12409,'17402',14021,14022,4,0),(12410,'17403',14811,14812,4,0),(12411,'17404',14727,14728,4,0),(12412,'17405',14247,14248,4,0),(12413,'17406',15059,15060,4,0),(12414,'17410',14925,14926,4,0),(12415,'17411',15029,15030,4,0),(12416,'17412',14483,14484,4,0),(12417,'17420',14927,14928,4,0),(12418,'17421',14735,14736,4,0),(12419,'17430',14883,14884,4,0),(12420,'17430',14473,14474,4,0),(12421,'17441',14101,14102,4,0),(12422,'17450',14351,14352,4,0),(12423,'17451',14781,14782,4,0),(12424,'17452',14501,14502,4,0),(12425,'17454',14767,14768,4,0),(12426,'17455',14117,14118,4,0),(12427,'17456',14119,14120,4,0),(12428,'17457',14743,14744,4,0),(12429,'17458',14297,14298,4,0),(12430,'17459',14145,14146,4,0),(12431,'17460',14187,14188,4,0),(12432,'17461',14335,14336,4,0),(12433,'17462',14857,14858,4,0),(12434,'17462',14087,14088,4,0),(12435,'17462',14363,14364,4,0),(12436,'17462',14487,14488,4,0),(12437,'17463',14273,14274,4,0),(12438,'17463',14823,14824,4,0),(12439,'17463',14265,14266,4,0),(12440,'17464',14191,14192,4,0),(12441,'17464',14831,14832,4,0),(12442,'17464',15049,15050,4,0),(12443,'17465',14907,14908,4,0),(12444,'17466',15107,15108,4,0),(12445,'17466',14309,14310,4,0),(12446,'17467',14869,14870,4,0),(12447,'17467',14909,14910,4,0),(12448,'17468',14037,14038,4,0),(12449,'17468',15053,15054,4,0),(12450,'17469',15079,15080,4,0),(12451,'17469',14301,14302,4,0),(12452,'17469',14239,14240,4,0),(12453,'17469',14747,14748,4,0),(12454,'17469',14931,14932,4,0),(12455,'17470',14879,14880,4,0),(12456,'17472',15013,15014,4,0),(12457,'17472',14367,14368,4,0),(12458,'17473',15015,15016,4,0),(12459,'17474',15075,15076,4,0),(12460,'17474',14959,14960,4,0),(12461,'17475',14865,14866,4,0),(12462,'17475',15017,15018,4,0),(12463,'17476',14633,14634,4,0),(12464,'17476',14305,14306,4,0),(12465,'17480',14751,14752,4,0),(12466,'17481',14835,14836,4,0),(12467,'17482',14837,14838,4,0),(12468,'17483',15093,15094,4,0),(12469,'17483',14039,14040,4,0),(12470,'17484',14259,14260,4,0),(12471,'17485',15033,15034,4,0),(12472,'17486',14181,14182,4,0),(12473,'17487',14183,14184,4,0),(12474,'17488',14113,14114,4,0),(12475,'17489',14395,14396,4,0),(12476,'17489',14243,14244,4,0),(12477,'17490',14459,14460,4,0),(12478,'17491',14669,14670,4,0),(12479,'17492',14671,14672,4,0),(12480,'17493',14665,14666,4,0),(12481,'17493',15067,15068,4,0),(12482,'17494',14661,14662,4,0),(12483,'17495',14641,14642,4,0),(12484,'17496',14199,14200,4,0),(12485,'17497',14693,14694,4,0),(12486,'17500',14731,14732,4,0),(12487,'17512',14425,14426,4,0),(12488,'17513',14427,14428,4,0),(12489,'17515',15025,15026,4,0),(12490,'17520',14697,14698,4,0),(12491,'17527',14467,14468,4,0),(12492,'17528',14347,14348,4,0),(12493,'17529',14699,14700,4,0),(12494,'17530',14135,14136,4,0),(12495,'17531',14339,14340,4,0),(12496,'17531',14137,14138,4,0),(12497,'17532',14429,14430,4,0),(12498,'17534',14709,14710,4,0),(12499,'17534',14141,14142,4,0),(12500,'17534',14723,14724,4,0),(12501,'17534',14653,14654,4,0),(12502,'17535',14675,14676,4,0),(12503,'17536',14979,14980,4,0),(12504,'17537',14005,14006,4,0),(12505,'17538',14277,14278,4,0),(12506,'17538',14007,14008,4,0),(12507,'17538',14235,14236,4,0),(12508,'17538',14999,15000,4,0),(12509,'17539',14083,14084,4,0),(12510,'17539',14317,14318,4,0),(12511,'17539',14505,14506,4,0),(12512,'17539',14355,14356,4,0),(12513,'17600',14261,14262,4,0),(12514,'17700',14385,14386,4,0),(12515,'17700',14091,14092,4,0),(12516,'17706',14679,14680,4,0),(12517,'17707',14405,14406,4,0),(12518,'17707',13987,13988,4,0),(12519,'17708',14157,14158,4,0),(12520,'17709',14387,14388,4,0),(12521,'17720',14477,14478,4,0),(12522,'17721',14479,14480,4,0),(12523,'17722',14231,14232,4,0),(12524,'17723',14079,14080,4,0),(12525,'17723',14071,14072,4,0),(12526,'17730',14463,14464,4,0),(12527,'17731',14941,14942,4,0),(12528,'17732',14845,14846,4,0),(12529,'17733',13995,13996,4,0),(12530,'17734',13997,13998,4,0),(12531,'17740',15063,15064,4,0),(12532,'17741',15087,15088,4,0),(12533,'17741',14195,14196,4,0),(12534,'17742',14029,14030,4,0),(12535,'17743',15089,15090,4,0),(12536,'17744',14589,14590,4,0),(12537,'17745',14443,14444,4,0),(12538,'17746',14105,14106,4,0),(12539,'17747',14107,14108,4,0),(12540,'17750',14161,14162,4,0),(12541,'17751',14777,14778,4,0),(12542,'17752',14571,14572,4,0),(12543,'17753',14251,14252,4,0),(12544,'17754',14713,14714,4,0),(12545,'17755',14715,14716,4,0),(12546,'17760',15037,15038,4,0),(12547,'17762',14495,14496,4,0),(12548,'17763',14497,14498,4,0),(12549,'17770',14093,14094,4,0),(12550,'17771',14895,14896,4,0),(12551,'17772',14605,14606,4,0),(12552,'17773',14683,14684,4,0),(12553,'17780',14313,14314,4,0),(12554,'17781',15083,15084,4,0),(12555,'17800',14597,14598,4,0),(12556,'17810',14599,14600,4,0),(12557,'17811',14899,14900,4,0),(12558,'17812',14601,14602,4,0),(12559,'17813',14419,14420,4,0),(12560,'17820',14033,14034,4,0),(12561,'17830',14795,14796,4,0),(12562,'17831',14861,14862,4,0),(12563,'17832',14255,14256,4,0),(12564,'17832',14215,14216,4,0),(12565,'17833',15055,15056,4,0),(12566,'17833',14285,14286,4,0),(12567,'17834',14129,14130,4,0),(12568,'17834',14687,14688,4,0),(12569,'17840',14903,14904,4,0),(12570,'17843',14645,14646,4,0),(12571,'17844',14211,14212,4,0),(12572,'17846',14689,14690,4,0),(12573,'17850',14053,14054,4,0),(12574,'17850',14797,14798,4,0),(12575,'17850',14065,14066,4,0),(12576,'17851',14491,14492,4,0),(12577,'17851',14067,14068,4,0),(12578,'17852',14913,14914,4,0),(12579,'17853',14759,14760,4,0),(12580,'17853',14975,14976,4,0),(12581,'17853',14025,14026,4,0),(12582,'17854',14815,14816,4,0),(12583,'17854',14131,14132,4,0),(12584,'17855',14583,14584,4,0),(12585,'17856',14177,14178,4,0),(12586,'17856',14585,14586,4,0),(12587,'17857',14827,14828,4,0),(12588,'17858',14421,14422,4,0),(12589,'17860',14819,14820,4,0),(12590,'17861',14593,14594,4,0),(12591,'17862',15007,15008,4,0),(12592,'17864',14873,14874,4,0),(12593,'17865',14875,14876,4,0),(12594,'17867',14149,14150,4,0),(12595,'17868',14575,14576,4,0),(12596,'17869',14455,14456,4,0),(12597,'17869',14921,14922,4,0),(12598,'17869',15071,15072,4,0),(12599,'18001',15469,15470,4,0),(12600,'18002',15471,15472,4,0),(12601,'18003',15473,15474,4,0),(12602,'18004',15475,15476,4,0),(12603,'18005',15477,15478,4,0),(12604,'18006',15479,15480,4,0),(12605,'18007',15481,15482,4,0),(12606,'18008',15483,15484,4,0),(12607,'18009',15485,15486,4,0),(12608,'18010',15487,15488,4,0),(12609,'18011',15489,15490,4,0),(12610,'18012',15491,15492,4,0),(12611,'18013',15493,15494,4,0),(12612,'18014',15495,15496,4,0),(12613,'18015',15497,15498,4,0),(12614,'18053',15347,15348,4,0),(12615,'18100',15211,15212,4,0),(12616,'18101',15951,15952,4,0),(12617,'18102',15953,15954,4,0),(12618,'18110',15651,15652,4,0),(12619,'18120',15165,15166,4,0),(12620,'18126',15203,15204,4,0),(12621,'18127',15593,15594,4,0),(12622,'18127',15205,15206,4,0),(12623,'18128',15989,15990,4,0),(12624,'18128',15167,15168,4,0),(12625,'18129',15891,15892,4,0),(12626,'18129',15207,15208,4,0),(12627,'18129',15261,15262,4,0),(12628,'18130',15617,15618,4,0),(12629,'18130',15423,15424,4,0),(12630,'18131',15965,15966,4,0),(12631,'18132',15113,15114,4,0),(12632,'18140',15633,15634,4,0),(12633,'18140',16583,16584,4,0),(12634,'18150',15455,15456,4,0),(12635,'18151',15779,15780,4,0),(12636,'18152',15395,15396,4,0),(12637,'18160',15529,15530,4,0),(12638,'18170',15153,15154,4,0),(12639,'18179',15155,15156,4,0),(12640,'18179',15985,15986,4,0),(12641,'18180',15391,15392,4,0),(12642,'18181',15621,15622,4,0),(12643,'18181',15377,15378,4,0),(12644,'18182',15499,15500,4,0),(12645,'18183',15551,15552,4,0),(12646,'18184',15229,15230,4,0),(12647,'18185',15553,15554,4,0),(12648,'18190',15501,15502,4,0),(12649,'18190',15313,15314,4,0),(12650,'18191',15531,15532,4,0),(12651,'18191',15823,15824,4,0),(12652,'18192',15405,15406,4,0),(12653,'18192',15867,15868,4,0),(12654,'18193',15717,15718,4,0),(12655,'18194',15327,15328,4,0),(12656,'18194',15653,15654,4,0),(12657,'18195',15373,15374,4,0),(12658,'18196',15719,15720,4,0),(12659,'18197',15855,15856,4,0),(12660,'18198',15561,15562,4,0),(12661,'18199',15271,15272,4,0),(12662,'18200',15697,15698,4,0),(12663,'18210',15857,15858,4,0),(12664,'18210',15813,15814,4,0),(12665,'18211',15339,15340,4,0),(12666,'18212',15535,15536,4,0),(12667,'18213',15605,15606,4,0),(12668,'18214',15775,15776,4,0),(12669,'18220',15123,15124,4,0),(12670,'18230',15215,15216,4,0),(12671,'18240',15827,15828,4,0),(12672,'18247',15705,15706,4,0),(12673,'18248',15707,15708,4,0),(12674,'18249',15709,15710,4,0),(12675,'18250',15117,15118,4,0),(12676,'18250',15829,15830,4,0),(12677,'18260',15565,15566,4,0),(12678,'18270',15723,15724,4,0),(12679,'18280',15159,15160,4,0),(12680,'18290',15275,15276,4,0),(12681,'18290',15217,15218,4,0),(12682,'18290',15125,15126,4,0),(12683,'18291',15831,15832,4,0),(12684,'18292',15895,15896,4,0),(12685,'18293',15567,15568,4,0),(12686,'18294',15569,15570,4,0),(12687,'18295',15161,15162,4,0),(12688,'18300',15673,15674,4,0),(12689,'18310',15877,15878,4,0),(12690,'18311',15993,15994,4,0),(12691,'18311',15675,15676,4,0),(12692,'18312',12701,12702,4,0),(12693,'18312',15677,15678,4,0),(12694,'18313',15679,15680,4,0),(12695,'18314',15681,15682,4,0),(12696,'18320',15897,15898,4,0),(12697,'18327',15637,15638,4,0),(12698,'18328',15833,15834,4,0),(12699,'18328',15639,15640,4,0),(12700,'18329',15323,15324,4,0),(12701,'18329',15899,15900,4,0),(12702,'18330',15317,15318,4,0),(12703,'18330',15901,15902,4,0),(12704,'18330',15219,15220,4,0),(12705,'18339',15331,15332,4,0),(12706,'18339',15319,15320,4,0),(12707,'18340',15439,15440,4,0),(12708,'18350',15571,15572,4,0),(12709,'18360',15557,15558,4,0),(12710,'18369',15981,15982,4,0),(12711,'18370',15735,15736,4,0),(12712,'18380',15573,15574,4,0),(12713,'18381',15575,15576,4,0),(12714,'18400',15787,15788,4,0),(12715,'18410',15297,15298,4,0),(12716,'18410',15789,15790,4,0),(12717,'18410',15905,15906,4,0),(12718,'18411',15805,15806,4,0),(12719,'18412',15253,15254,4,0),(12720,'18413',15293,15294,4,0),(12721,'18414',15627,15628,4,0),(12722,'18415',15847,15848,4,0),(12723,'18416',15629,15630,4,0),(12724,'18416',15257,15258,4,0),(12725,'18417',15925,15926,4,0),(12726,'18418',15743,15744,4,0),(12727,'18418',15791,15792,4,0),(12728,'18418',15283,15284,4,0),(12729,'18420',15189,15190,4,0),(12730,'18420',15643,15644,4,0),(12731,'18430',15921,15922,4,0),(12732,'18438',15179,15180,4,0),(12733,'18439',15301,15302,4,0),(12734,'18440',15265,15266,4,0),(12735,'18448',15267,15268,4,0),(12736,'18449',15669,15670,4,0),(12737,'18450',15191,15192,4,0),(12738,'18451',15249,15250,4,0),(12739,'18452',15609,15610,4,0),(12740,'18460',15193,15194,4,0),(12741,'18470',15947,15948,4,0),(12742,'18480',15933,15934,4,0),(12743,'18490',15759,15760,4,0),(12744,'18491',15929,15930,4,0),(12745,'18492',15935,15936,4,0),(12746,'18492',15761,15762,4,0),(12747,'18493',15765,15766,4,0),(12748,'18494',15937,15938,4,0),(12749,'18494',15767,15768,4,0),(12750,'18500',15511,15512,4,0),(12751,'18510',15237,15238,4,0),(12752,'18511',15943,15944,4,0),(12753,'18512',15399,15400,4,0),(12754,'18512',15543,15544,4,0),(12755,'18512',15613,15614,4,0),(12756,'18513',15427,15428,4,0),(12757,'18514',15149,15150,4,0),(12758,'18515',15431,15432,4,0),(12759,'18515',15861,15862,4,0),(12760,'18515',15513,15514,4,0),(12761,'18516',15689,15690,4,0),(12762,'18516',15837,15838,4,0),(12763,'18516',15233,15234,4,0),(12764,'18516',15701,15702,4,0),(12765,'18517',15869,15870,4,0),(12766,'18517',15355,15356,4,0),(12767,'18517',15623,15624,4,0),(12768,'18518',15597,15598,4,0),(12769,'18518',15335,15336,4,0),(12770,'18518',15133,15134,4,0),(12771,'18518',15647,15648,4,0),(12772,'18518',15199,15200,4,0),(12773,'18519',15515,15516,4,0),(12774,'18519',15863,15864,4,0),(12775,'18520',15119,15120,4,0),(12776,'18530',15809,15810,4,0),(12777,'18538',15175,15176,4,0),(12778,'18538',15381,15382,4,0),(12779,'18539',15977,15978,4,0),(12780,'18540',15449,15450,4,0),(12781,'18540',15539,15540,4,0),(12782,'18540',15739,15740,4,0),(12783,'18540',15195,15196,4,0),(12784,'18550',15585,15586,4,0),(12785,'18560',15507,15508,4,0),(12786,'18561',15727,15728,4,0),(12787,'18562',15817,15818,4,0),(12788,'18563',15451,15452,4,0),(12789,'18563',15917,15918,4,0),(12790,'18564',15343,15344,4,0),(12791,'18565',15279,15280,4,0),(12792,'18566',15241,15242,4,0),(12793,'18567',15587,15588,4,0),(12794,'18568',15819,15820,4,0),(12795,'18569',15731,15732,4,0),(12796,'18570',15387,15388,4,0),(12797,'18600',15745,15746,4,0),(12798,'18610',15881,15882,4,0),(12799,'18611',15713,15714,4,0),(12800,'18612',15581,15582,4,0),(12801,'18613',15747,15748,4,0),(12802,'18614',15693,15694,4,0),(12803,'18614',15523,15524,4,0),(12804,'18614',15749,15750,4,0),(12805,'18615',15685,15686,4,0),(12806,'18615',15957,15958,4,0),(12807,'18616',15959,15960,4,0),(12808,'18620',15171,15172,4,0),(12809,'18620',15751,15752,4,0),(12810,'18630',15969,15970,4,0),(12811,'18640',15801,15802,4,0),(12812,'18650',15409,15410,4,0),(12813,'18656',15657,15658,4,0),(12814,'18657',15659,15660,4,0),(12815,'18657',15771,15772,4,0),(12816,'18658',15419,15420,4,0),(12817,'18658',15413,15414,4,0),(12818,'18659',15973,15974,4,0),(12819,'18659',15145,15146,4,0),(12820,'18660',15415,15416,4,0),(12821,'18660',15661,15662,4,0),(12822,'18670',15961,15962,4,0),(12823,'18680',15883,15884,4,0),(12824,'18690',15183,15184,4,0),(12825,'18690',15885,15886,4,0),(12826,'18697',15185,15186,4,0),(12827,'18698',15797,15798,4,0),(12828,'18699',15665,15666,4,0),(12829,'18699',15601,15602,4,0),(12830,'18700',15137,15138,4,0),(12831,'18708',15129,15130,4,0),(12832,'18710',15909,15910,4,0),(12833,'18710',15841,15842,4,0),(12834,'18710',15793,15794,4,0),(12835,'18711',15873,15874,4,0),(12836,'18713',15911,15912,4,0),(12837,'18720',15753,15754,4,0),(12838,'18730',15755,15756,4,0),(12839,'18740',15525,15526,4,0),(12840,'18750',15913,15914,4,0),(12841,'18750',15843,15844,4,0),(12842,'18760',15139,15140,4,0),(12843,'18770',15141,15142,4,0),(12844,'18800',15223,15224,4,0),(12845,'18810',15287,15288,4,0),(12846,'18811',15997,15998,4,0),(12847,'18812',15435,15436,4,0),(12848,'18813',15359,15360,4,0),(12849,'18814',15349,15350,4,0),(12850,'18815',15351,15352,4,0),(12851,'18816',15309,15310,4,0),(12852,'18817',15245,15246,4,0),(12853,'18818',15305,15306,4,0),(12854,'18819',15289,15290,4,0),(12855,'18820',15851,15852,4,0),(12856,'18830',15577,15578,4,0),(12857,'18830',15547,15548,4,0),(12858,'18840',15443,15444,4,0),(12859,'18849',15445,15446,4,0),(12860,'18850',15363,15364,4,0),(12861,'18857',15365,15366,4,0),(12862,'18858',15783,15784,4,0),(12863,'18859',15367,15368,4,0),(12864,'18860',15517,15518,4,0),(12865,'18860',15225,15226,4,0),(12866,'18870',15459,15460,4,0),(12867,'18880',15519,15520,4,0),(12868,'18890',15463,15464,4,0),(12869,'18891',15369,15370,4,0),(12870,'19001',16527,16528,4,0),(12871,'19002',16529,16530,4,0),(12872,'19003',16531,16532,4,0),(12873,'19004',16533,16534,4,0),(12874,'19005',16535,16536,4,0),(12875,'19080',16537,16538,4,0),(12876,'19080',17315,17316,4,0),(12877,'19100',16863,16864,4,0),(12878,'19110',16803,16804,4,0),(12879,'19111',17323,17324,4,0),(12880,'19112',16905,16906,4,0),(12881,'19112',16029,16030,4,0),(12882,'19113',16505,16506,4,0),(12883,'19114',16743,16744,4,0),(12884,'19115',16081,16082,4,0),(12885,'19116',16393,16394,4,0),(12886,'19117',16023,16024,4,0),(12887,'19118',16085,16086,4,0),(12888,'19119',16579,16580,4,0),(12889,'19119',16451,16452,4,0),(12890,'19119',16087,16088,4,0),(12891,'19119',16455,16456,4,0),(12892,'19119',16603,16604,4,0),(12893,'19119',16025,16026,4,0),(12894,'19119',17025,17026,4,0),(12895,'19119',17351,17352,4,0),(12896,'19119',16615,16616,4,0),(12897,'19120',16993,16994,4,0),(12898,'19125',16037,16038,4,0),(12899,'19126',17005,17006,4,0),(12900,'19127',16447,16448,4,0),(12901,'19127',16995,16996,4,0),(12902,'19127',16281,16282,4,0),(12903,'19127',16763,16764,4,0),(12904,'19128',16309,16310,4,0),(12905,'19128',16711,16712,4,0),(12906,'19128',16997,16998,4,0),(12907,'19128',16855,16856,4,0),(12908,'19129',16857,16858,4,0),(12909,'19129',16073,16074,4,0),(12910,'19130',16169,16170,4,0),(12911,'19131',16171,16172,4,0),(12912,'19132',16069,16070,4,0),(12913,'19132',17233,17234,4,0),(12914,'19133',16195,16196,4,0),(12915,'19133',16417,16418,4,0),(12916,'19133',16091,16092,4,0),(12917,'19133',16215,16216,4,0),(12918,'19133',16397,16398,4,0),(12919,'19134',17105,17106,4,0),(12920,'19134',16871,16872,4,0),(12921,'19135',16151,16152,4,0),(12922,'19135',16147,16148,4,0),(12923,'19139',17317,17318,4,0),(12924,'19140',16585,16586,4,0),(12925,'19141',17215,17216,4,0),(12926,'19141',16127,16128,4,0),(12927,'19141',16679,16680,4,0),(12928,'19141',17319,17320,4,0),(12929,'19142',17223,17224,4,0),(12930,'19142',16683,16684,4,0),(12931,'19143',16981,16982,4,0),(12932,'19143',16623,16624,4,0),(12933,'19143',17013,17014,4,0),(12934,'19143',16587,16588,4,0),(12935,'19143',16399,16400,4,0),(12936,'19143',17327,17328,4,0),(12937,'19143',17331,17332,4,0),(12938,'19144',16501,16502,4,0),(12939,'19144',16811,16812,4,0),(12940,'19144',16493,16494,4,0),(12941,'19145',16947,16948,4,0),(12942,'19150',16539,16540,4,0),(12943,'19151',16297,16298,4,0),(12944,'19152',16057,16058,4,0),(12945,'19153',16155,16156,4,0),(12946,'19160',16315,16316,4,0),(12947,'19161',16909,16910,4,0),(12948,'19162',16891,16892,4,0),(12949,'19170',16407,16408,4,0),(12950,'19171',16229,16230,4,0),(12951,'19174',17147,17148,4,0),(12952,'19174',17227,17228,4,0),(12953,'19174',16515,16516,4,0),(12954,'19180',16723,16724,4,0),(12955,'19181',16541,16542,4,0),(12956,'19182',16543,16544,4,0),(12957,'19182',16489,16490,4,0),(12958,'19184',17249,17250,4,0),(12959,'19184',17183,17184,4,0),(12960,'19184',17303,17304,4,0),(12961,'19184',16261,16262,4,0),(12962,'19184',17311,17312,4,0),(12963,'19185',17245,17246,4,0),(12964,'19185',17229,17230,4,0),(12965,'19185',16409,16410,4,0),(12966,'19186',16413,16414,4,0),(12967,'19187',17203,17204,4,0),(12968,'19190',16317,16318,4,0),(12969,'19190',17129,17130,4,0),(12970,'19191',17131,17132,4,0),(12971,'19191',16911,16912,4,0),(12972,'19192',16511,16512,4,0),(12973,'19192',16893,16894,4,0),(12974,'19192',17191,17192,4,0),(12975,'19193',16545,16546,4,0),(12976,'19194',16547,16548,4,0),(12977,'19196',16675,16676,4,0),(12978,'19196',17219,17220,4,0),(12979,'19196',16139,16140,4,0),(12980,'19196',16819,16820,4,0),(12981,'19196',17211,17212,4,0),(12982,'19197',16555,16556,4,0),(12983,'19197',16247,16248,4,0),(12984,'19197',16337,16338,4,0),(12985,'19197',17135,17136,4,0),(12986,'19198',17175,17176,4,0),(12987,'19200',16175,16176,4,0),(12988,'19208',16095,16096,4,0),(12989,'19209',16939,16940,4,0),(12990,'19209',17289,17290,4,0),(12991,'19210',17335,17336,4,0),(12992,'19219',16699,16700,4,0),(12993,'19219',17291,17292,4,0),(12994,'19219',16703,16704,4,0),(12995,'19220',16607,16608,4,0),(12996,'19222',17079,17080,4,0),(12997,'19223',16237,16238,4,0),(12998,'19223',16951,16952,4,0),(12999,'19223',16695,16696,4,0),(13000,'19224',17273,17274,4,0),(13001,'19224',16239,16240,4,0),(13002,'19224',17081,17082,4,0),(13003,'19225',16935,16936,4,0),(13004,'19225',16645,16646,4,0),(13005,'19225',17257,17258,4,0),(13006,'19225',16953,16954,4,0),(13007,'19226',17083,17084,4,0),(13008,'19226',16609,16610,4,0),(13009,'19226',16783,16784,4,0),(13010,'19227',17087,17088,4,0),(13011,'19227',16019,16020,4,0),(13012,'19227',16731,16732,4,0),(13013,'19227',16969,16970,4,0),(13014,'19229',16353,16354,4,0),(13015,'19229',16807,16808,4,0),(13016,'19229',16611,16612,4,0),(13017,'19229',16931,16932,4,0),(13018,'19230',16355,16356,4,0),(13019,'19237',16131,16132,4,0),(13020,'19237',17009,17010,4,0),(13021,'19237',16357,16358,4,0),(13022,'19237',16485,16486,4,0),(13023,'19237',17347,17348,4,0),(13024,'19238',16641,16642,4,0),(13025,'19238',16421,16422,4,0),(13026,'19239',16359,16360,4,0),(13027,'19239',16799,16800,4,0),(13028,'19240',16627,16628,4,0),(13029,'19242',16563,16564,4,0),(13030,'19243',16523,16524,4,0),(13031,'19243',16373,16374,4,0),(13032,'19243',17295,17296,4,0),(13033,'19243',16659,16660,4,0),(13034,'19243',16973,16974,4,0),(13035,'19243',16225,16226,4,0),(13036,'19243',16915,16916,4,0),(13037,'19244',16423,16424,4,0),(13038,'19244',16671,16672,4,0),(13039,'19244',16367,16368,4,0),(13040,'19245',16105,16106,4,0),(13041,'19245',16289,16290,4,0),(13042,'19245',17151,17152,4,0),(13043,'19245',16293,16294,4,0),(13044,'19245',16841,16842,4,0),(13045,'19245',16943,16944,4,0),(13046,'19245',17017,17018,4,0),(13047,'19245',16633,16634,4,0),(13048,'19245',16823,16824,4,0),(13049,'19246',16747,16748,4,0),(13050,'19246',16265,16266,4,0),(13051,'19246',16883,16884,4,0),(13052,'19246',16775,16776,4,0),(13053,'19246',16629,16630,4,0),(13054,'19246',17285,17286,4,0),(13055,'19247',16755,16756,4,0),(13056,'19247',16459,16460,4,0),(13057,'19247',16221,16222,4,0),(13058,'19248',16571,16572,4,0),(13059,'19250',17045,17046,4,0),(13060,'19260',16045,16046,4,0),(13061,'19261',16047,16048,4,0),(13062,'19261',16687,16688,4,0),(13063,'19262',16473,16474,4,0),(13064,'19262',17047,17048,4,0),(13065,'19262',17021,17022,4,0),(13066,'19263',17049,17050,4,0),(13067,'19264',17051,17052,4,0),(13068,'19265',17053,17054,4,0),(13069,'19266',17055,17056,4,0),(13070,'19266',16655,16656,4,0),(13071,'19267',17057,17058,4,0),(13072,'19268',16065,16066,4,0),(13073,'19268',17155,17156,4,0),(13074,'19268',16771,16772,4,0),(13075,'19268',17059,17060,4,0),(13076,'19269',17241,17242,4,0),(13077,'19269',17041,17042,4,0),(13078,'19269',16965,16966,4,0),(13079,'19269',16849,16850,4,0),(13080,'19269',17061,17062,4,0),(13081,'19270',16159,16160,4,0),(13082,'19273',16917,16918,4,0),(13083,'19274',16255,16256,4,0),(13084,'19274',16649,16650,4,0),(13085,'19274',16161,16162,4,0),(13086,'19275',16369,16370,4,0),(13087,'19275',16257,16258,4,0),(13088,'19275',17071,17072,4,0),(13089,'19275',16243,16244,4,0),(13090,'19275',16363,16364,4,0),(13091,'19275',16033,16034,4,0),(13092,'19275',16519,16520,4,0),(13093,'19276',16759,16760,4,0),(13094,'19276',16567,16568,4,0),(13095,'19276',16163,16164,4,0),(13096,'19276',17207,17208,4,0),(13097,'19276',16187,16188,4,0),(13098,'19276',16977,16978,4,0),(13099,'19277',16041,16042,4,0),(13100,'19277',16333,16334,4,0),(13101,'19277',17121,17122,4,0),(13102,'19277',16165,16166,4,0),(13103,'19277',16851,16852,4,0),(13104,'19278',16637,16638,4,0),(13105,'19278',16651,16652,4,0),(13106,'19280',16715,16716,4,0),(13107,'19281',16717,16718,4,0),(13108,'19282',16109,16110,4,0),(13109,'19283',16619,16620,4,0),(13110,'19283',16111,16112,4,0),(13111,'19284',16049,16050,4,0),(13112,'19285',16341,16342,4,0),(13113,'19285',16691,16692,4,0),(13114,'19286',16117,16118,4,0),(13115,'19286',16739,16740,4,0),(13116,'19287',16497,16498,4,0),(13117,'19287',17095,17096,4,0),(13118,'19287',16119,16120,4,0),(13119,'19287',16767,16768,4,0),(13120,'19287',16469,16470,4,0),(13121,'19287',16719,16720,4,0),(13122,'19290',16477,16478,4,0),(13123,'19292',16377,16378,4,0),(13124,'19292',16461,16462,4,0),(13125,'19294',16707,16708,4,0),(13126,'19294',16273,16274,4,0),(13127,'19294',17299,17300,4,0),(13128,'19294',16735,16736,4,0),(13129,'19295',16595,16596,4,0),(13130,'19295',16179,16180,4,0),(13131,'19295',17277,17278,4,0),(13132,'19295',17063,17064,4,0),(13133,'19300',16787,16788,4,0),(13134,'19310',16301,16302,4,0),(13135,'19310',16305,16306,4,0),(13136,'19310',16053,16054,4,0),(13137,'19311',16837,16838,4,0),(13138,'19312',17109,17110,4,0),(13139,'19312',16887,16888,4,0),(13140,'19312',17187,17188,4,0),(13141,'19313',16875,16876,4,0),(13142,'19314',17091,17092,4,0),(13143,'19315',16751,16752,4,0),(13144,'19320',16099,16100,4,0),(13145,'19321',16101,16102,4,0),(13146,'19323',17125,17126,4,0),(13147,'19324',17037,17038,4,0),(13148,'19325',16897,16898,4,0),(13149,'19325',16011,16012,4,0),(13150,'19325',17117,17118,4,0),(13151,'19326',16431,16432,4,0),(13152,'19327',16427,16428,4,0),(13153,'19328',16815,16816,4,0),(13154,'19328',16277,16278,4,0),(13155,'19328',16575,16576,4,0),(13156,'19332',16061,16062,4,0),(13157,'19332',17097,17098,4,0),(13158,'19332',16779,16780,4,0),(13159,'19332',17307,17308,4,0),(13160,'19333',17099,17100,4,0),(13161,'19334',17101,17102,4,0),(13162,'19334',16381,16382,4,0),(13163,'19336',16845,16846,4,0),(13164,'19337',17171,17172,4,0),(13165,'19338',17179,17180,4,0),(13166,'19339',16985,16986,4,0),(13167,'19339',16443,16444,4,0),(13168,'19340',16961,16962,4,0),(13169,'19341',16383,16384,4,0),(13170,'19342',16559,16560,4,0),(13171,'19343',16385,16386,4,0),(13172,'19345',17163,17164,4,0),(13173,'19346',17029,17030,4,0),(13174,'19346',17033,17034,4,0),(13175,'19350',16789,16790,4,0),(13176,'19351',16791,16792,4,0),(13177,'19352',16921,16922,4,0),(13178,'19353',16923,16924,4,0),(13179,'19354',16925,16926,4,0),(13180,'19355',17139,17140,4,0),(13181,'19357',16123,16124,4,0),(13182,'19360',16233,16234,4,0),(13183,'19361',16663,16664,4,0),(13184,'19362',16793,16794,4,0),(13185,'19363',16795,16796,4,0),(13186,'19390',17265,17266,4,0),(13187,'19390',16481,16482,4,0),(13188,'19390',17113,17114,4,0),(13189,'19390',16507,16508,4,0),(13190,'19390',16183,16184,4,0),(13191,'19390',16387,16388,4,0),(13192,'19391',16927,16928,4,0),(13193,'19391',16285,16286,4,0),(13194,'19391',17167,17168,4,0),(13195,'19392',16389,16390,4,0),(13196,'19400',16199,16200,4,0),(13197,'19410',16201,16202,4,0),(13198,'19411',16203,16204,4,0),(13199,'19411',17261,17262,4,0),(13200,'19412',16269,16270,4,0),(13201,'19412',16205,16206,4,0),(13202,'19412',17237,17238,4,0),(13203,'19413',16207,16208,4,0),(13204,'19414',16209,16210,4,0),(13205,'19420',16321,16322,4,0),(13206,'19428',16323,16324,4,0),(13207,'19429',16325,16326,4,0),(13208,'19431',16327,16328,4,0),(13209,'19431',17143,17144,4,0),(13210,'19431',16251,16252,4,0),(13211,'19432',16827,16828,4,0),(13212,'19432',16989,16990,4,0),(13213,'19432',17157,17158,4,0),(13214,'19432',16003,16004,4,0),(13215,'19441',16957,16958,4,0),(13216,'19441',16599,16600,4,0),(13217,'19442',16007,16008,4,0),(13218,'19443',17001,17002,4,0),(13219,'19443',16831,16832,4,0),(13220,'19443',16345,16346,4,0),(13221,'19444',17339,17340,4,0),(13222,'19444',16833,16834,4,0),(13223,'19445',16113,16114,4,0),(13224,'19445',17075,17076,4,0),(13225,'19445',16591,16592,4,0),(13226,'19445',16465,16466,4,0),(13227,'19450',17195,17196,4,0),(13228,'19458',17197,17198,4,0),(13229,'19459',16329,16330,4,0),(13230,'19459',16217,16218,4,0),(13231,'19460',17281,17282,4,0),(13232,'19461',17341,17342,4,0),(13233,'19461',16143,16144,4,0),(13234,'19462',16867,16868,4,0),(13235,'19463',16901,16902,4,0),(13236,'19490',16015,16016,4,0),(13237,'19490',16727,16728,4,0),(13238,'19490',16211,16212,4,0),(13239,'19490',17253,17254,4,0),(13240,'19490',16077,16078,4,0),(13241,'19490',16191,16192,4,0),(13242,'19490',16349,16350,4,0),(13243,'19491',16551,16552,4,0),(13244,'19491',17067,17068,4,0),(13245,'19491',16667,16668,4,0),(13246,'19491',16439,16440,4,0),(13247,'19491',17159,17160,4,0),(13248,'19492',17269,17270,4,0),(13249,'19492',16859,16860,4,0),(13250,'19492',17199,17200,4,0),(13251,'19492',16135,16136,4,0),(13252,'19492',16435,16436,4,0),(13253,'19493',16879,16880,4,0),(13254,'19495',17343,17344,4,0),(13255,'19680',15887,15888,4,0),(13256,'20001',17493,17494,4,0),(13257,'20002',17495,17496,4,0),(13258,'20003',17497,17498,4,0),(13259,'20004',17499,17500,4,0),(13260,'20005',17501,17502,4,0),(13261,'20006',17503,17504,4,0),(13262,'20007',17505,17506,4,0),(13263,'20008',17507,17508,4,0),(13264,'20009',17509,17510,4,0),(13265,'20010',17511,17512,4,0),(13266,'20011',17513,17514,4,0),(13267,'20012',17515,17516,4,0),(13268,'20013',17517,17518,4,0),(13269,'20014',17519,17520,4,0),(13270,'20015',17521,17522,4,0),(13271,'20016',17523,17524,4,0),(13272,'20017',17525,17526,4,0),(13273,'20018',17527,17528,4,0),(13274,'20100',17553,17554,4,0),(13275,'20100',17529,17530,4,0),(13276,'20100',17667,17668,4,0),(13277,'20110',17725,17726,4,0),(13278,'20115',17429,17430,4,0),(13279,'20120',17589,17590,4,0),(13280,'20128',17591,17592,4,0),(13281,'20130',17747,17748,4,0),(13282,'20130',17755,17756,4,0),(13283,'20140',17399,17400,4,0),(13284,'20150',17361,17362,4,0),(13285,'20150',17761,17762,4,0),(13286,'20159',17425,17426,4,0),(13287,'20159',17635,17636,4,0),(13288,'20159',17787,17788,4,0),(13289,'20160',17531,17532,4,0),(13290,'20160',17639,17640,4,0),(13291,'20170',17757,17758,4,0),(13292,'20180',17687,17688,4,0),(13293,'20200',17449,17450,4,0),(13294,'20210',17643,17644,4,0),(13295,'20211',17433,17434,4,0),(13296,'20212',17691,17692,4,0),(13297,'20213',17607,17608,4,0),(13298,'20214',17679,17680,4,0),(13299,'20214',17777,17778,4,0),(13300,'20214',17729,17730,4,0),(13301,'20215',17773,17774,4,0),(13302,'20216',17721,17722,4,0),(13303,'20217',17573,17574,4,0),(13304,'20218',17567,17568,4,0),(13305,'20220',17651,17652,4,0),(13306,'20230',17653,17654,4,0),(13307,'20240',17705,17706,4,0),(13308,'20247',17765,17766,4,0),(13309,'20248',17387,17388,4,0),(13310,'20248',17577,17578,4,0),(13311,'20248',17411,17412,4,0),(13312,'20249',17631,17632,4,0),(13313,'20250',17657,17658,4,0),(13314,'20259',17445,17446,4,0),(13315,'20260',17379,17380,4,0),(13316,'20267',17611,17612,4,0),(13317,'20267',17737,17738,4,0),(13318,'20268',17739,17740,4,0),(13319,'20268',17391,17392,4,0),(13320,'20268',17395,17396,4,0),(13321,'20269',17357,17358,4,0),(13322,'20269',17709,17710,4,0),(13323,'20270',17403,17404,4,0),(13324,'20271',17627,17628,4,0),(13325,'20280',17599,17600,4,0),(13326,'20301',17615,17616,4,0),(13327,'20302',17617,17618,4,0),(13328,'20303',17619,17620,4,0),(13329,'20304',17621,17622,4,0),(13330,'20305',17623,17624,4,0),(13331,'20400',17741,17742,4,0),(13332,'20400',17603,17604,4,0),(13333,'20490',17713,17714,4,0),(13334,'20490',17671,17672,4,0),(13335,'20491',17457,17458,4,0),(13336,'20491',17581,17582,4,0),(13337,'20491',17647,17648,4,0),(13338,'20492',17461,17462,4,0),(13339,'20493',17479,17480,4,0),(13340,'20493',17539,17540,4,0),(13341,'20493',17463,17464,4,0),(13342,'20494',17383,17384,4,0),(13343,'20494',17743,17744,4,0),(13344,'20494',17595,17596,4,0),(13345,'20495',17375,17376,4,0),(13346,'20496',17483,17484,4,0),(13347,'20500',17419,17420,4,0),(13348,'20509',17421,17422,4,0),(13349,'20530',17561,17562,4,0),(13350,'20530',17661,17662,4,0),(13351,'20540',17563,17564,4,0),(13352,'20550',17415,17416,4,0),(13353,'20560',17695,17696,4,0),(13354,'20567',17697,17698,4,0),(13355,'20568',17699,17700,4,0),(13356,'20569',17467,17468,4,0),(13357,'20569',17701,17702,4,0),(13358,'20570',17469,17470,4,0),(13359,'20577',17407,17408,4,0),(13360,'20578',17471,17472,4,0),(13361,'20580',17473,17474,4,0),(13362,'20590',17733,17734,4,0),(13363,'20600',17535,17536,4,0),(13364,'20690',17543,17544,4,0),(13365,'20700',17751,17752,4,0),(13366,'20700',17795,17796,4,0),(13367,'20709',17569,17570,4,0),(13368,'20720',17437,17438,4,0),(13369,'20730',17441,17442,4,0),(13370,'20737',17557,17558,4,0),(13371,'20739',17453,17454,4,0),(13372,'20740',17781,17782,4,0),(13373,'20749',17371,17372,4,0),(13374,'20749',17783,17784,4,0),(13375,'20750',17791,17792,4,0),(13376,'20800',17769,17770,4,0),(13377,'20808',17585,17586,4,0),(13378,'20809',17365,17366,4,0),(13379,'20810',17717,17718,4,0),(13380,'20810',17367,17368,4,0),(13381,'20820',17487,17488,4,0),(13382,'20829',17489,17490,4,0),(13383,'20830',17683,17684,4,0),(13384,'20850',17675,17676,4,0),(13385,'20860',17547,17548,4,0),(13386,'20870',17549,17550,4,0),(13387,'21000',18037,18038,4,0),(13388,'21001',18039,18040,4,0),(13389,'21002',18041,18042,4,0),(13390,'21003',18043,18044,4,0),(13391,'21004',18045,18046,4,0),(13392,'21005',18047,18048,4,0),(13393,'21006',18049,18050,4,0),(13394,'21007',18051,18052,4,0),(13395,'21009',17875,17876,4,0),(13396,'21100',17805,17806,4,0),(13397,'21100',18159,18160,4,0),(13398,'21110',17807,17808,4,0),(13399,'21110',18161,18162,4,0),(13400,'21120',17809,17810,4,0),(13401,'21122',17811,17812,4,0),(13402,'21130',18129,18130,4,0),(13403,'21130',18115,18116,4,0),(13404,'21193',23359,23360,4,0),(13405,'21200',17849,17850,4,0),(13406,'21207',17851,17852,4,0),(13407,'21207',18093,18094,4,0),(13408,'21208',17853,17854,4,0),(13409,'21208',18097,18098,4,0),(13410,'21208',17967,17968,4,0),(13411,'21209',17955,17956,4,0),(13412,'21209',18155,18156,4,0),(13413,'21209',17855,17856,4,0),(13414,'21210',18253,18254,4,0),(13415,'21220',18025,18026,4,0),(13416,'21230',17959,17960,4,0),(13417,'21239',18195,18196,4,0),(13418,'21239',17961,17962,4,0),(13419,'21239',17859,17860,4,0),(13420,'21240',17861,17862,4,0),(13421,'21248',17863,17864,4,0),(13422,'21250',18171,18172,4,0),(13423,'21260',18205,18206,4,0),(13424,'21270',17917,17918,4,0),(13425,'21280',17871,17872,4,0),(13426,'21290',18067,18068,4,0),(13427,'21290',17815,17816,4,0),(13428,'21291',18077,18078,4,0),(13429,'21291',17889,17890,4,0),(13430,'21291',18017,18018,4,0),(13431,'21291',18215,18216,4,0),(13432,'21292',17947,17948,4,0),(13433,'21292',18013,18014,4,0),(13434,'21300',17921,17922,4,0),(13435,'21309',17923,17924,4,0),(13436,'21310',17925,17926,4,0),(13437,'21319',17927,17928,4,0),(13438,'21320',17993,17994,4,0),(13439,'21330',17963,17964,4,0),(13440,'21330',17995,17996,4,0),(13441,'21330',17817,17818,4,0),(13442,'21340',17865,17866,4,0),(13443,'21340',17801,17802,4,0),(13444,'21342',17819,17820,4,0),(13445,'21350',17821,17822,4,0),(13446,'21359',18197,18198,4,0),(13447,'21359',17823,17824,4,0),(13448,'21360',18069,18070,4,0),(13449,'21380',17979,17980,4,0),(13450,'21386',17975,17976,4,0),(13451,'21387',17971,17972,4,0),(13452,'21388',18029,18030,4,0),(13453,'21388',17935,17936,4,0),(13454,'21390',18005,18006,4,0),(13455,'21400',18055,18056,4,0),(13456,'21400',18085,18086,4,0),(13457,'21400',17877,17878,4,0),(13458,'21409',17879,17880,4,0),(13459,'21410',18057,18058,4,0),(13460,'21420',17881,17882,4,0),(13461,'21420',18059,18060,4,0),(13462,'21430',18061,18062,4,0),(13463,'21440',17883,17884,4,0),(13464,'21440',18087,18088,4,0),(13465,'21449',18089,18090,4,0),(13466,'21450',17939,17940,4,0),(13467,'21459',17941,17942,4,0),(13468,'21459',18163,18164,4,0),(13469,'21460',18063,18064,4,0),(13470,'21500',18021,18022,4,0),(13471,'21510',18175,18176,4,0),(13472,'21520',18177,18178,4,0),(13473,'21520',17843,17844,4,0),(13474,'21530',17845,17846,4,0),(13475,'21540',17943,17944,4,0),(13476,'21540',18235,18236,4,0),(13477,'21550',18149,18150,4,0),(13478,'21559',18151,18152,4,0),(13479,'21560',18145,18146,4,0),(13480,'21570',18201,18202,4,0),(13481,'21580',17867,17868,4,0),(13482,'21580',17913,17914,4,0),(13483,'21580',17997,17998,4,0),(13484,'21590',18223,18224,4,0),(13485,'21591',18187,18188,4,0),(13486,'21592',18231,18232,4,0),(13487,'21593',17983,17984,4,0),(13488,'21594',18001,18002,4,0),(13489,'21595',18191,18192,4,0),(13490,'21600',18219,18220,4,0),(13491,'21609',17891,17892,4,0),(13492,'21610',18181,18182,4,0),(13493,'21620',18207,18208,4,0),(13494,'21620',18211,18212,4,0),(13495,'21630',17893,17894,4,0),(13496,'21639',18183,18184,4,0),(13497,'21639',17895,17896,4,0),(13498,'21640',18243,18244,4,0),(13499,'21646',17825,17826,4,0),(13500,'21647',17899,17900,4,0),(13501,'21647',18245,18246,4,0),(13502,'21649',18247,18248,4,0),(13503,'21660',18109,18110,4,0),(13504,'21667',18111,18112,4,0),(13505,'21668',18073,18074,4,0),(13506,'21668',18249,18250,4,0),(13507,'21668',17931,17932,4,0),(13508,'21669',17827,17828,4,0),(13509,'21670',18121,18122,4,0),(13510,'21700',18081,18082,4,0),(13511,'21710',17905,17906,4,0),(13512,'21710',17831,17832,4,0),(13513,'21720',18167,18168,4,0),(13514,'21730',17833,17834,4,0),(13515,'21739',17835,17836,4,0),(13516,'21740',18033,18034,4,0),(13517,'21750',17837,17838,4,0),(13518,'21760',17839,17840,4,0),(13519,'21800',18131,18132,4,0),(13520,'21800',18117,18118,4,0),(13521,'21810',18133,18134,4,0),(13522,'21819',18135,18136,4,0),(13523,'21820',18101,18102,4,0),(13524,'21830',17909,17910,4,0),(13525,'21840',18125,18126,4,0),(13526,'21850',18239,18240,4,0),(13527,'21860',18227,18228,4,0),(13528,'21870',18009,18010,4,0),(13529,'21880',18139,18140,4,0),(13530,'21888',18141,18142,4,0),(13531,'21890',18105,18106,4,0),(13532,'21891',17951,17952,4,0),(13533,'22000',18843,18844,4,0),(13534,'22001',18845,18846,4,0),(13535,'22002',18847,18848,4,0),(13536,'22003',18849,18850,4,0),(13537,'22004',18851,18852,4,0),(13538,'22005',18853,18854,4,0),(13539,'22006',18855,18856,4,0),(13540,'22080',18857,18858,4,0),(13541,'22090',18859,18860,4,0),(13542,'22092',18861,18862,4,0),(13543,'22094',18863,18864,4,0),(13544,'22097',18865,18866,4,0),(13545,'22100',19269,19270,4,0),(13546,'22110',19327,19328,4,0),(13547,'22110',19239,19240,4,0),(13548,'22111',19045,19046,4,0),(13549,'22112',18313,18314,4,0),(13550,'22113',19075,19076,4,0),(13551,'22120',19335,19336,4,0),(13552,'22121',19337,19338,4,0),(13553,'22122',18877,18878,4,0),(13554,'22122',19339,19340,4,0),(13555,'22122',18381,18382,4,0),(13556,'22123',18383,18384,4,0),(13557,'22124',18997,18998,4,0),(13558,'22125',18959,18960,4,0),(13559,'22126',18979,18980,4,0),(13560,'22130',19115,19116,4,0),(13561,'22131',19117,19118,4,0),(13562,'22131',18511,18512,4,0),(13563,'22132',19399,19400,4,0),(13564,'22132',19139,19140,4,0),(13565,'22132',18469,18470,4,0),(13566,'22133',18395,18396,4,0),(13567,'22133',18565,18566,4,0),(13568,'22133',18385,18386,4,0),(13569,'22134',18567,18568,4,0),(13570,'22135',18331,18332,4,0),(13571,'22135',18407,18408,4,0),(13572,'22140',19023,19024,4,0),(13573,'22141',19025,19026,4,0),(13574,'22141',18523,18524,4,0),(13575,'22141',18651,18652,4,0),(13576,'22142',18653,18654,4,0),(13577,'22143',18259,18260,4,0),(13578,'22144',18525,18526,4,0),(13579,'22145',18373,18374,4,0),(13580,'22146',19285,19286,4,0),(13581,'22147',18261,18262,4,0),(13582,'22147',18271,18272,4,0),(13583,'22148',18711,18712,4,0),(13584,'22148',18473,18474,4,0),(13585,'22149',18279,18280,4,0),(13586,'22149',18475,18476,4,0),(13587,'22150',18411,18412,4,0),(13588,'22160',18945,18946,4,0),(13589,'22161',18947,18948,4,0),(13590,'22162',18949,18950,4,0),(13591,'22190',19449,19450,4,0),(13592,'22191',19183,19184,4,0),(13593,'22192',19027,19028,4,0),(13594,'22192',19367,19368,4,0),(13595,'22193',18881,18882,4,0),(13596,'22193',19079,19080,4,0),(13597,'22194',18707,18708,4,0),(13598,'22194',18867,18868,4,0),(13599,'22194',18347,18348,4,0),(13600,'22194',18455,18456,4,0),(13601,'22195',18869,18870,4,0),(13602,'22196',18871,18872,4,0),(13603,'22196',19047,19048,4,0),(13604,'22197',18873,18874,4,0),(13605,'22200',19297,19298,4,0),(13606,'22210',18837,18838,4,0),(13607,'22211',18839,18840,4,0),(13608,'22212',18963,18964,4,0),(13609,'22212',18641,18642,4,0),(13610,'22212',18321,18322,4,0),(13611,'22213',18971,18972,4,0),(13612,'22213',19299,19300,4,0),(13613,'22214',18965,18966,4,0),(13614,'22215',19301,19302,4,0),(13615,'22215',18673,18674,4,0),(13616,'22215',19119,19120,4,0),(13617,'22216',19153,19154,4,0),(13618,'22216',18973,18974,4,0),(13619,'22220',18305,18306,4,0),(13620,'22221',19303,19304,4,0),(13621,'22222',18657,18658,4,0),(13622,'22223',19411,19412,4,0),(13623,'22225',18789,18790,4,0),(13624,'22230',19319,19320,4,0),(13625,'22231',19461,19462,4,0),(13626,'22232',19089,19090,4,0),(13627,'22233',18699,18700,4,0),(13628,'22234',18451,18452,4,0),(13629,'22240',19355,19356,4,0),(13630,'22250',18975,18976,4,0),(13631,'22251',18343,18344,4,0),(13632,'22252',19187,19188,4,0),(13633,'22253',19323,19324,4,0),(13634,'22254',19383,19384,4,0),(13635,'22255',19403,19404,4,0),(13636,'22255',18465,18466,4,0),(13637,'22255',18317,18318,4,0),(13638,'22255',18791,18792,4,0),(13639,'22255',18367,18368,4,0),(13640,'22260',18793,18794,4,0),(13641,'22268',18795,18796,4,0),(13642,'22268',19407,19408,4,0),(13643,'22268',19143,19144,4,0),(13644,'22268',18967,18968,4,0),(13645,'22269',18369,18370,4,0),(13646,'22269',18797,18798,4,0),(13647,'22270',18355,18356,4,0),(13648,'22280',18821,18822,4,0),(13649,'22281',18823,18824,4,0),(13650,'22282',18325,18326,4,0),(13651,'22283',18327,18328,4,0),(13652,'22283',18357,18358,4,0),(13653,'22300',18459,18460,4,0),(13654,'22310',18669,18670,4,0),(13655,'22311',19131,19132,4,0),(13656,'22311',18427,18428,4,0),(13657,'22311',18431,18432,4,0),(13658,'22312',18831,18832,4,0),(13659,'22312',18715,18716,4,0),(13660,'22313',18689,18690,4,0),(13661,'22313',19157,19158,4,0),(13662,'22313',19287,19288,4,0),(13663,'22314',19229,19230,4,0),(13664,'22314',19235,19236,4,0),(13665,'22315',18461,18462,4,0),(13666,'22315',18833,18834,4,0),(13667,'22320',18477,18478,4,0),(13668,'22320',19069,19070,4,0),(13669,'22330',18281,18282,4,0),(13670,'22336',18283,18284,4,0),(13671,'22336',18929,18930,4,0),(13672,'22337',18765,18766,4,0),(13673,'22337',19099,19100,4,0),(13674,'22337',18931,18932,4,0),(13675,'22338',18721,18722,4,0),(13676,'22339',18285,18286,4,0),(13677,'22340',18571,18572,4,0),(13678,'22347',18573,18574,4,0),(13679,'22348',18575,18576,4,0),(13680,'22349',18897,18898,4,0),(13681,'22349',18577,18578,4,0),(13682,'22349',18287,18288,4,0),(13683,'22350',18515,18516,4,0),(13684,'22351',18517,18518,4,0),(13685,'22360',18955,18956,4,0),(13686,'22361',19015,19016,4,0),(13687,'22362',19173,19174,4,0),(13688,'22363',19175,19176,4,0),(13689,'22364',19359,19360,4,0),(13690,'22365',18519,18520,4,0),(13691,'22365',19361,19362,4,0),(13692,'22366',19363,19364,4,0),(13693,'22366',19147,19148,4,0),(13694,'22367',18785,18786,4,0),(13695,'22367',19257,19258,4,0),(13696,'22367',19149,19150,4,0),(13697,'22370',18591,18592,4,0),(13698,'22371',18751,18752,4,0),(13699,'22372',18593,18594,4,0),(13700,'22372',18753,18754,4,0),(13701,'22373',18595,18596,4,0),(13702,'22373',18755,18756,4,0),(13703,'22374',18597,18598,4,0),(13704,'22375',18747,18748,4,0),(13705,'22375',18599,18600,4,0),(13706,'22376',19375,19376,4,0),(13707,'22377',19377,19378,4,0),(13708,'22378',19379,19380,4,0),(13709,'22390',18717,18718,4,0),(13710,'22391',19307,19308,4,0),(13711,'22392',18265,18266,4,0),(13712,'22392',19191,19192,4,0),(13713,'22393',19071,19072,4,0),(13714,'22393',18267,18268,4,0),(13715,'22394',18933,18934,4,0),(13716,'22394',18289,18290,4,0),(13717,'22395',18291,18292,4,0),(13718,'22400',17885,17886,4,0),(13719,'22400',19061,19062,4,0),(13720,'22410',18339,18340,4,0),(13721,'22411',19261,19262,4,0),(13722,'22412',19263,19264,4,0),(13723,'22413',19265,19266,4,0),(13724,'22414',19063,19064,4,0),(13725,'22415',18885,18886,4,0),(13726,'22415',19065,19066,4,0),(13727,'22416',18351,18352,4,0),(13728,'22416',19179,19180,4,0),(13729,'22417',18361,18362,4,0),(13730,'22417',18759,18760,4,0),(13731,'22420',18363,18364,4,0),(13732,'22421',18423,18424,4,0),(13733,'22422',18761,18762,4,0),(13734,'22423',18733,18734,4,0),(13735,'22424',18729,18730,4,0),(13736,'22430',18801,18802,4,0),(13737,'22435',18941,18942,4,0),(13738,'22436',18983,18984,4,0),(13739,'22436',18803,18804,4,0),(13740,'22437',18805,18806,4,0),(13741,'22438',18935,18936,4,0),(13742,'22438',18807,18808,4,0),(13743,'22439',19309,19310,4,0),(13744,'22439',19085,19086,4,0),(13745,'22440',18497,18498,4,0),(13746,'22449',18499,18500,4,0),(13747,'22450',18611,18612,4,0),(13748,'22450',18767,18768,4,0),(13749,'22451',18613,18614,4,0),(13750,'22451',18769,18770,4,0),(13751,'22451',19387,19388,4,0),(13752,'22451',19415,19416,4,0),(13753,'22451',19429,19430,4,0),(13754,'22452',18937,18938,4,0),(13755,'22452',18771,18772,4,0),(13756,'22460',19135,19136,4,0),(13757,'22460',19291,19292,4,0),(13758,'22461',18809,18810,4,0),(13759,'22461',18579,18580,4,0),(13760,'22461',19293,19294,4,0),(13761,'22462',18889,18890,4,0),(13762,'22462',18773,18774,4,0),(13763,'22463',19313,19314,4,0),(13764,'22464',19315,19316,4,0),(13765,'22465',18661,18662,4,0),(13766,'22465',18703,18704,4,0),(13767,'22466',18663,18664,4,0),(13768,'22466',18555,18556,4,0),(13769,'22467',19453,19454,4,0),(13770,'22467',18665,18666,4,0),(13771,'22467',19331,19332,4,0),(13772,'22467',19221,19222,4,0),(13773,'22468',19223,19224,4,0),(13774,'22469',19225,19226,4,0),(13775,'22469',18501,18502,4,0),(13776,'22470',18557,18558,4,0),(13777,'22471',19005,19006,4,0),(13778,'22472',19007,19008,4,0),(13779,'22473',19009,19010,4,0),(13780,'22473',19051,19052,4,0),(13781,'22474',19053,19054,4,0),(13782,'22474',19011,19012,4,0),(13783,'22480',18811,18812,4,0),(13784,'22480',18645,18646,4,0),(13785,'22481',18813,18814,4,0),(13786,'22482',18891,18892,4,0),(13787,'22483',19431,19432,4,0),(13788,'22483',19389,19390,4,0),(13789,'22483',18893,18894,4,0),(13790,'22484',18505,18506,4,0),(13791,'22484',19391,19392,4,0),(13792,'22485',18507,18508,4,0),(13793,'22486',19055,19056,4,0),(13794,'22486',18583,18584,4,0),(13795,'22487',19057,19058,4,0),(13796,'22500',18551,18552,4,0),(13797,'22510',18545,18546,4,0),(13798,'22511',18547,18548,4,0),(13799,'22512',19253,19254,4,0),(13800,'22513',19123,19124,4,0),(13801,'22514',19125,19126,4,0),(13802,'22520',18777,18778,4,0),(13803,'22528',19435,19436,4,0),(13804,'22529',18779,18780,4,0),(13805,'22530',19475,19476,4,0),(13806,'22531',19093,19094,4,0),(13807,'22532',19095,19096,4,0),(13808,'22533',18483,18484,4,0),(13809,'22534',18301,18302,4,0),(13810,'22535',18725,18726,4,0),(13811,'22536',18485,18486,4,0),(13812,'22540',18377,18378,4,0),(13813,'22549',19347,19348,4,0),(13814,'22549',19439,19440,4,0),(13815,'22549',18487,18488,4,0),(13816,'22550',19349,19350,4,0),(13817,'22558',18309,18310,4,0),(13818,'22559',19351,19352,4,0),(13819,'22560',18335,18336,4,0),(13820,'22569',18435,18436,4,0),(13821,'22569',19127,19128,4,0),(13822,'22570',18693,18694,4,0),(13823,'22570',18617,18618,4,0),(13824,'22571',18447,18448,4,0),(13825,'22572',18695,18696,4,0),(13826,'22572',18737,18738,4,0),(13827,'22580',18491,18492,4,0),(13828,'22583',19343,19344,4,0),(13829,'22583',24599,24600,4,0),(13830,'22583',18403,18404,4,0),(13831,'22584',19161,19162,4,0),(13832,'22584',19443,19444,4,0),(13833,'22584',24601,24602,4,0),(13834,'22585',18479,18480,4,0),(13835,'22585',18781,18782,4,0),(13836,'22585',19231,19232,4,0),(13837,'22585',19371,19372,4,0),(13838,'22585',19445,19446,4,0),(13839,'22585',18683,18684,4,0),(13840,'22586',19001,19002,4,0),(13841,'22587',18685,18686,4,0),(13842,'22587',18647,18648,4,0),(13843,'22587',19041,19042,4,0),(13844,'22588',18815,18816,4,0),(13845,'22589',18493,18494,4,0),(13846,'22589',18739,18740,4,0),(13847,'22590',19395,19396,4,0),(13848,'22591',18631,18632,4,0),(13849,'22592',19111,19112,4,0),(13850,'22600',19193,19194,4,0),(13851,'22609',19195,19196,4,0),(13852,'22610',19197,19198,4,0),(13853,'22610',19465,19466,4,0),(13854,'22611',19467,19468,4,0),(13855,'22612',19199,19200,4,0),(13856,'22613',19201,19202,4,0),(13857,'22613',18529,18530,4,0),(13858,'22620',18899,18900,4,0),(13859,'22620',19203,19204,4,0),(13860,'22621',18901,18902,4,0),(13861,'22621',19205,19206,4,0),(13862,'22622',19081,19082,4,0),(13863,'22622',19207,19208,4,0),(13864,'22623',19209,19210,4,0),(13865,'22624',18603,18604,4,0),(13866,'22625',18605,18606,4,0),(13867,'22630',18531,18532,4,0),(13868,'22636',19211,19212,4,0),(13869,'22636',18533,18534,4,0),(13870,'22637',18535,18536,4,0),(13871,'22638',18537,18538,4,0),(13872,'22639',18539,18540,4,0),(13873,'22639',19471,19472,4,0),(13874,'22640',19243,19244,4,0),(13875,'22650',19103,19104,4,0),(13876,'22660',19245,19246,4,0),(13877,'22661',19105,19106,4,0),(13878,'22662',18827,18828,4,0),(13879,'22662',19107,19108,4,0),(13880,'22663',19247,19248,4,0),(13881,'22664',19249,19250,4,0),(13882,'22665',18541,18542,4,0),(13883,'22666',19213,19214,4,0),(13884,'22700',18903,18904,4,0),(13885,'22710',18677,18678,4,0),(13886,'22710',18905,18906,4,0),(13887,'22711',18907,18908,4,0),(13888,'22712',18909,18910,4,0),(13889,'22713',18911,18912,4,0),(13890,'22714',18913,18914,4,0),(13891,'22714',19215,19216,4,0),(13892,'22715',18915,18916,4,0),(13893,'22720',19419,19420,4,0),(13894,'22725',18389,18390,4,0),(13895,'22728',18391,18392,4,0),(13896,'22729',18743,18744,4,0),(13897,'22730',18399,18400,4,0),(13898,'22731',18925,18926,4,0),(13899,'22732',19421,19422,4,0),(13900,'22740',19423,19424,4,0),(13901,'22750',19165,19166,4,0),(13902,'22751',19167,19168,4,0),(13903,'22751',18439,18440,4,0),(13904,'22752',19273,19274,4,0),(13905,'22753',19169,19170,4,0),(13906,'22760',18441,18442,4,0),(13907,'22761',18443,18444,4,0),(13908,'22770',18621,18622,4,0),(13909,'22771',18623,18624,4,0),(13910,'22772',18625,18626,4,0),(13911,'22773',18627,18628,4,0),(13912,'22790',19425,19426,4,0),(13913,'22791',19275,19276,4,0),(13914,'22791',19279,19280,4,0),(13915,'22792',19281,19282,4,0),(13916,'22800',18415,18416,4,0),(13917,'22807',18417,18418,4,0),(13918,'22807',18561,18562,4,0),(13919,'22808',44319,44320,4,0),(13920,'22808',18985,18986,4,0),(13921,'22808',18275,18276,4,0),(13922,'22809',19031,19032,4,0),(13923,'22809',18419,18420,4,0),(13924,'22809',19019,19020,4,0),(13925,'22810',18951,18952,4,0),(13926,'22810',19035,19036,4,0),(13927,'22811',19037,19038,4,0),(13928,'22820',18987,18988,4,0),(13929,'22821',18989,18990,4,0),(13930,'22822',18991,18992,4,0),(13931,'22830',18993,18994,4,0),(13932,'22830',18607,18608,4,0),(13933,'22830',18917,18918,4,0),(13934,'22830',18817,18818,4,0),(13935,'22850',19217,19218,4,0),(13936,'22850',18919,18920,4,0),(13937,'22860',18679,18680,4,0),(13938,'22860',18295,18296,4,0),(13939,'22860',18587,18588,4,0),(13940,'22870',19457,19458,4,0),(13941,'22880',18635,18636,4,0),(13942,'22888',18637,18638,4,0),(13943,'22889',18921,18922,4,0),(13944,'22889',18297,18298,4,0),(13945,'23001',19747,19748,4,0),(13946,'23002',19749,19750,4,0),(13947,'23003',19751,19752,4,0),(13948,'23004',19753,19754,4,0),(13949,'23005',19755,19756,4,0),(13950,'23006',19757,19758,4,0),(13951,'23007',19759,19760,4,0),(13952,'23008',19761,19762,4,0),(13953,'23009',19763,19764,4,0),(13954,'23100',19839,19840,4,0),(13955,'23110',19889,19890,4,0),(13956,'23120',19603,19604,4,0),(13957,'23130',19609,19610,4,0),(13958,'23140',19873,19874,4,0),(13959,'23150',20019,20020,4,0),(13960,'23159',20021,20022,4,0),(13961,'23160',19829,19830,4,0),(13962,'23170',19793,19794,4,0),(13963,'23180',19691,19692,4,0),(13964,'23190',19891,19892,4,0),(13965,'23191',19621,19622,4,0),(13966,'23192',19623,19624,4,0),(13967,'23193',19605,19606,4,0),(13968,'23194',19765,19766,4,0),(13969,'23196',19767,19768,4,0),(13970,'23196',20023,20024,4,0),(13971,'23200',19785,19786,4,0),(13972,'23210',19699,19700,4,0),(13973,'23211',19617,19618,4,0),(13974,'23212',19787,19788,4,0),(13975,'23213',19929,19930,4,0),(13976,'23214',19789,19790,4,0),(13977,'23214',19563,19564,4,0),(13978,'23215',19513,19514,4,0),(13979,'23220',20027,20028,4,0),(13980,'23230',19535,19536,4,0),(13981,'23239',19537,19538,4,0),(13982,'23240',19869,19870,4,0),(13983,'23250',19953,19954,4,0),(13984,'23260',19627,19628,4,0),(13985,'23264',19651,19652,4,0),(13986,'23265',19861,19862,4,0),(13987,'23266',19863,19864,4,0),(13988,'23267',19865,19866,4,0),(13989,'23268',19653,19654,4,0),(13990,'23269',19655,19656,4,0),(13991,'23270',19977,19978,4,0),(13992,'23280',19569,19570,4,0),(13993,'23289',19541,19542,4,0),(13994,'23289',19571,19572,4,0),(13995,'23290',19937,19938,4,0),(13996,'23291',19939,19940,4,0),(13997,'23292',19711,19712,4,0),(13998,'23293',19961,19962,4,0),(13999,'23293',19713,19714,4,0),(14000,'23294',19941,19942,4,0),(14001,'23294',19963,19964,4,0),(14002,'23295',19965,19966,4,0),(14003,'23296',19943,19944,4,0),(14004,'23297',19945,19946,4,0),(14005,'23298',19947,19948,4,0),(14006,'23300',20035,20036,4,0),(14007,'23310',20037,20038,4,0),(14008,'23311',19957,19958,4,0),(14009,'23312',20039,20040,4,0),(14010,'23314',20007,20008,4,0),(14011,'23315',20041,20042,4,0),(14012,'23320',19995,19996,4,0),(14013,'23330',20051,20052,4,0),(14014,'23337',19715,19716,4,0),(14015,'23338',19737,19738,4,0),(14016,'23339',20053,20054,4,0),(14017,'23340',19967,19968,4,0),(14018,'23340',19543,19544,4,0),(14019,'23350',19905,19906,4,0),(14020,'23359',19907,19908,4,0),(14021,'23360',19803,19804,4,0),(14022,'23369',19805,19806,4,0),(14023,'23370',19877,19878,4,0),(14024,'23379',19969,19970,4,0),(14025,'23380',19973,19974,4,0),(14026,'23390',19591,19592,4,0),(14027,'23391',20003,20004,4,0),(14028,'23392',19695,19696,4,0),(14029,'23393',20061,20062,4,0),(14030,'23400',20009,20010,4,0),(14031,'23410',19925,19926,4,0),(14032,'23411',19547,19548,4,0),(14033,'23412',19919,19920,4,0),(14034,'23413',20011,20012,4,0),(14035,'23420',19613,19614,4,0),(14036,'23430',19921,19922,4,0),(14037,'23440',19549,19550,4,0),(14038,'23450',19731,19732,4,0),(14039,'23460',19881,19882,4,0),(14040,'23468',19883,19884,4,0),(14041,'23469',20013,20014,4,0),(14042,'23469',19641,19642,4,0),(14043,'23470',19659,19660,4,0),(14044,'23470',19643,19644,4,0),(14045,'23476',19797,19798,4,0),(14046,'23477',19661,19662,4,0),(14047,'23478',19949,19950,4,0),(14048,'23479',19799,19800,4,0),(14049,'23479',19645,19646,4,0),(14050,'23480',19911,19912,4,0),(14051,'23485',19647,19648,4,0),(14052,'23485',19899,19900,4,0),(14053,'23485',19885,19886,4,0),(14054,'23486',19901,19902,4,0),(14055,'23486',19707,19708,4,0),(14056,'23487',19727,19728,4,0),(14057,'23488',19913,19914,4,0),(14058,'23488',19675,19676,4,0),(14059,'23489',19915,19916,4,0),(14060,'23490',19817,19818,4,0),(14061,'23490',19733,19734,4,0),(14062,'23499',20029,20030,4,0),(14063,'23500',19781,19782,4,0),(14064,'23509',20015,20016,4,0),(14065,'23510',19981,19982,4,0),(14066,'23519',19833,19834,4,0),(14067,'23519',19983,19984,4,0),(14068,'23520',19581,19582,4,0),(14069,'23528',19835,19836,4,0),(14070,'23529',19841,19842,4,0),(14071,'23529',19551,19552,4,0),(14072,'23529',19583,19584,4,0),(14073,'23529',20065,20066,4,0),(14074,'23530',19777,19778,4,0),(14075,'23537',19575,19576,4,0),(14076,'23538',19481,19482,4,0),(14077,'23539',19553,19554,4,0),(14078,'23539',19577,19578,4,0),(14079,'23540',19999,20000,4,0),(14080,'23550',19595,19596,4,0),(14081,'23560',19721,19722,4,0),(14082,'23568',19587,19588,4,0),(14083,'23569',19723,19724,4,0),(14084,'23569',19717,19718,4,0),(14085,'23590',19597,19598,4,0),(14086,'23591',19813,19814,4,0),(14087,'23591',19599,19600,4,0),(14088,'23600',19849,19850,4,0),(14089,'23610',19685,19686,4,0),(14090,'23611',19703,19704,4,0),(14091,'23612',19933,19934,4,0),(14092,'23614',19851,19852,4,0),(14093,'23615',19853,19854,4,0),(14094,'23616',19687,19688,4,0),(14095,'23620',19857,19858,4,0),(14096,'23628',19669,19670,4,0),(14097,'23628',19637,19638,4,0),(14098,'23629',19741,19742,4,0),(14099,'23630',20067,20068,4,0),(14100,'23638',20069,20070,4,0),(14101,'23639',19769,19770,4,0),(14102,'23640',19987,19988,4,0),(14103,'23650',19991,19992,4,0),(14104,'23657',19665,19666,4,0),(14105,'23658',19773,19774,4,0),(14106,'23659',20057,20058,4,0),(14107,'23660',19505,19506,4,0),(14108,'23669',19507,19508,4,0),(14109,'23670',19631,19632,4,0),(14110,'23680',19485,19486,4,0),(14111,'23684',19487,19488,4,0),(14112,'23685',19489,19490,4,0),(14113,'23685',19509,19510,4,0),(14114,'23686',19491,19492,4,0),(14115,'23686',19677,19678,4,0),(14116,'23687',19493,19494,4,0),(14117,'23688',19495,19496,4,0),(14118,'23689',19497,19498,4,0),(14119,'23690',19679,19680,4,0),(14120,'23691',19499,19500,4,0),(14121,'23691',19681,19682,4,0),(14122,'23692',19501,19502,4,0),(14123,'23693',19633,19634,4,0),(14124,'23700',19819,19820,4,0),(14125,'23710',19559,19560,4,0),(14126,'23711',19565,19566,4,0),(14127,'23712',19743,19744,4,0),(14128,'23713',20031,20032,4,0),(14129,'23713',19821,19822,4,0),(14130,'23720',19671,19672,4,0),(14131,'23730',20045,20046,4,0),(14132,'23740',19517,19518,4,0),(14133,'23746',19809,19810,4,0),(14134,'23747',19555,19556,4,0),(14135,'23747',19519,19520,4,0),(14136,'23748',19521,19522,4,0),(14137,'23749',19523,19524,4,0),(14138,'23749',20047,20048,4,0),(14139,'23750',19531,19532,4,0),(14140,'23760',19527,19528,4,0),(14141,'23770',19845,19846,4,0),(14142,'23780',19825,19826,4,0),(14143,'23790',19895,19896,4,0),(14144,'24001',22443,22444,4,0),(14145,'24002',22445,22446,4,0),(14146,'24003',22447,22448,4,0),(14147,'24003',22639,22640,4,0),(14148,'24004',22449,22450,4,0),(14149,'24005',22451,22452,4,0),(14150,'24006',22453,22454,4,0),(14151,'24007',22455,22456,4,0),(14152,'24008',22457,22458,4,0),(14153,'24009',22459,22460,4,0),(14154,'24009',22813,22814,4,0),(14155,'24010',22461,22462,4,0),(14156,'24010',22815,22816,4,0),(14157,'24100',23221,23222,4,0),(14158,'24110',23223,23224,4,0),(14159,'24111',23225,23226,4,0),(14160,'24112',23227,23228,4,0),(14161,'24113',23229,23230,4,0),(14162,'24114',23231,23232,4,0),(14163,'24120',22963,22964,4,0),(14164,'24121',22941,22942,4,0),(14165,'24122',22227,22228,4,0),(14166,'24123',22087,22088,4,0),(14167,'24124',22893,22894,4,0),(14168,'24124',22965,22966,4,0),(14169,'24125',22967,22968,4,0),(14170,'24126',22761,22762,4,0),(14171,'24126',22969,22970,4,0),(14172,'24127',22763,22764,4,0),(14173,'24127',23129,23130,4,0),(14174,'24130',22543,22544,4,0),(14175,'24131',22765,22766,4,0),(14176,'24132',22767,22768,4,0),(14177,'24133',22769,22770,4,0),(14178,'24133',22545,22546,4,0),(14179,'24134',22771,22772,4,0),(14180,'24134',22547,22548,4,0),(14181,'24135',22549,22550,4,0),(14182,'24136',22551,22552,4,0),(14183,'24137',22553,22554,4,0),(14184,'24138',23233,23234,4,0),(14185,'24139',23235,23236,4,0),(14186,'24140',23237,23238,4,0),(14187,'24141',22025,22026,4,0),(14188,'24142',22027,22028,4,0),(14189,'24143',22831,22832,4,0),(14190,'24143',22029,22030,4,0),(14191,'24144',22833,22834,4,0),(14192,'24145',22835,22836,4,0),(14193,'24145',22947,22948,4,0),(14194,'24146',22949,22950,4,0),(14195,'24148',22475,22476,4,0),(14196,'24149',22477,22478,4,0),(14197,'24150',22261,22262,4,0),(14198,'24150',22865,22866,4,0),(14199,'24150',23209,23210,4,0),(14200,'24151',22867,22868,4,0),(14201,'24152',23199,23200,4,0),(14202,'24153',23211,23212,4,0),(14203,'24154',23213,23214,4,0),(14204,'24155',23215,23216,4,0),(14205,'24156',23053,23054,4,0),(14206,'24160',22321,22322,4,0),(14207,'24161',22323,22324,4,0),(14208,'24161',22241,22242,4,0),(14209,'24162',23383,23384,4,0),(14210,'24163',23217,23218,4,0),(14211,'24163',23385,23386,4,0),(14212,'24164',22325,22326,4,0),(14213,'24165',22327,22328,4,0),(14214,'24166',22329,22330,4,0),(14215,'24170',21873,21874,4,0),(14216,'24170',22145,22146,4,0),(14217,'24171',23393,23394,4,0),(14218,'24171',21875,21876,4,0),(14219,'24172',23411,23412,4,0),(14220,'24172',22137,22138,4,0),(14221,'24172',23323,23324,4,0),(14222,'24174',22139,22140,4,0),(14223,'24175',23325,23326,4,0),(14224,'24190',22463,22464,4,0),(14225,'24190',22817,22818,4,0),(14226,'24191',22819,22820,4,0),(14227,'24192',22465,22466,4,0),(14228,'24192',22573,22574,4,0),(14229,'24193',23361,23362,4,0),(14230,'24194',22935,22936,4,0),(14231,'24195',23055,23056,4,0),(14232,'24195',23363,23364,4,0),(14233,'24196',22943,22944,4,0),(14234,'24197',23365,23366,4,0),(14235,'24198',23149,23150,4,0),(14236,'24199',23399,23400,4,0),(14237,'24200',23139,23140,4,0),(14238,'24205',23141,23142,4,0),(14239,'24206',23243,23244,4,0),(14240,'24206',23077,23078,4,0),(14241,'24206',22099,22100,4,0),(14242,'24206',22301,22302,4,0),(14243,'24207',23245,23246,4,0),(14244,'24207',22533,22534,4,0),(14245,'24208',22587,22588,4,0),(14246,'24209',22339,22340,4,0),(14247,'24209',22589,22590,4,0),(14248,'24210',22501,22502,4,0),(14249,'24212',22015,22016,4,0),(14250,'24217',22507,22508,4,0),(14251,'24218',23089,23090,4,0),(14252,'24218',22503,22504,4,0),(14253,'24219',23387,23388,4,0),(14254,'24220',23097,23098,4,0),(14255,'24221',22045,22046,4,0),(14256,'24222',23349,23350,4,0),(14257,'24223',22519,22520,4,0),(14258,'24223',22591,22592,4,0),(14259,'24223',22297,22298,4,0),(14260,'24224',22021,22022,4,0),(14261,'24224',22237,22238,4,0),(14262,'24224',22593,22594,4,0),(14263,'24225',22199,22200,4,0),(14264,'24225',23339,23340,4,0),(14265,'24225',22049,22050,4,0),(14266,'24226',23389,23390,4,0),(14267,'24226',23401,23402,4,0),(14268,'24227',23057,23058,4,0),(14269,'24228',23059,23060,4,0),(14270,'24230',23133,23134,4,0),(14271,'24231',22157,22158,4,0),(14272,'24231',22575,22576,4,0),(14273,'24232',21881,21882,4,0),(14274,'24233',21883,21884,4,0),(14275,'24233',23287,23288,4,0),(14276,'24234',22435,22436,4,0),(14277,'24234',23289,23290,4,0),(14278,'24235',23353,23354,4,0),(14279,'24236',23355,23356,4,0),(14280,'24237',22851,22852,4,0),(14281,'24237',22973,22974,4,0),(14282,'24237',23253,23254,4,0),(14283,'24238',21863,21864,4,0),(14284,'24238',23293,23294,4,0),(14285,'24239',22169,22170,4,0),(14286,'24240',22909,22910,4,0),(14287,'24248',23043,23044,4,0),(14288,'24248',22427,22428,4,0),(14289,'24249',21939,21940,4,0),(14290,'24249',22635,22636,4,0),(14291,'24249',23419,23420,4,0),(14292,'24249',22429,22430,4,0),(14293,'24250',22159,22160,4,0),(14294,'24250',23135,23136,4,0),(14295,'24251',22577,22578,4,0),(14296,'24251',22161,22162,4,0),(14297,'24251',21885,21886,4,0),(14298,'24252',22855,22856,4,0),(14299,'24252',21941,21942,4,0),(14300,'24252',23045,23046,4,0),(14301,'24253',23063,23064,4,0),(14302,'24257',21963,21964,4,0),(14303,'24270',22081,22082,4,0),(14304,'24271',22471,22472,4,0),(14305,'24272',22173,22174,4,0),(14306,'24273',22439,22440,4,0),(14307,'24273',22175,22176,4,0),(14308,'24274',22775,22776,4,0),(14309,'24275',22777,22778,4,0),(14310,'24275',22895,22896,4,0),(14311,'24276',22897,22898,4,0),(14312,'24277',22899,22900,4,0),(14313,'24280',21923,21924,4,0),(14314,'24281',21925,21926,4,0),(14315,'24282',22821,22822,4,0),(14316,'24282',23151,23152,4,0),(14317,'24283',22083,22084,4,0),(14318,'24284',23037,23038,4,0),(14319,'24285',22721,22722,4,0),(14320,'24285',23039,23040,4,0),(14321,'24285',21927,21928,4,0),(14322,'24286',22343,22344,4,0),(14323,'24287',23377,23378,4,0),(14324,'24287',21929,21930,4,0),(14325,'24288',23379,23380,4,0),(14326,'24288',23369,23370,4,0),(14327,'24290',22879,22880,4,0),(14328,'24291',22515,22516,4,0),(14329,'24292',23157,23158,4,0),(14330,'24293',22363,22364,4,0),(14331,'24294',22317,22318,4,0),(14332,'24300',21913,21914,4,0),(14333,'24310',22287,22288,4,0),(14334,'24310',23007,23008,4,0),(14335,'24311',22289,22290,4,0),(14336,'24312',22347,22348,4,0),(14337,'24312',22291,22292,4,0),(14338,'24313',22349,22350,4,0),(14339,'24314',22125,22126,4,0),(14340,'24315',22293,22294,4,0),(14341,'24315',21915,21916,4,0),(14342,'24316',22127,22128,4,0),(14343,'24317',23009,23010,4,0),(14344,'24318',21917,21918,4,0),(14345,'24319',21919,21920,4,0),(14346,'24319',22557,22558,4,0),(14347,'24319',22351,22352,4,0),(14348,'24320',22799,22800,4,0),(14349,'24323',23159,23160,4,0),(14350,'24323',22133,22134,4,0),(14351,'24324',23145,23146,4,0),(14352,'24324',22367,22368,4,0),(14353,'24325',21945,21946,4,0),(14354,'24325',22313,22314,4,0),(14355,'24326',22801,22802,4,0),(14356,'24327',23413,23414,4,0),(14357,'24328',22803,22804,4,0),(14358,'24328',23415,23416,4,0),(14359,'24328',22141,22142,4,0),(14360,'24329',22431,22432,4,0),(14361,'24329',22805,22806,4,0),(14362,'24330',22917,22918,4,0),(14363,'24339',22919,22920,4,0),(14364,'24339',23335,23336,4,0),(14365,'24340',22335,22336,4,0),(14366,'24341',22273,22274,4,0),(14367,'24342',22041,22042,4,0),(14368,'24343',22255,22256,4,0),(14369,'24343',22903,22904,4,0),(14370,'24344',22905,22906,4,0),(14371,'24344',23311,23312,4,0),(14372,'24344',23395,23396,4,0),(14373,'24344',22257,22258,4,0),(14374,'24345',22921,22922,4,0),(14375,'24346',23177,23178,4,0),(14376,'24347',22579,22580,4,0),(14377,'24347',23179,23180,4,0),(14378,'24350',23371,23372,4,0),(14379,'24356',22007,22008,4,0),(14380,'24356',23405,23406,4,0),(14381,'24357',22009,22010,4,0),(14382,'24358',23373,23374,4,0),(14383,'24359',22843,22844,4,0),(14384,'24359',22825,22826,4,0),(14385,'24360',23275,23276,4,0),(14386,'24367',23277,23278,4,0),(14387,'24368',23279,23280,4,0),(14388,'24369',23281,23282,4,0),(14389,'24370',23011,23012,4,0),(14390,'24374',22353,22354,4,0),(14391,'24374',23013,23014,4,0),(14392,'24375',22355,22356,4,0),(14393,'24376',22357,22358,4,0),(14394,'24377',22359,22360,4,0),(14395,'24378',23015,23016,4,0),(14396,'24379',23017,23018,4,0),(14397,'24379',23283,23284,4,0),(14398,'24380',22707,22708,4,0),(14399,'24384',22709,22710,4,0),(14400,'24385',22711,22712,4,0),(14401,'24386',22713,22714,4,0),(14402,'24387',22715,22716,4,0),(14403,'24388',21933,21934,4,0),(14404,'24389',21935,21936,4,0),(14405,'24389',22717,22718,4,0),(14406,'24390',22069,22070,4,0),(14407,'24391',22937,22938,4,0),(14408,'24391',22163,22164,4,0),(14409,'24391',23153,23154,4,0),(14410,'24392',23249,23250,4,0),(14411,'24392',22165,22166,4,0),(14412,'24392',22177,22178,4,0),(14413,'24393',22179,22180,4,0),(14414,'24393',22011,22012,4,0),(14415,'24393',22913,22914,4,0),(14416,'24394',23101,23102,4,0),(14417,'24395',23103,23104,4,0),(14418,'24395',22845,22846,4,0),(14419,'24396',22495,22496,4,0),(14420,'24397',22723,22724,4,0),(14421,'24397',22497,22498,4,0),(14422,'24398',22537,22538,4,0),(14423,'24398',22195,22196,4,0),(14424,'24398',22129,22130,4,0),(14425,'24400',22641,22642,4,0),(14426,'24401',22643,22644,4,0),(14427,'24402',22645,22646,4,0),(14428,'24403',22647,22648,4,0),(14429,'24404',22649,22650,4,0),(14430,'24410',21889,21890,4,0),(14431,'24410',22053,22054,4,0),(14432,'24411',22651,22652,4,0),(14433,'24412',22017,22018,4,0),(14434,'24413',22539,22540,4,0),(14435,'24413',22653,22654,4,0),(14436,'24414',22655,22656,4,0),(14437,'24415',22657,22658,4,0),(14438,'24416',22659,22660,4,0),(14439,'24420',22277,22278,4,0),(14440,'24424',22661,22662,4,0),(14441,'24428',22279,22280,4,0),(14442,'24429',22631,22632,4,0),(14443,'24429',22281,22282,4,0),(14444,'24430',23163,23164,4,0),(14445,'24433',22057,22058,4,0),(14446,'24434',22283,22284,4,0),(14447,'24434',23165,23166,4,0),(14448,'24435',23167,23168,4,0),(14449,'24436',23169,23170,4,0),(14450,'24437',23171,23172,4,0),(14451,'24438',22991,22992,4,0),(14452,'24438',21949,21950,4,0),(14453,'24439',22859,22860,4,0),(14454,'24439',23173,23174,4,0),(14455,'24440',22091,22092,4,0),(14456,'24441',22093,22094,4,0),(14457,'24441',22977,22978,4,0),(14458,'24442',22059,22060,4,0),(14459,'24442',22095,22096,4,0),(14460,'24443',21983,21984,4,0),(14461,'24444',21985,21986,4,0),(14462,'24445',22687,22688,4,0),(14463,'24446',22689,22690,4,0),(14464,'24447',22691,22692,4,0),(14465,'24448',22693,22694,4,0),(14466,'24448',22663,22664,4,0),(14467,'24450',22993,22994,4,0),(14468,'24457',22995,22996,4,0),(14469,'24458',22559,22560,4,0),(14470,'24458',22997,22998,4,0),(14471,'24459',22999,23000,4,0),(14472,'24460',23001,23002,4,0),(14473,'24469',23003,23004,4,0),(14474,'24469',22617,22618,4,0),(14475,'24470',22619,22620,4,0),(14476,'24478',22621,22622,4,0),(14477,'24479',22623,22624,4,0),(14478,'24480',22603,22604,4,0),(14479,'24488',22625,22626,4,0),(14480,'24489',22605,22606,4,0),(14481,'24490',22665,22666,4,0),(14482,'24491',22667,22668,4,0),(14483,'24492',22247,22248,4,0),(14484,'24494',22627,22628,4,0),(14485,'24495',22607,22608,4,0),(14486,'24496',22609,22610,4,0),(14487,'24497',22611,22612,4,0),(14488,'24498',22613,22614,4,0),(14489,'24500',23257,23258,4,0),(14490,'24510',23259,23260,4,0),(14491,'24511',23261,23262,4,0),(14492,'24512',23263,23264,4,0),(14493,'24512',13287,13288,4,0),(14494,'24513',23265,23266,4,0),(14495,'24514',22203,22204,4,0),(14496,'24515',22205,22206,4,0),(14497,'24516',23267,23268,4,0),(14498,'24516',22207,22208,4,0),(14499,'24516',22979,22980,4,0),(14500,'24517',22209,22210,4,0),(14501,'24520',23183,23184,4,0),(14502,'24521',21907,21908,4,0),(14503,'24521',23185,23186,4,0),(14504,'24522',23023,23024,4,0),(14505,'24523',23025,23026,4,0),(14506,'24524',23187,23188,4,0),(14507,'24525',21903,21904,4,0),(14508,'24526',23189,23190,4,0),(14509,'24530',23269,23270,4,0),(14510,'24530',22981,22982,4,0),(14511,'24540',22033,22034,4,0),(14512,'24544',22071,22072,4,0),(14513,'24545',22861,22862,4,0),(14514,'24545',21891,21892,4,0),(14515,'24546',21893,21894,4,0),(14516,'24547',22035,22036,4,0),(14517,'24547',23271,23272,4,0),(14518,'24548',22037,22038,4,0),(14519,'24549',22073,22074,4,0),(14520,'24550',22075,22076,4,0),(14521,'24550',22983,22984,4,0),(14522,'24560',22985,22986,4,0),(14523,'24565',22077,22078,4,0),(14524,'24566',22563,22564,4,0),(14525,'24567',22565,22566,4,0),(14526,'24568',22567,22568,4,0),(14527,'24569',22987,22988,4,0),(14528,'24569',22569,22570,4,0),(14529,'24600',22393,22394,4,0),(14530,'24607',22395,22396,4,0),(14531,'24608',22397,22398,4,0),(14532,'24609',22399,22400,4,0),(14533,'24610',22229,22230,4,0),(14534,'24620',22231,22232,4,0),(14535,'24630',22233,22234,4,0),(14536,'24640',22411,22412,4,0),(14537,'24648',22521,22522,4,0),(14538,'24648',22413,22414,4,0),(14539,'24649',22415,22416,4,0),(14540,'24650',22401,22402,4,0),(14541,'24660',22403,22404,4,0),(14542,'24670',22405,22406,4,0),(14543,'24680',23297,23298,4,0),(14544,'24687',23299,23300,4,0),(14545,'24688',23301,23302,4,0),(14546,'24689',23303,23304,4,0),(14547,'24690',23305,23306,4,0),(14548,'24699',23307,23308,4,0),(14549,'24700',21897,21898,4,0),(14550,'24710',22847,22848,4,0),(14551,'24711',23315,23316,4,0),(14552,'24711',23343,23344,4,0),(14553,'24712',23317,23318,4,0),(14554,'24713',23319,23320,4,0),(14555,'24714',21989,21990,4,0),(14556,'24715',21991,21992,4,0),(14557,'24716',21993,21994,4,0),(14558,'24717',22481,22482,4,0),(14559,'24717',22925,22926,4,0),(14560,'24717',23049,23050,4,0),(14561,'24717',22489,22490,4,0),(14562,'24718',21899,21900,4,0),(14563,'24718',21995,21996,4,0),(14564,'24719',23345,23346,4,0),(14565,'24720',22873,22874,4,0),(14566,'24721',22491,22492,4,0),(14567,'24721',22109,22110,4,0),(14568,'24722',22875,22876,4,0),(14569,'24723',22483,22484,4,0),(14570,'24724',22485,22486,4,0),(14571,'24730',22251,22252,4,0),(14572,'24731',22927,22928,4,0),(14573,'24732',22929,22930,4,0),(14574,'24732',23105,23106,4,0),(14575,'24733',22733,22734,4,0),(14576,'24734',22117,22118,4,0),(14577,'24735',22119,22120,4,0),(14578,'24736',22121,22122,4,0),(14579,'24738',23029,23030,4,0),(14580,'24739',23019,23020,4,0),(14581,'24740',22931,22932,4,0),(14582,'24740',23031,23032,4,0),(14583,'24740',21909,21910,4,0),(14584,'24740',23239,23240,4,0),(14585,'24741',23033,23034,4,0),(14586,'24742',22103,22104,4,0),(14587,'24743',22263,22264,4,0),(14588,'24744',22265,22266,4,0),(14589,'24744',22105,22106,4,0),(14590,'24745',22267,22268,4,0),(14591,'24746',22269,22270,4,0),(14592,'24750',22375,22376,4,0),(14593,'24760',22113,22114,4,0),(14594,'24760',22839,22840,4,0),(14595,'24760',22407,22408,4,0),(14596,'24761',21867,21868,4,0),(14597,'24762',22727,22728,4,0),(14598,'24762',22883,22884,4,0),(14599,'24763',23407,23408,4,0),(14600,'24763',22955,22956,4,0),(14601,'24763',22739,22740,4,0),(14602,'24764',22597,22598,4,0),(14603,'24764',22957,22958,4,0),(14604,'24764',22377,22378,4,0),(14605,'24765',23329,23330,4,0),(14606,'24765',22753,22754,4,0),(14607,'24766',23331,23332,4,0),(14608,'24766',22599,22600,4,0),(14609,'24766',22379,22380,4,0),(14610,'24767',22885,22886,4,0),(14611,'24767',22735,22736,4,0),(14612,'24768',22959,22960,4,0),(14613,'24769',22153,22154,4,0),(14614,'24790',22781,22782,4,0),(14615,'24791',23421,23422,4,0),(14616,'24791',22783,22784,4,0),(14617,'24792',21869,21870,4,0),(14618,'24792',22729,22730,4,0),(14619,'24792',22677,22678,4,0),(14620,'24793',23107,23108,4,0),(14621,'24794',22755,22756,4,0),(14622,'24795',22889,22890,4,0),(14623,'24795',22757,22758,4,0),(14624,'24795',22827,22828,4,0),(14625,'24796',22679,22680,4,0),(14626,'24796',22371,22372,4,0),(14627,'24797',22809,22810,4,0),(14628,'24800',22183,22184,4,0),(14629,'24810',22787,22788,4,0),(14630,'24811',22789,22790,4,0),(14631,'24812',22791,22792,4,0),(14632,'24813',22185,22186,4,0),(14633,'24814',22793,22794,4,0),(14634,'24815',22187,22188,4,0),(14635,'24816',22189,22190,4,0),(14636,'24820',22305,22306,4,0),(14637,'24820',22523,22524,4,0),(14638,'24830',22525,22526,4,0),(14639,'24836',23193,23194,4,0),(14640,'24836',22527,22528,4,0),(14641,'24837',23195,23196,4,0),(14642,'24837',22063,22064,4,0),(14643,'24837',23067,23068,4,0),(14644,'24838',22065,22066,4,0),(14645,'24839',22529,22530,4,0),(14646,'24840',22419,22420,4,0),(14647,'24843',23069,23070,4,0),(14648,'24844',23071,23072,4,0),(14649,'24845',23073,23074,4,0),(14650,'24846',23081,23082,4,0),(14651,'24847',23083,23084,4,0),(14652,'24848',22421,22422,4,0),(14653,'24848',22869,22870,4,0),(14654,'24849',22423,22424,4,0),(14655,'24849',23085,23086,4,0),(14656,'24850',21965,21966,4,0),(14657,'24852',23201,23202,4,0),(14658,'24852',21967,21968,4,0),(14659,'24853',21969,21970,4,0),(14660,'24854',21971,21972,4,0),(14661,'24855',22701,22702,4,0),(14662,'24856',22743,22744,4,0),(14663,'24857',21973,21974,4,0),(14664,'24857',22703,22704,4,0),(14665,'24858',21975,21976,4,0),(14666,'24859',21977,21978,4,0),(14667,'24860',23203,23204,4,0),(14668,'24860',21979,21980,4,0),(14669,'24869',23205,23206,4,0),(14670,'24870',22383,22384,4,0),(14671,'24877',22385,22386,4,0),(14672,'24878',22387,22388,4,0),(14673,'24878',22331,22332,4,0),(14674,'24879',22389,22390,4,0),(14675,'24880',23111,23112,4,0),(14676,'24882',23113,23114,4,0),(14677,'24883',23115,23116,4,0),(14678,'24884',23117,23118,4,0),(14679,'24885',22697,22698,4,0),(14680,'24885',21953,21954,4,0),(14681,'24886',23119,23120,4,0),(14682,'24887',23121,23122,4,0),(14683,'24888',23123,23124,4,0),(14684,'24888',21877,21878,4,0),(14685,'24888',22147,22148,4,0),(14686,'24889',23125,23126,4,0),(14687,'24890',22307,22308,4,0),(14688,'24891',22309,22310,4,0),(14689,'24892',22149,22150,4,0),(14690,'24893',22683,22684,4,0),(14691,'24900',22747,22748,4,0),(14692,'24911',21955,21956,4,0),(14693,'24912',21957,21958,4,0),(14694,'24913',21959,21960,4,0),(14695,'24914',22671,22672,4,0),(14696,'24915',22673,22674,4,0),(14697,'24916',22583,22584,4,0),(14698,'24917',21999,22000,4,0),(14699,'24918',22749,22750,4,0),(14700,'24920',23091,23092,4,0),(14701,'24930',23093,23094,4,0),(14702,'24940',22243,22244,4,0),(14703,'24950',22191,22192,4,0),(14704,'24960',22795,22796,4,0),(14705,'24960',22213,22214,4,0),(14706,'24970',22215,22216,4,0),(14707,'24980',22217,22218,4,0),(14708,'24989',22219,22220,4,0),(14709,'24990',22221,22222,4,0),(14710,'24991',22223,22224,4,0),(14711,'24994',22001,22002,4,0),(14712,'24994',21857,21858,4,0),(14713,'24995',22003,22004,4,0),(14714,'24996',21859,21860,4,0),(14715,'24996',22511,22512,4,0),(14716,'25001',24137,24138,4,0),(14717,'25002',24139,24140,4,0),(14718,'25003',24141,24142,4,0),(14719,'25004',24143,24144,4,0),(14720,'25005',24145,24146,4,0),(14721,'25006',24147,24148,4,0),(14722,'25007',24149,24150,4,0),(14723,'25008',24151,24152,4,0),(14724,'25100',23515,23516,4,0),(14725,'25110',23531,23532,4,0),(14726,'25110',24573,24574,4,0),(14727,'25111',24153,24154,4,0),(14728,'25112',23897,23898,4,0),(14729,'25113',24155,24156,4,0),(14730,'25114',23899,23900,4,0),(14731,'25120',23491,23492,4,0),(14732,'25122',23957,23958,4,0),(14733,'25123',24575,24576,4,0),(14734,'25124',24403,24404,4,0),(14735,'25125',23503,23504,4,0),(14736,'25126',23523,23524,4,0),(14737,'25126',24577,24578,4,0),(14738,'25130',23499,23500,4,0),(14739,'25131',24565,24566,4,0),(14740,'25132',23651,23652,4,0),(14741,'25133',24703,24704,4,0),(14742,'25134',24041,24042,4,0),(14743,'25135',23471,23472,4,0),(14744,'25136',23713,23714,4,0),(14745,'25137',23763,23764,4,0),(14746,'25138',24591,24592,4,0),(14747,'25139',24209,24210,4,0),(14748,'25140',23549,23550,4,0),(14749,'25141',24587,24588,4,0),(14750,'25142',23645,23646,4,0),(14751,'25143',23779,23780,4,0),(14752,'25144',23647,23648,4,0),(14753,'25150',23561,23562,4,0),(14754,'25151',23577,23578,4,0),(14755,'25152',23771,23772,4,0),(14756,'25153',24367,24368,4,0),(14757,'25154',23705,23706,4,0),(14758,'25155',23979,23980,4,0),(14759,'25160',23915,23916,4,0),(14760,'25161',23495,23496,4,0),(14761,'25162',23475,23476,4,0),(14762,'25163',23809,23810,4,0),(14763,'25164',23837,23838,4,0),(14764,'25165',23971,23972,4,0),(14765,'25170',24595,24596,4,0),(14766,'25171',23467,23468,4,0),(14767,'25172',24241,24242,4,0),(14768,'25173',24501,24502,4,0),(14769,'25174',24505,24506,4,0),(14770,'25175',24455,24456,4,0),(14771,'25176',24569,24570,4,0),(14772,'25177',23621,23622,4,0),(14773,'25177',24007,24008,4,0),(14774,'25178',23667,23668,4,0),(14775,'25179',24193,24194,4,0),(14776,'25180',23479,23480,4,0),(14777,'25181',24497,24498,4,0),(14778,'25182',23455,23456,4,0),(14779,'25183',24467,24468,4,0),(14780,'25184',24201,24202,4,0),(14781,'25185',24011,24012,4,0),(14782,'25186',24127,24128,4,0),(14783,'25187',23519,23520,4,0),(14784,'25190',24157,24158,4,0),(14785,'25191',24159,24160,4,0),(14786,'25192',24161,24162,4,0),(14787,'25193',24163,24164,4,0),(14788,'25193',23481,23482,4,0),(14789,'25193',24431,24432,4,0),(14790,'25194',24165,24166,4,0),(14791,'25195',24167,24168,4,0),(14792,'25196',24169,24170,4,0),(14793,'25197',24171,24172,4,0),(14794,'25198',24173,24174,4,0),(14795,'25199',24175,24176,4,0),(14796,'25200',23725,23726,4,0),(14797,'25210',23927,23928,4,0),(14798,'25211',24427,24428,4,0),(14799,'25211',24581,24582,4,0),(14800,'25211',24205,24206,4,0),(14801,'25212',24539,24540,4,0),(14802,'25212',23831,23832,4,0),(14803,'25212',24583,24584,4,0),(14804,'25213',24375,24376,4,0),(14805,'25213',24515,24516,4,0),(14806,'25213',23727,23728,4,0),(14807,'25214',23729,23730,4,0),(14808,'25214',23853,23854,4,0),(14809,'25214',24459,24460,4,0),(14810,'25214',24095,24096,4,0),(14811,'25215',23855,23856,4,0),(14812,'25215',24445,24446,4,0),(14813,'25216',23961,23962,4,0),(14814,'25216',24447,24448,4,0),(14815,'25217',23919,23920,4,0),(14816,'25217',23581,23582,4,0),(14817,'25217',24245,24246,4,0),(14818,'25217',24377,24378,4,0),(14819,'25218',23911,23912,4,0),(14820,'25218',23731,23732,4,0),(14821,'25218',23833,23834,4,0),(14822,'25220',23617,23618,4,0),(14823,'25221',23819,23820,4,0),(14824,'25222',24471,24472,4,0),(14825,'25230',24217,24218,4,0),(14826,'25240',24313,24314,4,0),(14827,'25240',24109,24110,4,0),(14828,'25241',23903,23904,4,0),(14829,'25242',24213,24214,4,0),(14830,'25243',23775,23776,4,0),(14831,'25244',23877,23878,4,0),(14832,'25245',24663,24664,4,0),(14833,'25250',23633,23634,4,0),(14834,'25260',23951,23952,4,0),(14835,'25261',24315,24316,4,0),(14836,'25261',23953,23954,4,0),(14837,'25262',23597,23598,4,0),(14838,'25263',24347,24348,4,0),(14839,'25264',24681,24682,4,0),(14840,'25265',23709,23710,4,0),(14841,'25266',24197,24198,4,0),(14842,'25266',23613,23614,4,0),(14843,'25267',24437,24438,4,0),(14844,'25268',23827,23828,4,0),(14845,'25268',24637,24638,4,0),(14846,'25269',24639,24640,4,0),(14847,'25270',24421,24422,4,0),(14848,'25271',24423,24424,4,0),(14849,'25271',23857,23858,4,0),(14850,'25280',24287,24288,4,0),(14851,'25280',24475,24476,4,0),(14852,'25281',24189,24190,4,0),(14853,'25282',24433,24434,4,0),(14854,'25283',24121,24122,4,0),(14855,'25283',24269,24270,4,0),(14856,'25284',23995,23996,4,0),(14857,'25285',23931,23932,4,0),(14858,'25286',24265,24266,4,0),(14859,'25286',23535,23536,4,0),(14860,'25286',24289,24290,4,0),(14861,'25286',24327,24328,4,0),(14862,'25287',24331,24332,4,0),(14863,'25287',24393,24394,4,0),(14864,'25287',24291,24292,4,0),(14865,'25288',24123,24124,4,0),(14866,'25289',23601,23602,4,0),(14867,'25289',23701,23702,4,0),(14868,'25290',24395,24396,4,0),(14869,'25290',23743,23744,4,0),(14870,'25300',24519,24520,4,0),(14871,'25310',23445,23446,4,0),(14872,'25315',24235,24236,4,0),(14873,'25316',24351,24352,4,0),(14874,'25317',23447,23448,4,0),(14875,'25318',24279,24280,4,0),(14876,'25318',24309,24310,4,0),(14877,'25318',23449,23450,4,0),(14878,'25318',24363,24364,4,0),(14879,'25320',23545,23546,4,0),(14880,'25327',24067,24068,4,0),(14881,'25330',24667,24668,4,0),(14882,'25331',24561,24562,4,0),(14883,'25331',23451,23452,4,0),(14884,'25332',24003,24004,4,0),(14885,'25333',24317,24318,4,0),(14886,'25334',23717,23718,4,0),(14887,'25335',24319,24320,4,0),(14888,'25336',23629,23630,4,0),(14889,'25337',23625,23626,4,0),(14890,'25340',24249,24250,4,0),(14891,'25340',24649,24650,4,0),(14892,'25341',24253,24254,4,0),(14893,'25341',23739,23740,4,0),(14894,'25341',23923,23924,4,0),(14895,'25343',24439,24440,4,0),(14896,'25344',24441,24442,4,0),(14897,'25350',24521,24522,4,0),(14898,'25351',24523,24524,4,0),(14899,'25352',24525,24526,4,0),(14900,'25353',24527,24528,4,0),(14901,'25354',24529,24530,4,0),(14902,'25360',24531,24532,4,0),(14903,'25400',24091,24092,4,0),(14904,'25410',23987,23988,4,0),(14905,'25411',23885,23886,4,0),(14906,'25412',23823,23824,4,0),(14907,'25413',23999,24000,4,0),(14908,'25420',24359,24360,4,0),(14909,'25430',23975,23976,4,0),(14910,'25440',24707,24708,4,0),(14911,'25450',23983,23984,4,0),(14912,'25460',23735,23736,4,0),(14913,'25471',24029,24030,4,0),(14914,'25480',24535,24536,4,0),(14915,'25500',24033,24034,4,0),(14916,'25510',24055,24056,4,0),(14917,'25511',24057,24058,4,0),(14918,'25512',24059,24060,4,0),(14919,'25513',24061,24062,4,0),(14920,'25513',23583,23584,4,0),(14921,'25513',24035,24036,4,0),(14922,'25514',23791,23792,4,0),(14923,'25514',24461,24462,4,0),(14924,'25515',24063,24064,4,0),(14925,'25516',24037,24038,4,0),(14926,'25516',23755,23756,4,0),(14927,'25517',23757,23758,4,0),(14928,'25518',23759,23760,4,0),(14929,'25520',23793,23794,4,0),(14930,'25526',24069,24070,4,0),(14931,'25526',23795,23796,4,0),(14932,'25527',24071,24072,4,0),(14933,'25528',24073,24074,4,0),(14934,'25529',23797,23798,4,0),(14935,'25530',24653,24654,4,0),(14936,'25537',24655,24656,4,0),(14937,'25538',24657,24658,4,0),(14938,'25539',24257,24258,4,0),(14939,'25539',24659,24660,4,0),(14940,'25540',24081,24082,4,0),(14941,'25547',23813,23814,4,0),(14942,'25548',23689,23690,4,0),(14943,'25549',23609,23610,4,0),(14944,'25550',23663,23664,4,0),(14945,'25551',23841,23842,4,0),(14946,'25551',23553,23554,4,0),(14947,'25551',24677,24678,4,0),(14948,'25552',24671,24672,4,0),(14949,'25552',23799,23800,4,0),(14950,'25553',24673,24674,4,0),(14951,'25554',23801,23802,4,0),(14952,'25555',24451,24452,4,0),(14953,'25555',23803,23804,4,0),(14954,'25555',24463,24464,4,0),(14955,'25556',23805,23806,4,0),(14956,'25557',23815,23816,4,0),(14957,'25560',23485,23486,4,0),(14958,'25560',24487,24488,4,0),(14959,'25566',24479,24480,4,0),(14960,'25567',24489,24490,4,0),(14961,'25568',24491,24492,4,0),(14962,'25569',24481,24482,4,0),(14963,'25569',24493,24494,4,0),(14964,'25570',24625,24626,4,0),(14965,'25571',24113,24114,4,0),(14966,'25571',24627,24628,4,0),(14967,'25571',23865,23866,4,0),(14968,'25572',24629,24630,4,0),(14969,'25573',23507,23508,4,0),(14970,'25574',23509,23510,4,0),(14971,'25575',23511,23512,4,0),(14972,'25576',24115,24116,4,0),(14973,'25576',24631,24632,4,0),(14974,'25577',24117,24118,4,0),(14975,'25580',23861,23862,4,0),(14976,'25583',24603,24604,4,0),(14977,'25584',24605,24606,4,0),(14978,'25586',23537,23538,4,0),(14979,'25587',23539,23540,4,0),(14980,'25588',24015,24016,4,0),(14981,'25589',23541,23542,4,0),(14982,'25590',23585,23586,4,0),(14983,'25591',23587,23588,4,0),(14984,'25592',23589,23590,4,0),(14985,'25592',23679,23680,4,0),(14986,'25593',24483,24484,4,0),(14987,'25594',24371,24372,4,0),(14988,'25594',24131,24132,4,0),(14989,'25595',23869,23870,4,0),(14990,'25595',24547,24548,4,0),(14991,'25595',24133,24134,4,0),(14992,'25595',24017,24018,4,0),(14993,'25596',24019,24020,4,0),(14994,'25597',23845,23846,4,0),(14995,'25597',24021,24022,4,0),(14996,'25598',24259,24260,4,0),(14997,'25599',24261,24262,4,0),(14998,'25600',23593,23594,4,0),(14999,'25610',24299,24300,4,0),(15000,'25611',24085,24086,4,0),(15001,'25611',23437,23438,4,0),(15002,'25611',24301,24302,4,0),(15003,'25612',24087,24088,4,0),(15004,'25612',24303,24304,4,0),(15005,'25613',23681,23682,4,0),(15006,'25614',24305,24306,4,0),(15007,'25615',23683,23684,4,0),(15008,'25616',24237,24238,4,0),(15009,'25617',24045,24046,4,0),(15010,'25617',24643,24644,4,0),(15011,'25620',24607,24608,4,0),(15012,'25630',24509,24510,4,0),(15013,'25631',23693,23694,4,0),(15014,'25632',23695,23696,4,0),(15015,'25632',24415,24416,4,0),(15016,'25633',24609,24610,4,0),(15017,'25633',23697,23698,4,0),(15018,'25634',24611,24612,4,0),(15019,'25635',24613,24614,4,0),(15020,'25636',24615,24616,4,0),(15021,'25637',24617,24618,4,0),(15022,'25638',23889,23890,4,0),(15023,'25638',24183,24184,4,0),(15024,'25639',24185,24186,4,0),(15025,'25639',23891,23892,4,0),(15026,'25640',24619,24620,4,0),(15027,'25650',23935,23936,4,0),(15028,'25651',23429,23430,4,0),(15029,'25651',23937,23938,4,0),(15030,'25652',23431,23432,4,0),(15031,'25653',23939,23940,4,0),(15032,'25654',24621,24622,4,0),(15033,'25655',23941,23942,4,0),(15034,'25656',23943,23944,4,0),(15035,'25657',23945,23946,4,0),(15036,'25658',23947,23948,4,0),(15037,'25660',23487,23488,4,0),(15038,'25670',24543,24544,4,0),(15039,'25680',24645,24646,4,0),(15040,'25689',23893,23894,4,0),(15041,'25690',24691,24692,4,0),(15042,'25691',23439,23440,4,0),(15043,'25692',23685,23686,4,0),(15044,'25692',23441,23442,4,0),(15045,'25693',24407,24408,4,0),(15046,'25700',24049,24050,4,0),(15047,'25710',24051,24052,4,0),(15048,'25711',24227,24228,4,0),(15049,'25712',24229,24230,4,0),(15050,'25713',24381,24382,4,0),(15051,'25714',24099,24100,4,0),(15052,'25714',24383,24384,4,0),(15053,'25714',24231,24232,4,0),(15054,'25715',23459,23460,4,0),(15055,'25716',23907,23908,4,0),(15056,'25717',24633,24634,4,0),(15057,'25717',23967,23968,4,0),(15058,'25717',24077,24078,4,0),(15059,'25717',23461,23462,4,0),(15060,'25718',23463,23464,4,0),(15061,'25719',23849,23850,4,0),(15062,'25720',23637,23638,4,0),(15063,'25721',24399,24400,4,0),(15064,'25721',24343,24344,4,0),(15065,'25721',23639,23640,4,0),(15066,'25722',23557,23558,4,0),(15067,'25722',23721,23722,4,0),(15068,'25722',23783,23784,4,0),(15069,'25723',23785,23786,4,0),(15070,'25724',23641,23642,4,0),(15071,'25724',24221,24222,4,0),(15072,'25725',24223,24224,4,0),(15073,'25726',24179,24180,4,0),(15074,'25727',24355,24356,4,0),(15075,'25730',23565,23566,4,0),(15076,'25735',24695,24696,4,0),(15077,'25736',23567,23568,4,0),(15078,'25736',24697,24698,4,0),(15079,'25737',23569,23570,4,0),(15080,'25737',23527,23528,4,0),(15081,'25737',23603,23604,4,0),(15082,'25737',23881,23882,4,0),(15083,'25737',23767,23768,4,0),(15084,'25738',23571,23572,4,0),(15085,'25738',24699,24700,4,0),(15086,'25739',23573,23574,4,0),(15087,'25740',24335,24336,4,0),(15088,'25746',24337,24338,4,0),(15089,'25747',23433,23434,4,0),(15090,'25747',23991,23992,4,0),(15091,'25748',24281,24282,4,0),(15092,'25748',24685,24686,4,0),(15093,'25748',23671,23672,4,0),(15094,'25749',24283,24284,4,0),(15095,'25749',24339,24340,4,0),(15096,'25749',24687,24688,4,0),(15097,'25750',24555,24556,4,0),(15098,'25751',24557,24558,4,0),(15099,'25752',23655,23656,4,0),(15100,'25753',24411,24412,4,0),(15101,'25753',23657,23658,4,0),(15102,'25772',23659,23660,4,0),(15103,'25790',23747,23748,4,0),(15104,'25790',24271,24272,4,0),(15105,'25790',24323,24324,4,0),(15106,'25790',24275,24276,4,0),(15107,'25791',24551,24552,4,0),(15108,'25792',23605,23606,4,0),(15109,'25793',23749,23750,4,0),(15110,'25794',23751,23752,4,0),(15111,'25794',24295,24296,4,0),(15112,'25794',23873,23874,4,0),(15113,'25794',23675,23676,4,0),(15114,'25795',24101,24102,4,0),(15115,'25795',24385,24386,4,0),(15116,'25796',24387,24388,4,0),(15117,'25797',24389,24390,4,0),(15118,'25798',24105,24106,4,0),(15119,'25799',23787,23788,4,0),(15120,'26001',21483,21484,4,0),(15121,'26002',21485,21486,4,0),(15122,'26003',21487,21488,4,0),(15123,'26004',21489,21490,4,0),(15124,'26005',21491,21492,4,0),(15125,'26006',21493,21494,4,0),(15126,'26006',21797,21798,4,0),(15127,'26007',21495,21496,4,0),(15128,'26008',21497,21498,4,0),(15129,'26009',21499,21500,4,0),(15130,'26100',21145,21146,4,0),(15131,'26100',21741,21742,4,0),(15132,'26110',21563,21564,4,0),(15133,'26111',21605,21606,4,0),(15134,'26111',21147,21148,4,0),(15135,'26120',21115,21116,4,0),(15136,'26121',21549,21550,4,0),(15137,'26121',21785,21786,4,0),(15138,'26122',21613,21614,4,0),(15139,'26122',21397,21398,4,0),(15140,'26123',21803,21804,4,0),(15141,'26124',21345,21346,4,0),(15142,'26124',21567,21568,4,0),(15143,'26124',21593,21594,4,0),(15144,'26125',21831,21832,4,0),(15145,'26126',21503,21504,4,0),(15146,'26130',21629,21630,4,0),(15147,'26130',21119,21120,4,0),(15148,'26130',21315,21316,4,0),(15149,'26131',21681,21682,4,0),(15150,'26131',21463,21464,4,0),(15151,'26131',21637,21638,4,0),(15152,'26132',21719,21720,4,0),(15153,'26132',21479,21480,4,0),(15154,'26132',21683,21684,4,0),(15155,'26132',21715,21716,4,0),(15156,'26133',21111,21112,4,0),(15157,'26133',21439,21440,4,0),(15158,'26133',21663,21664,4,0),(15159,'26133',21625,21626,4,0),(15160,'26134',21539,21540,4,0),(15161,'26134',21737,21738,4,0),(15162,'26134',21455,21456,4,0),(15163,'26135',21459,21460,4,0),(15164,'26135',21243,21244,4,0),(15165,'26140',21467,21468,4,0),(15166,'26141',21121,21122,4,0),(15167,'26142',21799,21800,4,0),(15168,'26143',21531,21532,4,0),(15169,'26144',21323,21324,4,0),(15170,'26144',21575,21576,4,0),(15171,'26144',21393,21394,4,0),(15172,'26145',21577,21578,4,0),(15173,'26146',21349,21350,4,0),(15174,'26147',21579,21580,4,0),(15175,'26148',21581,21582,4,0),(15176,'26151',21179,21180,4,0),(15177,'26160',21101,21102,4,0),(15178,'26190',21551,21552,4,0),(15179,'26191',21707,21708,4,0),(15180,'26200',21543,21544,4,0),(15181,'26200',21413,21414,4,0),(15182,'26210',21151,21152,4,0),(15183,'26210',21723,21724,4,0),(15184,'26210',21307,21308,4,0),(15185,'26211',21379,21380,4,0),(15186,'26211',21725,21726,4,0),(15187,'26211',21375,21376,4,0),(15188,'26212',21647,21648,4,0),(15189,'26212',21381,21382,4,0),(15190,'26212',8207,8208,4,0),(15191,'26212',21285,21286,4,0),(15192,'26212',21389,21390,4,0),(15193,'26213',21475,21476,4,0),(15194,'26213',21571,21572,4,0),(15195,'26213',21733,21734,4,0),(15196,'26213',21423,21424,4,0),(15197,'26214',21641,21642,4,0),(15198,'26214',21337,21338,4,0),(15199,'26215',21753,21754,4,0),(15200,'26216',21659,21660,4,0),(15201,'26220',21589,21590,4,0),(15202,'26221',21401,21402,4,0),(15203,'26222',21643,21644,4,0),(15204,'26223',21435,21436,4,0),(15205,'26224',21745,21746,4,0),(15206,'26230',21273,21274,4,0),(15207,'26240',21277,21278,4,0),(15208,'26241',21207,21208,4,0),(15209,'26250',21691,21692,4,0),(15210,'26250',21173,21174,4,0),(15211,'26256',21793,21794,4,0),(15212,'26257',21199,21200,4,0),(15213,'26257',21427,21428,4,0),(15214,'26258',21515,21516,4,0),(15215,'26258',21311,21312,4,0),(15216,'26259',21405,21406,4,0),(15217,'26259',21819,21820,4,0),(15218,'26259',21333,21334,4,0),(15219,'26260',21695,21696,4,0),(15220,'26261',21699,21700,4,0),(15221,'26261',21597,21598,4,0),(15222,'26270',21585,21586,4,0),(15223,'26280',21369,21370,4,0),(15224,'26288',21773,21774,4,0),(15225,'26288',21851,21852,4,0),(15226,'26289',21371,21372,4,0),(15227,'26290',21235,21236,4,0),(15228,'26291',21843,21844,4,0),(15229,'26291',21303,21304,4,0),(15230,'26291',21667,21668,4,0),(15231,'26292',21415,21416,4,0),(15232,'26292',21789,21790,4,0),(15233,'26300',21545,21546,4,0),(15234,'26310',21195,21196,4,0),(15235,'26311',21319,21320,4,0),(15236,'26311',21251,21252,4,0),(15237,'26311',21159,21160,4,0),(15238,'26311',21269,21270,4,0),(15239,'26312',21223,21224,4,0),(15240,'26312',21163,21164,4,0),(15241,'26312',21757,21758,4,0),(15242,'26313',21765,21766,4,0),(15243,'26314',21447,21448,4,0),(15244,'26315',21281,21282,4,0),(15245,'26315',21137,21138,4,0),(15246,'26315',21507,21508,4,0),(15247,'26315',21677,21678,4,0),(15248,'26320',21203,21204,4,0),(15249,'26321',21227,21228,4,0),(15250,'26321',21519,21520,4,0),(15251,'26321',21729,21730,4,0),(15252,'26321',21827,21828,4,0),(15253,'26321',21471,21472,4,0),(15254,'26321',21601,21602,4,0),(15255,'26322',21155,21156,4,0),(15256,'26322',21231,21232,4,0),(15257,'26323',21431,21432,4,0),(15258,'26323',21191,21192,4,0),(15259,'26324',21133,21134,4,0),(15260,'26325',21811,21812,4,0),(15261,'26325',21265,21266,4,0),(15262,'26325',21261,21262,4,0),(15263,'26325',21807,21808,4,0),(15264,'26326',21655,21656,4,0),(15265,'26327',21211,21212,4,0),(15266,'26328',21365,21366,4,0),(15267,'26329',21511,21512,4,0),(15268,'26329',21839,21840,4,0),(15269,'26329',21253,21254,4,0),(15270,'26329',21257,21258,4,0),(15271,'26329',21823,21824,4,0),(15272,'26329',21781,21782,4,0),(15273,'26329',21835,21836,4,0),(15274,'26330',21239,21240,4,0),(15275,'26338',21671,21672,4,0),(15276,'26339',21673,21674,4,0),(15277,'26339',21097,21098,4,0),(15278,'26340',21651,21652,4,0),(15279,'26350',21289,21290,4,0),(15280,'26359',21749,21750,4,0),(15281,'26360',21385,21386,4,0),(15282,'26370',21559,21560,4,0),(15283,'26371',21777,21778,4,0),(15284,'26371',21711,21712,4,0),(15285,'26372',21443,21444,4,0),(15286,'26373',21341,21342,4,0),(15287,'26374',21523,21524,4,0),(15288,'26375',21361,21362,4,0),(15289,'26376',21703,21704,4,0),(15290,'26500',21247,21248,4,0),(15291,'26509',21125,21126,4,0),(15292,'26510',21609,21610,4,0),(15293,'26511',21353,21354,4,0),(15294,'26512',21761,21762,4,0),(15295,'26513',21183,21184,4,0),(15296,'26520',21293,21294,4,0),(15297,'26525',21451,21452,4,0),(15298,'26526',21327,21328,4,0),(15299,'26527',21329,21330,4,0),(15300,'26527',21295,21296,4,0),(15301,'26528',21297,21298,4,0),(15302,'26529',21299,21300,4,0),(15303,'26530',21105,21106,4,0),(15304,'26531',21107,21108,4,0),(15305,'26532',21769,21770,4,0),(15306,'26533',21555,21556,4,0),(15307,'26540',21141,21142,4,0),(15308,'26550',21633,21634,4,0),(15309,'26559',21129,21130,4,0),(15310,'26560',21187,21188,4,0),(15311,'26570',21621,21622,4,0),(15312,'26580',21175,21176,4,0),(15313,'26584',21419,21420,4,0),(15314,'26585',21687,21688,4,0),(15315,'26585',21167,21168,4,0),(15316,'26586',21357,21358,4,0),(15317,'26586',21847,21848,4,0),(15318,'26586',21527,21528,4,0),(15319,'26587',21815,21816,4,0),(15320,'26587',21409,21410,4,0),(15321,'26587',21535,21536,4,0),(15322,'26588',21215,21216,4,0),(15323,'26588',21219,21220,4,0),(15324,'26589',21617,21618,4,0),(15325,'26589',21169,21170,4,0),(15326,'27001',25231,25232,4,0),(15327,'27002',25233,25234,4,0),(15328,'27003',25235,25236,4,0),(15329,'27004',25237,25238,4,0),(15330,'27100',24713,24714,4,0),(15331,'27110',24715,24716,4,0),(15332,'27111',24717,24718,4,0),(15333,'27112',24719,24720,4,0),(15334,'27113',25395,25396,4,0),(15335,'27113',24721,24722,4,0),(15336,'27114',24723,24724,4,0),(15337,'27115',24725,24726,4,0),(15338,'27116',24727,24728,4,0),(15339,'27117',24729,24730,4,0),(15340,'27118',24731,24732,4,0),(15341,'27120',25003,25004,4,0),(15342,'27122',25005,25006,4,0),(15343,'27123',25007,25008,4,0),(15344,'27124',25009,25010,4,0),(15345,'27125',25011,25012,4,0),(15346,'27126',25013,25014,4,0),(15347,'27127',25015,25016,4,0),(15348,'27128',25017,25018,4,0),(15349,'27129',25019,25020,4,0),(15350,'27130',24849,24850,4,0),(15351,'27131',24851,24852,4,0),(15352,'27132',24853,24854,4,0),(15353,'27133',24855,24856,4,0),(15354,'27134',24733,24734,4,0),(15355,'27135',24735,24736,4,0),(15356,'27136',24737,24738,4,0),(15357,'27140',25239,25240,4,0),(15358,'27141',25241,25242,4,0),(15359,'27142',25021,25022,4,0),(15360,'27143',25023,25024,4,0),(15361,'27144',25025,25026,4,0),(15362,'27145',25399,25400,4,0),(15363,'27146',25243,25244,4,0),(15364,'27146',25027,25028,4,0),(15365,'27150',25489,25490,4,0),(15366,'27151',25491,25492,4,0),(15367,'27152',25493,25494,4,0),(15368,'27152',25177,25178,4,0),(15369,'27153',25495,25496,4,0),(15370,'27154',25497,25498,4,0),(15371,'27155',25499,25500,4,0),(15372,'27156',25135,25136,4,0),(15373,'27157',25501,25502,4,0),(15374,'27160',25245,25246,4,0),(15375,'27161',25247,25248,4,0),(15376,'27162',25401,25402,4,0),(15377,'27163',25403,25404,4,0),(15378,'27164',25405,25406,4,0),(15379,'27166',25029,25030,4,0),(15380,'27168',25407,25408,4,0),(15381,'27169',25249,25250,4,0),(15382,'27170',25589,25590,4,0),(15383,'27177',25591,25592,4,0),(15384,'27178',25593,25594,4,0),(15385,'27179',25595,25596,4,0),(15386,'27180',25251,25252,4,0),(15387,'27181',25253,25254,4,0),(15388,'27181',25179,25180,4,0),(15389,'27182',25255,25256,4,0),(15390,'27183',25181,25182,4,0),(15391,'27184',25183,25184,4,0),(15392,'27185',25257,25258,4,0),(15393,'27185',25185,25186,4,0),(15394,'27186',25187,25188,4,0),(15395,'27187',25597,25598,4,0),(15396,'27188',25259,25260,4,0),(15397,'27188',25599,25600,4,0),(15398,'27190',25261,25262,4,0),(15399,'27190',25409,25410,4,0),(15400,'27191',25263,25264,4,0),(15401,'27192',25265,25266,4,0),(15402,'27200',25509,25510,4,0),(15403,'27203',25511,25512,4,0),(15404,'27204',25513,25514,4,0),(15405,'27205',25515,25516,4,0),(15406,'27206',25517,25518,4,0),(15407,'27207',25519,25520,4,0),(15408,'27208',25521,25522,4,0),(15409,'27209',25523,25524,4,0),(15410,'27210',25267,25268,4,0),(15411,'27210',25189,25190,4,0),(15412,'27211',25191,25192,4,0),(15413,'27212',25601,25602,4,0),(15414,'27213',25603,25604,4,0),(15415,'27214',25605,25606,4,0),(15416,'27215',25351,25352,4,0),(15417,'27216',25525,25526,4,0),(15418,'27217',25527,25528,4,0),(15419,'27220',25137,25138,4,0),(15420,'27220',24777,24778,4,0),(15421,'27226',25139,25140,4,0),(15422,'27227',25141,25142,4,0),(15423,'27228',25143,25144,4,0),(15424,'27229',25145,25146,4,0),(15425,'27230',25269,25270,4,0),(15426,'27231',25271,25272,4,0),(15427,'27232',25273,25274,4,0),(15428,'27233',25193,25194,4,0),(15429,'27233',25275,25276,4,0),(15430,'27234',25195,25196,4,0),(15431,'27235',25147,25148,4,0),(15432,'27240',25295,25296,4,0),(15433,'27241',25297,25298,4,0),(15434,'27243',25653,25654,4,0),(15435,'27244',25655,25656,4,0),(15436,'27245',25657,25658,4,0),(15437,'27246',24741,24742,4,0),(15438,'27247',25569,25570,4,0),(15439,'27247',25299,25300,4,0),(15440,'27248',24743,24744,4,0),(15441,'27250',24977,24978,4,0),(15442,'27256',24979,24980,4,0),(15443,'27257',24981,24982,4,0),(15444,'27258',24983,24984,4,0),(15445,'27259',24985,24986,4,0),(15446,'27260',24987,24988,4,0),(15447,'27266',24989,24990,4,0),(15448,'27267',24991,24992,4,0),(15449,'27268',24993,24994,4,0),(15450,'27269',24995,24996,4,0),(15451,'27270',25571,25572,4,0),(15452,'27271',24997,24998,4,0),(15453,'27272',25573,25574,4,0),(15454,'27273',25575,25576,4,0),(15455,'27274',25577,25578,4,0),(15456,'27275',25579,25580,4,0),(15457,'27276',24857,24858,4,0),(15458,'27277',24859,24860,4,0),(15459,'27278',24861,24862,4,0),(15460,'27279',25581,25582,4,0),(15461,'27280',25583,25584,4,0),(15462,'27283',25585,25586,4,0),(15463,'27286',24745,24746,4,0),(15464,'27287',24747,24748,4,0),(15465,'27289',24999,25000,4,0),(15466,'27289',25277,25278,4,0),(15467,'27290',25279,25280,4,0),(15468,'27293',25281,25282,4,0),(15469,'27293',25031,25032,4,0),(15470,'27294',25283,25284,4,0),(15471,'27296',25285,25286,4,0),(15472,'27297',25287,25288,4,0),(15473,'27298',25289,25290,4,0),(15474,'27299',25149,25150,4,0),(15475,'27299',25291,25292,4,0),(15476,'27300',25153,25154,4,0),(15477,'27305',25155,25156,4,0),(15478,'27306',25157,25158,4,0),(15479,'27307',25159,25160,4,0),(15480,'27308',25161,25162,4,0),(15481,'27309',25163,25164,4,0),(15482,'27310',25645,25646,4,0),(15483,'27317',25647,25648,4,0),(15484,'27318',25649,25650,4,0),(15485,'27320',25609,25610,4,0),(15486,'27324',25103,25104,4,0),(15487,'27325',25105,25106,4,0),(15488,'27326',25107,25108,4,0),(15489,'27327',25109,25110,4,0),(15490,'27328',25111,25112,4,0),(15491,'27328',25611,25612,4,0),(15492,'27329',25613,25614,4,0),(15493,'27330',24751,24752,4,0),(15494,'27331',24753,24754,4,0),(15495,'27332',24755,24756,4,0),(15496,'27333',24757,24758,4,0),(15497,'27334',24759,24760,4,0),(15498,'27335',24761,24762,4,0),(15499,'27336',24763,24764,4,0),(15500,'27338',24765,24766,4,0),(15501,'27339',25113,25114,4,0),(15502,'27339',24767,24768,4,0),(15503,'27340',24941,24942,4,0),(15504,'27341',25413,25414,4,0),(15505,'27342',25415,25416,4,0),(15506,'27343',24943,24944,4,0),(15507,'27344',24945,24946,4,0),(15508,'27345',25417,25418,4,0),(15509,'27346',25419,25420,4,0),(15510,'27347',25421,25422,4,0),(15511,'27347',24769,24770,4,0),(15512,'27348',25423,25424,4,0),(15513,'27349',24947,24948,4,0),(15514,'27350',24949,24950,4,0),(15515,'27359',24951,24952,4,0),(15516,'27360',25199,25200,4,0),(15517,'27362',25427,25428,4,0),(15518,'27363',25429,25430,4,0),(15519,'27364',25431,25432,4,0),(15520,'27366',25201,25202,4,0),(15521,'27367',25203,25204,4,0),(15522,'27368',25205,25206,4,0),(15523,'27369',25433,25434,4,0),(15524,'27369',25207,25208,4,0),(15525,'27370',25621,25622,4,0),(15526,'27370',24931,24932,4,0),(15527,'27372',25165,25166,4,0),(15528,'27372',24933,24934,4,0),(15529,'27373',24935,24936,4,0),(15530,'27373',25503,25504,4,0),(15531,'27374',25505,25506,4,0),(15532,'27375',25785,25786,4,0),(15533,'27375',24937,24938,4,0),(15534,'27375',25091,25092,4,0),(15535,'27376',25093,25094,4,0),(15536,'27377',25095,25096,4,0),(15537,'27378',25097,25098,4,0),(15538,'27379',25099,25100,4,0),(15539,'27380',25167,25168,4,0),(15540,'27388',25169,25170,4,0),(15541,'27389',25171,25172,4,0),(15542,'27390',25615,25616,4,0),(15543,'27391',24771,24772,4,0),(15544,'27391',25617,25618,4,0),(15545,'27392',25695,25696,4,0),(15546,'27400',25173,25174,4,0),(15547,'27400',25319,25320,4,0),(15548,'27410',25321,25322,4,0),(15549,'27411',25323,25324,4,0),(15550,'27412',25325,25326,4,0),(15551,'27413',24773,24774,4,0),(15552,'27413',25327,25328,4,0),(15553,'27414',25329,25330,4,0),(15554,'27415',25331,25332,4,0),(15555,'27416',25333,25334,4,0),(15556,'27417',25335,25336,4,0),(15557,'27418',25337,25338,4,0),(15558,'27419',25531,25532,4,0),(15559,'27419',25339,25340,4,0),(15560,'27420',25341,25342,4,0),(15561,'27421',25723,25724,4,0),(15562,'27422',25725,25726,4,0),(15563,'27423',25727,25728,4,0),(15564,'27424',25729,25730,4,0),(15565,'27425',25731,25732,4,0),(15566,'27430',25533,25534,4,0),(15567,'27437',25535,25536,4,0),(15568,'27438',25537,25538,4,0),(15569,'27439',25539,25540,4,0),(15570,'27440',25733,25734,4,0),(15571,'27450',25541,25542,4,0),(15572,'27460',25735,25736,4,0),(15573,'27466',25737,25738,4,0),(15574,'27468',25739,25740,4,0),(15575,'27469',25741,25742,4,0),(15576,'27470',25543,25544,4,0),(15577,'27500',25063,25064,4,0),(15578,'27510',25065,25066,4,0),(15579,'27511',25067,25068,4,0),(15580,'27512',25069,25070,4,0),(15581,'27513',25071,25072,4,0),(15582,'27514',25073,25074,4,0),(15583,'27515',25353,25354,4,0),(15584,'27515',25075,25076,4,0),(15585,'27516',25077,25078,4,0),(15586,'27517',25079,25080,4,0),(15587,'27518',25081,25082,4,0),(15588,'27519',25083,25084,4,0),(15589,'27520',24959,24960,4,0),(15590,'27527',24961,24962,4,0),(15591,'27528',24963,24964,4,0),(15592,'27529',24965,24966,4,0),(15593,'27530',24967,24968,4,0),(15594,'27531',24969,24970,4,0),(15595,'27532',25439,25440,4,0),(15596,'27532',24971,24972,4,0),(15597,'27533',25085,25086,4,0),(15598,'27533',24973,24974,4,0),(15599,'27540',25441,25442,4,0),(15600,'27543',25443,25444,4,0),(15601,'27544',25445,25446,4,0),(15602,'27545',25447,25448,4,0),(15603,'27546',25449,25450,4,0),(15604,'27547',25451,25452,4,0),(15605,'27548',25453,25454,4,0),(15606,'27549',25545,25546,4,0),(15607,'27549',25455,25456,4,0),(15608,'27550',25745,25746,4,0),(15609,'27554',25747,25748,4,0),(15610,'27555',25749,25750,4,0),(15611,'27556',25751,25752,4,0),(15612,'27557',25753,25754,4,0),(15613,'27558',25755,25756,4,0),(15614,'27559',25757,25758,4,0),(15615,'27560',25355,25356,4,0),(15616,'27568',25357,25358,4,0),(15617,'27569',25359,25360,4,0),(15618,'27570',24827,24828,4,0),(15619,'27576',24829,24830,4,0),(15620,'27577',24831,24832,4,0),(15621,'27578',24833,24834,4,0),(15622,'27579',24835,24836,4,0),(15623,'27590',25343,25344,4,0),(15624,'27591',25345,25346,4,0),(15625,'27592',25547,25548,4,0),(15626,'27592',25347,25348,4,0),(15627,'27593',25549,25550,4,0),(15628,'27594',25457,25458,4,0),(15629,'27595',25087,25088,4,0),(15630,'27596',25759,25760,4,0),(15631,'27600',25697,25698,4,0),(15632,'27610',25699,25700,4,0),(15633,'27611',25553,25554,4,0),(15634,'27612',25701,25702,4,0),(15635,'27612',25555,25556,4,0),(15636,'27613',25703,25704,4,0),(15637,'27614',25209,25210,4,0),(15638,'27614',25705,25706,4,0),(15639,'27615',25211,25212,4,0),(15640,'27615',25707,25708,4,0),(15641,'27616',25709,25710,4,0),(15642,'27617',25711,25712,4,0),(15643,'27618',25713,25714,4,0),(15644,'27619',25715,25716,4,0),(15645,'27620',25669,25670,4,0),(15646,'27623',25671,25672,4,0),(15647,'27624',25673,25674,4,0),(15648,'27625',25675,25676,4,0),(15649,'27626',25677,25678,4,0),(15650,'27627',25679,25680,4,0),(15651,'27628',25681,25682,4,0),(15652,'27630',25773,25774,4,0),(15653,'27631',25683,25684,4,0),(15654,'27631',25775,25776,4,0),(15655,'27632',25777,25778,4,0),(15656,'27633',25685,25686,4,0),(15657,'27633',25435,25436,4,0),(15658,'27634',25779,25780,4,0),(15659,'27635',25687,25688,4,0),(15660,'27636',25689,25690,4,0),(15661,'27637',25717,25718,4,0),(15662,'27638',25691,25692,4,0),(15663,'27639',25781,25782,4,0),(15664,'27640',24897,24898,4,0),(15665,'27646',24839,24840,4,0),(15666,'27647',24899,24900,4,0),(15667,'27648',24901,24902,4,0),(15668,'27649',24903,24904,4,0),(15669,'27650',24905,24906,4,0),(15670,'27650',25373,25374,4,0),(15671,'27651',25375,25376,4,0),(15672,'27652',25377,25378,4,0),(15673,'27653',25379,25380,4,0),(15674,'27654',25381,25382,4,0),(15675,'27655',25383,25384,4,0),(15676,'27656',25385,25386,4,0),(15677,'27657',25387,25388,4,0),(15678,'27658',25389,25390,4,0),(15679,'27659',25035,25036,4,0),(15680,'27659',25391,25392,4,0),(15681,'27660',24907,24908,4,0),(15682,'27661',25037,25038,4,0),(15683,'27661',24909,24910,4,0),(15684,'27662',25039,25040,4,0),(15685,'27663',24911,24912,4,0),(15686,'27664',25041,25042,4,0),(15687,'27664',24913,24914,4,0),(15688,'27665',25043,25044,4,0),(15689,'27666',25045,25046,4,0),(15690,'27667',25047,25048,4,0),(15691,'27668',24915,24916,4,0),(15692,'27670',25559,25560,4,0),(15693,'27671',25561,25562,4,0),(15694,'27672',25563,25564,4,0),(15695,'27673',25565,25566,4,0),(15696,'27675',24841,24842,4,0),(15697,'27676',24843,24844,4,0),(15698,'27677',24917,24918,4,0),(15699,'27677',25049,25050,4,0),(15700,'27677',24845,24846,4,0),(15701,'27678',24919,24920,4,0),(15702,'27679',24921,24922,4,0),(15703,'27680',24865,24866,4,0),(15704,'27685',24867,24868,4,0),(15705,'27686',24869,24870,4,0),(15706,'27687',24871,24872,4,0),(15707,'27688',24873,24874,4,0),(15708,'27689',24875,24876,4,0),(15709,'27690',25719,25720,4,0),(15710,'27691',25213,25214,4,0),(15711,'27692',25215,25216,4,0),(15712,'27693',25217,25218,4,0),(15713,'27694',24923,24924,4,0),(15714,'27695',24877,24878,4,0),(15715,'27695',24925,24926,4,0),(15716,'27696',24879,24880,4,0),(15717,'27697',24881,24882,4,0),(15718,'27698',24927,24928,4,0),(15719,'27699',25219,25220,4,0),(15720,'27700',25625,25626,4,0),(15721,'27700',25461,25462,4,0),(15722,'27710',25627,25628,4,0),(15723,'27711',25629,25630,4,0),(15724,'27712',25631,25632,4,0),(15725,'27713',25633,25634,4,0),(15726,'27714',25635,25636,4,0),(15727,'27715',25637,25638,4,0),(15728,'27720',24779,24780,4,0),(15729,'27721',24781,24782,4,0),(15730,'27722',24783,24784,4,0),(15731,'27723',24785,24786,4,0),(15732,'27724',24787,24788,4,0),(15733,'27725',24789,24790,4,0),(15734,'27726',24791,24792,4,0),(15735,'27727',24793,24794,4,0),(15736,'27728',24795,24796,4,0),(15737,'27729',24797,24798,4,0),(15738,'27730',24801,24802,4,0),(15739,'27737',24803,24804,4,0),(15740,'27738',24805,24806,4,0),(15741,'27740',25303,25304,4,0),(15742,'27742',25305,25306,4,0),(15743,'27743',25661,25662,4,0),(15744,'27744',25663,25664,4,0),(15745,'27745',25665,25666,4,0),(15746,'27747',25307,25308,4,0),(15747,'27748',25309,25310,4,0),(15748,'27749',25311,25312,4,0),(15749,'27750',25223,25224,4,0),(15750,'27751',25225,25226,4,0),(15751,'27752',25313,25314,4,0),(15752,'27760',25227,25228,4,0),(15753,'27765',25763,25764,4,0),(15754,'27766',25765,25766,4,0),(15755,'27767',25767,25768,4,0),(15756,'27768',25769,25770,4,0),(15757,'27770',25463,25464,4,0),(15758,'27773',24815,24816,4,0),(15759,'27774',24817,24818,4,0),(15760,'27775',24819,24820,4,0),(15761,'27776',24821,24822,4,0),(15762,'27777',25465,25466,4,0),(15763,'27778',25467,25468,4,0),(15764,'27778',24823,24824,4,0),(15765,'27779',25469,25470,4,0),(15766,'27780',25117,25118,4,0),(15767,'27785',25119,25120,4,0),(15768,'27786',25121,25122,4,0),(15769,'27787',25123,25124,4,0),(15770,'27788',25125,25126,4,0),(15771,'27789',25127,25128,4,0),(15772,'27790',24885,24886,4,0),(15773,'27791',25315,25316,4,0),(15774,'27792',24887,24888,4,0),(15775,'27793',24889,24890,4,0),(15776,'27794',24891,24892,4,0),(15777,'27796',25639,25640,4,0),(15778,'27797',25641,25642,4,0),(15779,'27798',24893,24894,4,0),(15780,'27800',25787,25788,4,0),(15781,'27810',25789,25790,4,0),(15782,'27811',25791,25792,4,0),(15783,'27812',25793,25794,4,0),(15784,'27813',25795,25796,4,0),(15785,'27814',25797,25798,4,0),(15786,'27815',25799,25800,4,0),(15787,'27816',25801,25802,4,0),(15788,'27817',25363,25364,4,0),(15789,'27818',25803,25804,4,0),(15790,'27820',25805,25806,4,0),(15791,'27821',25807,25808,4,0),(15792,'27822',25809,25810,4,0),(15793,'27823',25811,25812,4,0),(15794,'27824',25843,25844,4,0),(15795,'27825',25813,25814,4,0),(15796,'27826',25845,25846,4,0),(15797,'27830',25815,25816,4,0),(15798,'27832',25847,25848,4,0),(15799,'27833',25849,25850,4,0),(15800,'27834',25851,25852,4,0),(15801,'27835',25853,25854,4,0),(15802,'27836',25365,25366,4,0),(15803,'27837',25367,25368,4,0),(15804,'27840',25817,25818,4,0),(15805,'27841',25819,25820,4,0),(15806,'27842',25821,25822,4,0),(15807,'27843',25823,25824,4,0),(15808,'27843',24807,24808,4,0),(15809,'27845',24809,24810,4,0),(15810,'27849',24811,24812,4,0),(15811,'27850',25827,25828,4,0),(15812,'27860',25473,25474,4,0),(15813,'27861',25829,25830,4,0),(15814,'27861',25475,25476,4,0),(15815,'27863',25831,25832,4,0),(15816,'27864',25833,25834,4,0),(15817,'27865',25369,25370,4,0),(15818,'27865',25481,25482,4,0),(15819,'27866',25483,25484,4,0),(15820,'27866',25835,25836,4,0),(15821,'27867',25485,25486,4,0),(15822,'27867',25837,25838,4,0),(15823,'27868',25477,25478,4,0),(15824,'27869',25839,25840,4,0),(15825,'27870',25857,25858,4,0),(15826,'27876',25859,25860,4,0),(15827,'27877',25861,25862,4,0),(15828,'27878',25863,25864,4,0),(15829,'27879',25865,25866,4,0),(15830,'27880',24955,24956,4,0),(15831,'27888',25053,25054,4,0),(15832,'27889',25055,25056,4,0),(15833,'27890',25057,25058,4,0),(15834,'27891',25059,25060,4,0),(15835,'27892',25129,25130,4,0),(15836,'27893',25131,25132,4,0),(15837,'28000',26343,26344,4,0),(15838,'28001',26345,26346,4,0),(15839,'28002',26347,26348,4,0),(15840,'28003',26349,26350,4,0),(15841,'28004',26351,26352,4,0),(15842,'28005',26353,26354,4,0),(15843,'28006',26355,26356,4,0),(15844,'28007',26357,26358,4,0),(15845,'28008',26359,26360,4,0),(15846,'28009',26361,26362,4,0),(15847,'28010',26363,26364,4,0),(15848,'28011',26365,26366,4,0),(15849,'28012',26367,26368,4,0),(15850,'28013',26369,26370,4,0),(15851,'28014',26371,26372,4,0),(15852,'28015',26373,26374,4,0),(15853,'28016',26375,26376,4,0),(15854,'28017',26377,26378,4,0),(15855,'28018',26379,26380,4,0),(15856,'28019',26381,26382,4,0),(15857,'28020',26383,26384,4,0),(15858,'28021',26385,26386,4,0),(15859,'28022',26387,26388,4,0),(15860,'28023',26389,26390,4,0),(15861,'28024',26391,26392,4,0),(15862,'28025',26393,26394,4,0),(15863,'28026',26395,26396,4,0),(15864,'28027',26397,26398,4,0),(15865,'28028',26399,26400,4,0),(15866,'28029',26401,26402,4,0),(15867,'28030',26403,26404,4,0),(15868,'28031',26405,26406,4,0),(15869,'28032',26407,26408,4,0),(15870,'28033',26409,26410,4,0),(15871,'28034',26411,26412,4,0),(15872,'28035',26413,26414,4,0),(15873,'28036',26415,26416,4,0),(15874,'28037',26417,26418,4,0),(15875,'28038',26419,26420,4,0),(15876,'28039',26421,26422,4,0),(15877,'28040',26423,26424,4,0),(15878,'28041',26425,26426,4,0),(15879,'28042',26427,26428,4,0),(15880,'28043',26429,26430,4,0),(15881,'28044',26431,26432,4,0),(15882,'28045',26433,26434,4,0),(15883,'28046',26435,26436,4,0),(15884,'28047',26437,26438,4,0),(15885,'28048',26439,26440,4,0),(15886,'28049',26441,26442,4,0),(15887,'28050',26443,26444,4,0),(15888,'28051',26445,26446,4,0),(15889,'28052',26447,26448,4,0),(15890,'28053',26449,26450,4,0),(15891,'28054',26451,26452,4,0),(15892,'28055',26453,26454,4,0),(15893,'28100',25895,25896,4,0),(15894,'28108',25897,25898,4,0),(15895,'28109',25899,25900,4,0),(15896,'28110',25919,25920,4,0),(15897,'28120',26071,26072,4,0),(15898,'28120',25921,25922,4,0),(15899,'28130',26835,26836,4,0),(15900,'28140',26181,26182,4,0),(15901,'28150',26843,26844,4,0),(15902,'28160',26755,26756,4,0),(15903,'28170',26839,26840,4,0),(15904,'28180',26779,26780,4,0),(15905,'28189',26787,26788,4,0),(15906,'28189',26115,26116,4,0),(15907,'28189',26583,26584,4,0),(15908,'28190',16403,16404,4,0),(15909,'28190',26629,26630,4,0),(15910,'28190',26487,26488,4,0),(15911,'28191',26625,26626,4,0),(15912,'28191',26277,26278,4,0),(15913,'28191',26255,26256,4,0),(15914,'28192',26119,26120,4,0),(15915,'28193',26035,26036,4,0),(15916,'28194',26671,26672,4,0),(15917,'28194',25965,25966,4,0),(15918,'28195',26633,26634,4,0),(15919,'28196',26635,26636,4,0),(15920,'28200',26697,26698,4,0),(15921,'28210',26531,26532,4,0),(15922,'28210',26821,26822,4,0),(15923,'28211',26131,26132,4,0),(15924,'28212',26533,26534,4,0),(15925,'28212',26133,26134,4,0),(15926,'28213',26067,26068,4,0),(15927,'28214',26155,26156,4,0),(15928,'28219',26135,26136,4,0),(15929,'28220',26459,26460,4,0),(15930,'28221',26461,26462,4,0),(15931,'28222',26463,26464,4,0),(15932,'28223',26615,26616,4,0),(15933,'28224',26617,26618,4,0),(15934,'28229',26897,26898,4,0),(15935,'28231',26285,26286,4,0),(15936,'28232',26287,26288,4,0),(15937,'28240',26259,26260,4,0),(15938,'28248',26261,26262,4,0),(15939,'28250',26189,26190,4,0),(15940,'28250',26783,26784,4,0),(15941,'28260',26191,26192,4,0),(15942,'28270',26193,26194,4,0),(15943,'28270',26081,26082,4,0),(15944,'28279',26083,26084,4,0),(15945,'28280',26137,26138,4,0),(15946,'28290',26289,26290,4,0),(15947,'28292',26195,26196,4,0),(15948,'28292',26139,26140,4,0),(15949,'28293',26919,26920,4,0),(15950,'28294',26675,26676,4,0),(15951,'28295',26817,26818,4,0),(15952,'28296',26729,26730,4,0),(15953,'28297',26731,26732,4,0),(15954,'28300',25939,25940,4,0),(15955,'28320',26607,26608,4,0),(15956,'28330',26703,26704,4,0),(15957,'28340',26825,26826,4,0),(15958,'28350',26047,26048,4,0),(15959,'28359',26763,26764,4,0),(15960,'28360',26867,26868,4,0),(15961,'28370',26043,26044,4,0),(15962,'28380',26063,26064,4,0),(15963,'28390',25961,25962,4,0),(15964,'28391',26809,26810,4,0),(15965,'28400',26197,26198,4,0),(15966,'28400',26059,26060,4,0),(15967,'28409',25925,25926,4,0),(15968,'28410',26467,26468,4,0),(15969,'28411',26495,26496,4,0),(15970,'28412',26123,26124,4,0),(15971,'28413',26125,26126,4,0),(15972,'28420',26199,26200,4,0),(15973,'28430',26243,26244,4,0),(15974,'28430',25927,25928,4,0),(15975,'28440',26245,26246,4,0),(15976,'28450',26055,26056,4,0),(15977,'28460',26319,26320,4,0),(15978,'28470',26031,26032,4,0),(15979,'28470',26469,26470,4,0),(15980,'28480',26247,26248,4,0),(15981,'28490',25957,25958,4,0),(15982,'28491',26523,26524,4,0),(15983,'28492',26127,26128,4,0),(15984,'28492',26471,26472,4,0),(15985,'28500',25943,25944,4,0),(15986,'28510',26011,26012,4,0),(15987,'28511',26847,26848,4,0),(15988,'28512',26901,26902,4,0),(15989,'28514',26551,26552,4,0),(15990,'28514',26903,26904,4,0),(15991,'28515',26555,26556,4,0),(15992,'28521',26659,26660,4,0),(15993,'28522',26661,26662,4,0),(15994,'28523',26663,26664,4,0),(15995,'28524',26665,26666,4,0),(15996,'28529',26667,26668,4,0),(15997,'28530',26499,26500,4,0),(15998,'28540',26595,26596,4,0),(15999,'28550',26759,26760,4,0),(16000,'28560',26019,26020,4,0),(16001,'28570',26559,26560,4,0),(16002,'28580',25931,25932,4,0),(16003,'28590',26907,26908,4,0),(16004,'28594',26801,26802,4,0),(16005,'28595',26151,26152,4,0),(16006,'28596',25981,25982,4,0),(16007,'28597',26185,26186,4,0),(16008,'28598',26875,26876,4,0),(16009,'28600',26539,26540,4,0),(16010,'28607',26109,26110,4,0),(16011,'28609',26893,26894,4,0),(16012,'28609',26743,26744,4,0),(16013,'28609',26883,26884,4,0),(16014,'28610',26879,26880,4,0),(16015,'28620',25915,25916,4,0),(16016,'28630',26863,26864,4,0),(16017,'28635',26503,26504,4,0),(16018,'28640',26001,26002,4,0),(16019,'28648',26003,26004,4,0),(16020,'28649',26683,26684,4,0),(16021,'28650',26027,26028,4,0),(16022,'28660',25969,25970,4,0),(16023,'28670',26911,26912,4,0),(16024,'28680',26707,26708,4,0),(16025,'28690',25985,25986,4,0),(16026,'28691',26887,26888,4,0),(16027,'28692',26889,26890,4,0),(16028,'28693',26641,26642,4,0),(16029,'28694',26039,26040,4,0),(16030,'28695',26547,26548,4,0),(16031,'28696',26591,26592,4,0),(16032,'28700',26711,26712,4,0),(16033,'28701',26713,26714,4,0),(16034,'28702',26715,26716,4,0),(16035,'28703',26717,26718,4,0),(16036,'28706',26719,26720,4,0),(16037,'28707',26721,26722,4,0),(16038,'28707',26073,26074,4,0),(16039,'28708',26723,26724,4,0),(16040,'28709',26725,26726,4,0),(16041,'28720',25993,25994,4,0),(16042,'28721',25997,25998,4,0),(16043,'28721',26651,26652,4,0),(16044,'28722',26147,26148,4,0),(16045,'28723',26587,26588,4,0),(16046,'28729',26813,26814,4,0),(16047,'28729',26859,26860,4,0),(16048,'28729',26527,26528,4,0),(16049,'28730',25989,25990,4,0),(16050,'28737',26281,26282,4,0),(16051,'28737',25977,25978,4,0),(16052,'28737',26213,26214,4,0),(16053,'28737',26611,26612,4,0),(16054,'28739',26915,26916,4,0),(16055,'28739',26209,26210,4,0),(16056,'28739',26543,26544,4,0),(16057,'28739',26203,26204,4,0),(16058,'28740',26645,26646,4,0),(16059,'28742',26327,26328,4,0),(16060,'28742',25875,25876,4,0),(16061,'28743',26205,26206,4,0),(16062,'28743',26015,26016,4,0),(16063,'28749',26647,26648,4,0),(16064,'28749',26603,26604,4,0),(16065,'28750',26075,26076,4,0),(16066,'28750',26687,26688,4,0),(16067,'28750',26699,26700,4,0),(16068,'28751',26273,26274,4,0),(16069,'28752',26331,26332,4,0),(16070,'28753',26333,26334,4,0),(16071,'28754',26637,26638,4,0),(16072,'28754',26335,26336,4,0),(16073,'28755',26269,26270,4,0),(16074,'28755',26339,26340,4,0),(16075,'28755',26679,26680,4,0),(16076,'28755',26251,26252,4,0),(16077,'28756',26747,26748,4,0),(16078,'28760',26795,26796,4,0),(16079,'28761',26797,26798,4,0),(16080,'28770',26077,26078,4,0),(16081,'28791',26751,26752,4,0),(16082,'28792',26483,26484,4,0),(16083,'28794',26239,26240,4,0),(16084,'28801',25879,25880,4,0),(16085,'28802',25881,25882,4,0),(16086,'28803',25883,25884,4,0),(16087,'28804',25885,25886,4,0),(16088,'28805',25887,25888,4,0),(16089,'28806',25889,25890,4,0),(16090,'28807',26111,26112,4,0),(16091,'28807',25891,25892,4,0),(16092,'28810',26871,26872,4,0),(16093,'28811',26087,26088,4,0),(16094,'28812',26851,26852,4,0),(16095,'28812',26599,26600,4,0),(16096,'28813',26621,26622,4,0),(16097,'28813',26791,26792,4,0),(16098,'28814',26105,26106,4,0),(16099,'28815',26655,26656,4,0),(16100,'28815',26159,26160,4,0),(16101,'28816',26805,26806,4,0),(16102,'28816',26007,26008,4,0),(16103,'28817',26323,26324,4,0),(16104,'28818',25935,25936,4,0),(16105,'28818',26735,26736,4,0),(16106,'28820',26091,26092,4,0),(16107,'28821',26093,26094,4,0),(16108,'28822',26095,26096,4,0),(16109,'28823',26097,26098,4,0),(16110,'28830',26691,26692,4,0),(16111,'28840',26479,26480,4,0),(16112,'28850',26767,26768,4,0),(16113,'28860',26563,26564,4,0),(16114,'28861',26565,26566,4,0),(16115,'28862',26567,26568,4,0),(16116,'28863',26051,26052,4,0),(16117,'28864',25871,25872,4,0),(16118,'28880',26475,26476,4,0),(16119,'28890',26315,26316,4,0),(16120,'28891',26855,26856,4,0),(16121,'28901',26217,26218,4,0),(16122,'28902',26219,26220,4,0),(16123,'28903',26221,26222,4,0),(16124,'28904',26223,26224,4,0),(16125,'28905',26225,26226,4,0),(16126,'28906',26227,26228,4,0),(16127,'28907',26229,26230,4,0),(16128,'28909',26231,26232,4,0),(16129,'28911',26295,26296,4,0),(16130,'28912',26297,26298,4,0),(16131,'28913',26299,26300,4,0),(16132,'28914',26301,26302,4,0),(16133,'28915',26303,26304,4,0),(16134,'28916',26305,26306,4,0),(16135,'28917',26307,26308,4,0),(16136,'28918',26309,26310,4,0),(16137,'28919',26311,26312,4,0),(16138,'28921',25903,25904,4,0),(16139,'28922',25905,25906,4,0),(16140,'28923',25907,25908,4,0),(16141,'28924',25909,25910,4,0),(16142,'28925',25911,25912,4,0),(16143,'28931',26505,26506,4,0),(16144,'28932',26507,26508,4,0),(16145,'28933',26509,26510,4,0),(16146,'28934',26511,26512,4,0),(16147,'28935',26513,26514,4,0),(16148,'28936',26515,26516,4,0),(16149,'28937',26517,26518,4,0),(16150,'28938',26519,26520,4,0),(16151,'28939',25947,25948,4,0),(16152,'28939',25951,25952,4,0),(16153,'28941',26163,26164,4,0),(16154,'28942',26165,26166,4,0),(16155,'28943',26167,26168,4,0),(16156,'28944',26169,26170,4,0),(16157,'28945',26171,26172,4,0),(16158,'28946',26173,26174,4,0),(16159,'28947',26175,26176,4,0),(16160,'28950',26491,26492,4,0),(16161,'28954',26535,26536,4,0),(16162,'28970',26265,26266,4,0),(16163,'28971',26235,26236,4,0),(16164,'28976',25953,25954,4,0),(16165,'28977',26023,26024,4,0),(16166,'28978',26101,26102,4,0),(16167,'28979',26739,26740,4,0),(16168,'28980',26571,26572,4,0),(16169,'28981',26573,26574,4,0),(16170,'28982',26575,26576,4,0),(16171,'28983',26577,26578,4,0),(16172,'28984',26579,26580,4,0),(16173,'28990',26775,26776,4,0),(16174,'28991',26771,26772,4,0),(16175,'29001',27249,27250,4,0),(16176,'29002',27251,27252,4,0),(16177,'29003',27253,27254,4,0),(16178,'29004',27255,27256,4,0),(16179,'29005',27257,27258,4,0),(16180,'29006',27259,27260,4,0),(16181,'29007',27261,27262,4,0),(16182,'29008',27263,27264,4,0),(16183,'29009',27265,27266,4,0),(16184,'29010',27267,27268,4,0),(16185,'29010',27099,27100,4,0),(16186,'29011',27269,27270,4,0),(16187,'29012',27271,27272,4,0),(16188,'29013',27273,27274,4,0),(16189,'29014',27275,27276,4,0),(16190,'29015',27277,27278,4,0),(16191,'29016',27279,27280,4,0),(16192,'29017',27281,27282,4,0),(16193,'29018',27283,27284,4,0),(16194,'29100',27125,27126,4,0),(16195,'29108',27211,27212,4,0),(16196,'29109',27443,27444,4,0),(16197,'29110',27351,27352,4,0),(16198,'29120',26955,26956,4,0),(16199,'29130',26951,26952,4,0),(16200,'29140',27285,27286,4,0),(16201,'29150',26967,26968,4,0),(16202,'29160',27111,27112,4,0),(16203,'29170',27129,27130,4,0),(16204,'29180',27401,27402,4,0),(16205,'29190',27287,27288,4,0),(16206,'29191',27289,27290,4,0),(16207,'29194',26935,26936,4,0),(16208,'29194',26939,26940,4,0),(16209,'29195',27133,27134,4,0),(16210,'29196',27291,27292,4,0),(16211,'29197',27293,27294,4,0),(16212,'29197',27459,27460,4,0),(16213,'29200',26989,26990,4,0),(16214,'29210',27153,27154,4,0),(16215,'29220',27149,27150,4,0),(16216,'29230',26991,26992,4,0),(16217,'29230',27495,27496,4,0),(16218,'29240',27463,27464,4,0),(16219,'29250',26993,26994,4,0),(16220,'29260',26995,26996,4,0),(16221,'29300',27007,27008,4,0),(16222,'29309',27009,27010,4,0),(16223,'29310',27489,27490,4,0),(16224,'29311',27491,27492,4,0),(16225,'29312',27503,27504,4,0),(16226,'29313',27507,27508,4,0),(16227,'29314',26997,26998,4,0),(16228,'29314',27011,27012,4,0),(16229,'29315',27013,27014,4,0),(16230,'29315',27499,27500,4,0),(16231,'29315',27509,27510,4,0),(16232,'29320',27073,27074,4,0),(16233,'29327',27439,27440,4,0),(16234,'29328',27433,27434,4,0),(16235,'29329',27435,27436,4,0),(16236,'29330',26963,26964,4,0),(16237,'29340',27077,27078,4,0),(16238,'29350',27029,27030,4,0),(16239,'29360',27357,27358,4,0),(16240,'29370',27065,27066,4,0),(16241,'29380',27141,27142,4,0),(16242,'29391',27143,27144,4,0),(16243,'29392',27233,27234,4,0),(16244,'29394',27405,27406,4,0),(16245,'29400',27407,27408,4,0),(16246,'29410',27521,27522,4,0),(16247,'29420',27169,27170,4,0),(16248,'29430',27409,27410,4,0),(16249,'29440',27221,27222,4,0),(16250,'29450',27389,27390,4,0),(16251,'29451',27373,27374,4,0),(16252,'29452',27095,27096,4,0),(16253,'29460',26985,26986,4,0),(16254,'29461',27185,27186,4,0),(16255,'29462',27241,27242,4,0),(16256,'29470',27295,27296,4,0),(16257,'29470',27157,27158,4,0),(16258,'29471',27411,27412,4,0),(16259,'29480',27203,27204,4,0),(16260,'29490',27145,27146,4,0),(16261,'29490',27069,27070,4,0),(16262,'29491',27045,27046,4,0),(16263,'29491',26947,26948,4,0),(16264,'29492',27237,27238,4,0),(16265,'29492',27207,27208,4,0),(16266,'29493',27037,27038,4,0),(16267,'29494',27033,27034,4,0),(16268,'29500',26971,26972,4,0),(16269,'29510',26973,26974,4,0),(16270,'29520',27199,27200,4,0),(16271,'29530',26925,26926,4,0),(16272,'29531',27215,27216,4,0),(16273,'29532',27347,27348,4,0),(16274,'29533',27217,27218,4,0),(16275,'29540',26999,27000,4,0),(16276,'29550',27017,27018,4,0),(16277,'29551',27091,27092,4,0),(16278,'29552',27019,27020,4,0),(16279,'29552',26975,26976,4,0),(16280,'29560',27381,27382,4,0),(16281,'29566',27115,27116,4,0),(16282,'29567',26981,26982,4,0),(16283,'29568',27383,27384,4,0),(16284,'29569',27101,27102,4,0),(16285,'29569',27385,27386,4,0),(16286,'29570',27103,27104,4,0),(16287,'29580',27105,27106,4,0),(16288,'29590',27297,27298,4,0),(16289,'29591',27299,27300,4,0),(16290,'29592',27107,27108,4,0),(16291,'29593',26977,26978,4,0),(16292,'29601',27313,27314,4,0),(16293,'29602',27315,27316,4,0),(16294,'29603',27317,27318,4,0),(16295,'29604',27319,27320,4,0),(16296,'29610',27367,27368,4,0),(16297,'29611',27225,27226,4,0),(16298,'29620',27369,27370,4,0),(16299,'29620',27301,27302,4,0),(16300,'29620',27447,27448,4,0),(16301,'29630',27049,27050,4,0),(16302,'29631',27051,27052,4,0),(16303,'29639',27053,27054,4,0),(16304,'29640',27195,27196,4,0),(16305,'29647',27331,27332,4,0),(16306,'29648',27333,27334,4,0),(16307,'29649',27335,27336,4,0),(16308,'29650',27337,27338,4,0),(16309,'29651',27339,27340,4,0),(16310,'29660',27321,27322,4,0),(16311,'29670',27323,27324,4,0),(16312,'29679',27041,27042,4,0),(16313,'29680',27173,27174,4,0),(16314,'29688',27175,27176,4,0),(16315,'29689',27177,27178,4,0),(16316,'29690',27119,27120,4,0),(16317,'29691',27307,27308,4,0),(16318,'29692',27309,27310,4,0),(16319,'29692',27121,27122,4,0),(16320,'29693',27179,27180,4,0),(16321,'29698',27181,27182,4,0),(16322,'29700',27467,27468,4,0),(16323,'29710',27377,27378,4,0),(16324,'29711',26929,26930,4,0),(16325,'29712',27513,27514,4,0),(16326,'29713',27515,27516,4,0),(16327,'29713',26931,26932,4,0),(16328,'29714',27415,27416,4,0),(16329,'29715',27425,27426,4,0),(16330,'29716',27081,27082,4,0),(16331,'29717',27023,27024,4,0),(16332,'29718',26959,26960,4,0),(16333,'29718',27057,27058,4,0),(16334,'29718',27161,27162,4,0),(16335,'29718',27165,27166,4,0),(16336,'29718',27469,27470,4,0),(16337,'29719',27471,27472,4,0),(16338,'29719',27427,27428,4,0),(16339,'29719',27061,27062,4,0),(16340,'29719',27083,27084,4,0),(16341,'29719',27517,27518,4,0),(16342,'29720',27393,27394,4,0),(16343,'29720',27303,27304,4,0),(16344,'29730',27395,27396,4,0),(16345,'29738',27343,27344,4,0),(16346,'29738',27397,27398,4,0),(16347,'29740',27473,27474,4,0),(16348,'29749',27475,27476,4,0),(16349,'29750',26943,26944,4,0),(16350,'29750',27477,27478,4,0),(16351,'29751',27479,27480,4,0),(16352,'29752',27419,27420,4,0),(16353,'29753',27003,27004,4,0),(16354,'29753',27025,27026,4,0),(16355,'29753',27421,27422,4,0),(16356,'29754',27137,27138,4,0),(16357,'29755',27087,27088,4,0),(16358,'29760',27481,27482,4,0),(16359,'29770',27451,27452,4,0),(16360,'29780',27361,27362,4,0),(16361,'29787',27363,27364,4,0),(16362,'29788',27189,27190,4,0),(16363,'29789',27191,27192,4,0),(16364,'29790',27483,27484,4,0),(16365,'29791',27245,27246,4,0),(16366,'29792',27485,27486,4,0),(16367,'29792',27229,27230,4,0),(16368,'29793',27453,27454,4,0),(16369,'29796',27455,27456,4,0),(16370,'30000',27887,27888,4,0),(16371,'30001',27889,27890,4,0),(16372,'30002',27891,27892,4,0),(16373,'30003',27893,27894,4,0),(16374,'30004',27895,27896,4,0),(16375,'30005',27897,27898,4,0),(16376,'30006',27899,27900,4,0),(16377,'30007',27901,27902,4,0),(16378,'30008',27903,27904,4,0),(16379,'30009',27905,27906,4,0),(16380,'30010',27907,27908,4,0),(16381,'30011',27909,27910,4,0),(16382,'30012',27911,27912,4,0),(16383,'30017',27773,27774,4,0),(16384,'30100',27913,27914,4,0),(16385,'30107',27915,27916,4,0),(16386,'30108',27917,27918,4,0),(16387,'30110',27919,27920,4,0),(16388,'30120',27921,27922,4,0),(16389,'30130',27577,27578,4,0),(16390,'30139',27923,27924,4,0),(16391,'30140',28051,28052,4,0),(16392,'30148',28053,28054,4,0),(16393,'30149',28055,28056,4,0),(16394,'30150',27925,27926,4,0),(16395,'30151',27927,27928,4,0),(16396,'30152',27929,27930,4,0),(16397,'30153',27931,27932,4,0),(16398,'30154',27933,27934,4,0),(16399,'30155',27935,27936,4,0),(16400,'30156',27937,27938,4,0),(16401,'30157',27939,27940,4,0),(16402,'30158',27941,27942,4,0),(16403,'30160',27943,27944,4,0),(16404,'30161',27945,27946,4,0),(16405,'30162',27947,27948,4,0),(16406,'30163',27949,27950,4,0),(16407,'30164',27951,27952,4,0),(16408,'30165',27953,27954,4,0),(16409,'30166',27955,27956,4,0),(16410,'30167',27957,27958,4,0),(16411,'30168',27959,27960,4,0),(16412,'30169',27961,27962,4,0),(16413,'30170',27873,27874,4,0),(16414,'30176',28011,28012,4,0),(16415,'30178',27875,27876,4,0),(16416,'30179',27963,27964,4,0),(16417,'30180',27585,27586,4,0),(16418,'30189',27587,27588,4,0),(16419,'30189',27697,27698,4,0),(16420,'30190',27549,27550,4,0),(16421,'30191',27595,27596,4,0),(16422,'30192',27597,27598,4,0),(16423,'30193',27877,27878,4,0),(16424,'30194',27879,27880,4,0),(16425,'30195',27601,27602,4,0),(16426,'30196',28013,28014,4,0),(16427,'30201',27615,27616,4,0),(16428,'30202',27617,27618,4,0),(16429,'30203',27619,27620,4,0),(16430,'30204',27621,27622,4,0),(16431,'30205',27623,27624,4,0),(16432,'30300',27625,27626,4,0),(16433,'30310',27627,27628,4,0),(16434,'30319',27629,27630,4,0),(16435,'30320',27731,27732,4,0),(16436,'30330',27631,27632,4,0),(16437,'30331',27965,27966,4,0),(16438,'30332',27733,27734,4,0),(16439,'30333',27735,27736,4,0),(16440,'30334',27737,27738,4,0),(16441,'30335',27739,27740,4,0),(16442,'30335',27819,27820,4,0),(16443,'30338',27741,27742,4,0),(16444,'30350',27633,27634,4,0),(16445,'30351',27635,27636,4,0),(16446,'30360',27755,27756,4,0),(16447,'30362',27757,27758,4,0),(16448,'30364',27759,27760,4,0),(16449,'30365',27637,27638,4,0),(16450,'30366',27639,27640,4,0),(16451,'30367',27641,27642,4,0),(16452,'30368',27643,27644,4,0),(16453,'30369',27645,27646,4,0),(16454,'30369',27761,27762,4,0),(16455,'30370',27647,27648,4,0),(16456,'30370',28027,28028,4,0),(16457,'30379',28029,28030,4,0),(16458,'30380',27649,27650,4,0),(16459,'30380',28031,28032,4,0),(16460,'30381',27651,27652,4,0),(16461,'30382',27653,27654,4,0),(16462,'30383',27655,27656,4,0),(16463,'30384',27657,27658,4,0),(16464,'30385',27659,27660,4,0),(16465,'30387',27661,27662,4,0),(16466,'30387',27855,27856,4,0),(16467,'30389',27663,27664,4,0),(16468,'30390',27665,27666,4,0),(16469,'30391',27667,27668,4,0),(16470,'30392',27669,27670,4,0),(16471,'30393',27671,27672,4,0),(16472,'30394',27673,27674,4,0),(16473,'30395',27675,27676,4,0),(16474,'30396',27677,27678,4,0),(16475,'30397',27679,27680,4,0),(16476,'30398',27681,27682,4,0),(16477,'30399',27683,27684,4,0),(16478,'30400',27603,27604,4,0),(16479,'30400',27857,27858,4,0),(16480,'30410',27605,27606,4,0),(16481,'30410',27859,27860,4,0),(16482,'30411',27607,27608,4,0),(16483,'30411',27861,27862,4,0),(16484,'30412',27609,27610,4,0),(16485,'30413',27863,27864,4,0),(16486,'30413',27611,27612,4,0),(16487,'30420',27699,27700,4,0),(16488,'30420',27591,27592,4,0),(16489,'30430',27701,27702,4,0),(16490,'30438',27703,27704,4,0),(16491,'30439',27705,27706,4,0),(16492,'30440',27865,27866,4,0),(16493,'30441',27867,27868,4,0),(16494,'30442',27869,27870,4,0),(16495,'30500',27841,27842,4,0),(16496,'30506',27843,27844,4,0),(16497,'30507',27845,27846,4,0),(16498,'30508',27847,27848,4,0),(16499,'30509',27849,27850,4,0),(16500,'30510',28095,28096,4,0),(16501,'30520',27747,27748,4,0),(16502,'30528',27749,27750,4,0),(16503,'30529',27751,27752,4,0),(16504,'30540',27581,27582,4,0),(16505,'30550',27537,27538,4,0),(16506,'30559',27539,27540,4,0),(16507,'30560',27561,27562,4,0),(16508,'30561',27563,27564,4,0),(16509,'30562',27709,27710,4,0),(16510,'30563',27711,27712,4,0),(16511,'30564',27811,27812,4,0),(16512,'30565',27765,27766,4,0),(16513,'30570',27967,27968,4,0),(16514,'30579',27969,27970,4,0),(16515,'30580',27971,27972,4,0),(16516,'30588',27973,27974,4,0),(16517,'30589',27975,27976,4,0),(16518,'30590',27977,27978,4,0),(16519,'30590',27685,27686,4,0),(16520,'30591',28061,28062,4,0),(16521,'30592',27979,27980,4,0),(16522,'30592',28033,28034,4,0),(16523,'30592',28063,28064,4,0),(16524,'30593',27687,27688,4,0),(16525,'30594',27689,27690,4,0),(16526,'30600',27571,27572,4,0),(16527,'30609',27573,27574,4,0),(16528,'30610',28023,28024,4,0),(16529,'30611',28007,28008,4,0),(16530,'30612',28085,28086,4,0),(16531,'30613',28089,28090,4,0),(16532,'30620',27721,27722,4,0),(16533,'30626',27527,27528,4,0),(16534,'30626',27723,27724,4,0),(16535,'30628',27725,27726,4,0),(16536,'30629',28057,28058,4,0),(16537,'30629',27727,27728,4,0),(16538,'30640',27529,27530,4,0),(16539,'30648',27531,27532,4,0),(16540,'30649',27533,27534,4,0),(16541,'30700',28065,28066,4,0),(16542,'30708',28067,28068,4,0),(16543,'30709',28069,28070,4,0),(16544,'30710',27815,27816,4,0),(16545,'30710',28071,28072,4,0),(16546,'30720',28035,28036,4,0),(16547,'30729',28037,28038,4,0),(16548,'30730',28039,28040,4,0),(16549,'30739',28041,28042,4,0),(16550,'30739',28073,28074,4,0),(16551,'30740',28045,28046,4,0),(16552,'30749',28047,28048,4,0),(16553,'30750',27981,27982,4,0),(16554,'30800',27775,27776,4,0),(16555,'30810',27777,27778,4,0),(16556,'30811',27779,27780,4,0),(16557,'30812',27781,27782,4,0),(16558,'30813',27783,27784,4,0),(16559,'30814',27785,27786,4,0),(16560,'30815',27787,27788,4,0),(16561,'30816',27789,27790,4,0),(16562,'30817',27791,27792,4,0),(16563,'30818',27793,27794,4,0),(16564,'30820',27553,27554,4,0),(16565,'30826',27983,27984,4,0),(16566,'30830',27985,27986,4,0),(16567,'30831',27987,27988,4,0),(16568,'30832',27989,27990,4,0),(16569,'30833',27991,27992,4,0),(16570,'30834',27795,27796,4,0),(16571,'30834',27993,27994,4,0),(16572,'30835',27995,27996,4,0),(16573,'30835',27691,27692,4,0),(16574,'30836',27997,27998,4,0),(16575,'30837',27999,28000,4,0),(16576,'30840',27567,27568,4,0),(16577,'30850',28001,28002,4,0),(16578,'30850',28077,28078,4,0),(16579,'30858',28079,28080,4,0),(16580,'30858',27821,27822,4,0),(16581,'30859',28081,28082,4,0),(16582,'30859',27557,27558,4,0),(16583,'30860',27823,27824,4,0),(16584,'30868',27693,27694,4,0),(16585,'30868',27825,27826,4,0),(16586,'30870',27827,27828,4,0),(16587,'30875',27829,27830,4,0),(16588,'30876',27797,27798,4,0),(16589,'30876',27831,27832,4,0),(16590,'30877',27833,27834,4,0),(16591,'30878',27799,27800,4,0),(16592,'30878',27835,27836,4,0),(16593,'30879',27837,27838,4,0),(16594,'30880',27543,27544,4,0),(16595,'30883',28003,28004,4,0),(16596,'30889',27545,27546,4,0),(16597,'30889',27801,27802,4,0),(16598,'30890',27803,27804,4,0),(16599,'30890',28017,28018,4,0),(16600,'30891',28019,28020,4,0),(16601,'30892',27769,27770,4,0),(16602,'30893',27805,27806,4,0),(16603,'31001',29093,29094,4,0),(16604,'31002',29095,29096,4,0),(16605,'31003',29097,29098,4,0),(16606,'31004',29099,29100,4,0),(16607,'31005',29101,29102,4,0),(16608,'31006',29103,29104,4,0),(16609,'31007',29105,29106,4,0),(16610,'31008',29107,29108,4,0),(16611,'31009',29109,29110,4,0),(16612,'31010',29111,29112,4,0),(16613,'31010',28297,28298,4,0),(16614,'31011',29113,29114,4,0),(16615,'31012',29115,29116,4,0),(16616,'31013',28171,28172,4,0),(16617,'31013',28369,28370,4,0),(16618,'31013',28375,28376,4,0),(16619,'31014',29117,29118,4,0),(16620,'31015',29119,29120,4,0),(16621,'31016',29121,29122,4,0),(16622,'31100',29141,29142,4,0),(16623,'31109',28265,28266,4,0),(16624,'31110',29009,29010,4,0),(16625,'31119',29011,29012,4,0),(16626,'31130',28909,28910,4,0),(16627,'31131',28469,28470,4,0),(16628,'31132',29363,29364,4,0),(16629,'31133',28825,28826,4,0),(16630,'31133',29309,29310,4,0),(16631,'31140',28261,28262,4,0),(16632,'31150',28935,28936,4,0),(16633,'31151',29017,29018,4,0),(16634,'31152',28993,28994,4,0),(16635,'31153',28127,28128,4,0),(16636,'31153',28519,28520,4,0),(16637,'31154',29245,29246,4,0),(16638,'31154',29223,29224,4,0),(16639,'31154',28167,28168,4,0),(16640,'31160',29073,29074,4,0),(16641,'31170',28457,28458,4,0),(16642,'31170',28745,28746,4,0),(16643,'31171',28459,28460,4,0),(16644,'31172',28673,28674,4,0),(16645,'31172',29327,29328,4,0),(16646,'31172',28747,28748,4,0),(16647,'31173',28461,28462,4,0),(16648,'31174',28507,28508,4,0),(16649,'31174',28689,28690,4,0),(16650,'31174',28393,28394,4,0),(16651,'31174',28351,28352,4,0),(16652,'31174',28587,28588,4,0),(16653,'31174',29377,29378,4,0),(16654,'31174',28473,28474,4,0),(16655,'31174',28477,28478,4,0),(16656,'31175',29167,29168,4,0),(16657,'31175',28681,28682,4,0),(16658,'31176',29331,29332,4,0),(16659,'31176',28683,28684,4,0),(16660,'31177',29333,29334,4,0),(16661,'31177',28861,28862,4,0),(16662,'31178',28105,28106,4,0),(16663,'31179',29335,29336,4,0),(16664,'31180',29385,29386,4,0),(16665,'31190',28479,28480,4,0),(16666,'31191',28637,28638,4,0),(16667,'31191',28365,28366,4,0),(16668,'31192',28201,28202,4,0),(16669,'31192',29317,29318,4,0),(16670,'31193',28775,28776,4,0),(16671,'31193',28269,28270,4,0),(16672,'31194',28777,28778,4,0),(16673,'31194',28595,28596,4,0),(16674,'31195',28371,28372,4,0),(16675,'31195',28377,28378,4,0),(16676,'31200',28559,28560,4,0),(16677,'31208',28279,28280,4,0),(16678,'31210',28891,28892,4,0),(16679,'31219',29133,29134,4,0),(16680,'31219',28969,28970,4,0),(16681,'31219',29227,29228,4,0),(16682,'31219',28947,28948,4,0),(16683,'31219',29205,29206,4,0),(16684,'31219',28929,28930,4,0),(16685,'31220',29185,29186,4,0),(16686,'31227',28795,28796,4,0),(16687,'31227',28665,28666,4,0),(16688,'31227',28417,28418,4,0),(16689,'31227',28913,28914,4,0),(16690,'31228',28249,28250,4,0),(16691,'31228',29229,29230,4,0),(16692,'31228',28289,28290,4,0),(16693,'31228',28131,28132,4,0),(16694,'31228',28555,28556,4,0),(16695,'31229',28511,28512,4,0),(16696,'31229',28309,28310,4,0),(16697,'31229',28491,28492,4,0),(16698,'31229',29233,29234,4,0),(16699,'31230',29347,29348,4,0),(16700,'31239',28213,28214,4,0),(16701,'31240',28281,28282,4,0),(16702,'31241',28939,28940,4,0),(16703,'31241',28139,28140,4,0),(16704,'31241',28713,28714,4,0),(16705,'31242',29359,29360,4,0),(16706,'31243',28305,28306,4,0),(16707,'31243',28253,28254,4,0),(16708,'31243',28715,28716,4,0),(16709,'31243',28899,28900,4,0),(16710,'31250',29089,29090,4,0),(16711,'31251',28799,28800,4,0),(16712,'31252',28361,28362,4,0),(16713,'31253',28951,28952,4,0),(16714,'31260',28851,28852,4,0),(16715,'31261',28163,28164,4,0),(16716,'31262',28145,28146,4,0),(16717,'31263',28229,28230,4,0),(16718,'31263',28495,28496,4,0),(16719,'31264',28117,28118,4,0),(16720,'31264',28965,28966,4,0),(16721,'31270',28803,28804,4,0),(16722,'31271',28197,28198,4,0),(16723,'31271',28591,28592,4,0),(16724,'31272',28153,28154,4,0),(16725,'31280',28101,28102,4,0),(16726,'31280',28977,28978,4,0),(16727,'31280',28157,28158,4,0),(16728,'31281',28575,28576,4,0),(16729,'31281',29025,29026,4,0),(16730,'31281',29047,29048,4,0),(16731,'31281',28829,28830,4,0),(16732,'31281',28159,28160,4,0),(16733,'31282',29005,29006,4,0),(16734,'31282',28931,28932,4,0),(16735,'31283',28787,28788,4,0),(16736,'31284',29397,29398,4,0),(16737,'31290',29337,29338,4,0),(16738,'31290',28141,28142,4,0),(16739,'31291',28685,28686,4,0),(16740,'31291',28691,28692,4,0),(16741,'31292',29365,29366,4,0),(16742,'31292',29339,29340,4,0),(16743,'31292',28119,28120,4,0),(16744,'31293',29201,29202,4,0),(16745,'31300',29213,29214,4,0),(16746,'31310',28435,28436,4,0),(16747,'31311',28437,28438,4,0),(16748,'31312',28445,28446,4,0),(16749,'31313',28989,28990,4,0),(16750,'31314',29189,29190,4,0),(16751,'31315',28981,28982,4,0),(16752,'31320',28943,28944,4,0),(16753,'31330',29355,29356,4,0),(16754,'31340',28917,28918,4,0),(16755,'31350',29125,29126,4,0),(16756,'31360',28629,28630,4,0),(16757,'31370',28617,28618,4,0),(16758,'31380',28425,28426,4,0),(16759,'31381',28427,28428,4,0),(16760,'31382',28921,28922,4,0),(16761,'31383',28983,28984,4,0),(16762,'31390',29051,29052,4,0),(16763,'31391',28985,28986,4,0),(16764,'31392',29137,29138,4,0),(16765,'31393',28347,28348,4,0),(16766,'31394',29145,29146,4,0),(16767,'31395',29055,29056,4,0),(16768,'31395',28657,28658,4,0),(16769,'31395',28301,28302,4,0),(16770,'31395',28841,28842,4,0),(16771,'31395',29069,29070,4,0),(16772,'31396',29269,29270,4,0),(16773,'31396',29057,29058,4,0),(16774,'31397',29217,29218,4,0),(16775,'31398',29219,29220,4,0),(16776,'31398',28397,28398,4,0),(16777,'31400',29179,29180,4,0),(16778,'31409',29181,29182,4,0),(16779,'31409',28769,28770,4,0),(16780,'31410',29373,29374,4,0),(16781,'31411',28771,28772,4,0),(16782,'31412',28405,28406,4,0),(16783,'31413',29351,29352,4,0),(16784,'31414',28653,28654,4,0),(16785,'31415',29157,29158,4,0),(16786,'31416',29305,29306,4,0),(16787,'31417',28733,28734,4,0),(16788,'31418',29313,29314,4,0),(16789,'31420',29301,29302,4,0),(16790,'31421',28757,28758,4,0),(16791,'31422',29263,29264,4,0),(16792,'31430',28179,28180,4,0),(16793,'31438',28883,28884,4,0),(16794,'31438',28221,28222,4,0),(16795,'31439',28885,28886,4,0),(16796,'31439',29081,29082,4,0),(16797,'31439',28223,28224,4,0),(16798,'31440',28895,28896,4,0),(16799,'31448',29283,29284,4,0),(16800,'31448',29289,29290,4,0),(16801,'31449',29291,29292,4,0),(16802,'31450',28997,28998,4,0),(16803,'31451',29077,29078,4,0),(16804,'31451',28645,28646,4,0),(16805,'31451',28999,29000,4,0),(16806,'31451',29193,29194,4,0),(16807,'31452',28677,28678,4,0),(16808,'31453',28551,28552,4,0),(16809,'31454',29153,29154,4,0),(16810,'31454',28453,28454,4,0),(16811,'31454',29285,29286,4,0),(16812,'31454',29001,29002,4,0),(16813,'31460',28821,28822,4,0),(16814,'31460',28135,28136,4,0),(16815,'31470',29013,29014,4,0),(16816,'31471',28957,28958,4,0),(16817,'31472',28703,28704,4,0),(16818,'31472',29265,29266,4,0),(16819,'31473',28705,28706,4,0),(16820,'31480',29293,29294,4,0),(16821,'31481',28887,28888,4,0),(16822,'31481',28225,28226,4,0),(16823,'31482',28869,28870,4,0),(16824,'31483',28871,28872,4,0),(16825,'31484',28873,28874,4,0),(16826,'31485',28875,28876,4,0),(16827,'31486',29319,29320,4,0),(16828,'31487',28865,28866,4,0),(16829,'31490',28447,28448,4,0),(16830,'31491',28611,28612,4,0),(16831,'31492',28613,28614,4,0),(16832,'31493',28641,28642,4,0),(16833,'31494',28843,28844,4,0),(16834,'31494',28847,28848,4,0),(16835,'31494',28547,28548,4,0),(16836,'31495',29175,29176,4,0),(16837,'31496',29253,29254,4,0),(16838,'31500',29237,29238,4,0),(16839,'31510',28633,28634,4,0),(16840,'31511',28413,28414,4,0),(16841,'31512',28625,28626,4,0),(16842,'31513',28237,28238,4,0),(16843,'31514',29343,29344,4,0),(16844,'31515',28421,28422,4,0),(16845,'31520',28441,28442,4,0),(16846,'31521',28973,28974,4,0),(16847,'31522',29241,29242,4,0),(16848,'31522',28961,28962,4,0),(16849,'31523',28313,28314,4,0),(16850,'31523',28123,28124,4,0),(16851,'31523',28953,28954,4,0),(16852,'31530',28487,28488,4,0),(16853,'31540',28401,28402,4,0),(16854,'31550',29149,29150,4,0),(16855,'31560',28285,28286,4,0),(16856,'31570',29171,29172,4,0),(16857,'31579',28431,28432,4,0),(16858,'31580',28879,28880,4,0),(16859,'31587',28925,28926,4,0),(16860,'31588',28817,28818,4,0),(16861,'31589',29197,29198,4,0),(16862,'31590',13187,13188,4,0),(16863,'31591',28483,28484,4,0),(16864,'31592',28465,28466,4,0),(16865,'31593',28621,28622,4,0),(16866,'31600',28409,28410,4,0),(16867,'31610',29369,29370,4,0),(16868,'31620',28699,28700,4,0),(16869,'31620',29321,29322,4,0),(16870,'31621',29323,29324,4,0),(16871,'31630',28563,28564,4,0),(16872,'31638',28531,28532,4,0),(16873,'31638',28565,28566,4,0),(16874,'31639',28533,28534,4,0),(16875,'31639',28567,28568,4,0),(16876,'31640',28275,28276,4,0),(16877,'31650',29085,29086,4,0),(16878,'31660',28903,28904,4,0),(16879,'31669',28905,28906,4,0),(16880,'31670',29061,29062,4,0),(16881,'31671',28241,28242,4,0),(16882,'31671',28695,28696,4,0),(16883,'31671',29065,29066,4,0),(16884,'31671',28245,28246,4,0),(16885,'31680',29021,29022,4,0),(16886,'31689',28761,28762,4,0),(16887,'31690',28601,28602,4,0),(16888,'31691',28765,28766,4,0),(16889,'31692',28649,28650,4,0),(16890,'31692',28109,28110,4,0),(16891,'31692',28113,28114,4,0),(16892,'31693',28661,28662,4,0),(16893,'31694',28535,28536,4,0),(16894,'31695',28537,28538,4,0),(16895,'31696',28539,28540,4,0),(16896,'31697',28541,28542,4,0),(16897,'31698',28569,28570,4,0),(16898,'31699',28543,28544,4,0),(16899,'31699',28571,28572,4,0),(16900,'31700',28323,28324,4,0),(16901,'31710',29393,29394,4,0),(16902,'31711',29273,29274,4,0),(16903,'31712',29275,29276,4,0),(16904,'31713',28325,28326,4,0),(16905,'31714',28327,28328,4,0),(16906,'31715',28329,28330,4,0),(16907,'31720',28331,28332,4,0),(16908,'31720',28381,28382,4,0),(16909,'31730',28333,28334,4,0),(16910,'31740',28503,28504,4,0),(16911,'31744',28515,28516,4,0),(16912,'31745',28737,28738,4,0),(16913,'31746',29389,29390,4,0),(16914,'31747',29163,29164,4,0),(16915,'31748',28523,28524,4,0),(16916,'31749',28605,28606,4,0),(16917,'31750',28499,28500,4,0),(16918,'31751',29035,29036,4,0),(16919,'31752',29297,29298,4,0),(16920,'31753',28343,28344,4,0),(16921,'31754',28669,28670,4,0),(16922,'31754',28205,28206,4,0),(16923,'31760',28579,28580,4,0),(16924,'31770',28855,28856,4,0),(16925,'31780',28355,28356,4,0),(16926,'31789',28857,28858,4,0),(16927,'31789',28357,28358,4,0),(16928,'31790',28209,28210,4,0),(16929,'31790',28709,28710,4,0),(16930,'31791',29209,29210,4,0),(16931,'31792',28383,28384,4,0),(16932,'31793',28385,28386,4,0),(16933,'31794',28335,28336,4,0),(16934,'31794',28607,28608,4,0),(16935,'31795',28337,28338,4,0),(16936,'31796',28339,28340,4,0),(16937,'31797',29257,29258,4,0),(16938,'31798',28175,28176,4,0),(16939,'31798',28791,28792,4,0),(16940,'31799',29039,29040,4,0),(16941,'31799',28597,28598,4,0),(16942,'31799',29259,29260,4,0),(16943,'31799',29029,29030,4,0),(16944,'31800',28149,28150,4,0),(16945,'31809',29043,29044,4,0),(16946,'31809',29381,29382,4,0),(16947,'31810',28741,28742,4,0),(16948,'31810',29279,29280,4,0),(16949,'31810',28293,28294,4,0),(16950,'31820',28583,28584,4,0),(16951,'31829',28527,28528,4,0),(16952,'31830',28783,28784,4,0),(16953,'31839',28217,28218,4,0),(16954,'31840',28257,28258,4,0),(16955,'31840',29249,29250,4,0),(16956,'31849',28187,28188,4,0),(16957,'31849',28725,28726,4,0),(16958,'31850',28189,28190,4,0),(16959,'31860',28729,28730,4,0),(16960,'31866',28317,28318,4,0),(16961,'31867',28191,28192,4,0),(16962,'31867',28719,28720,4,0),(16963,'31867',28749,28750,4,0),(16964,'31867',29031,29032,4,0),(16965,'31867',28271,28272,4,0),(16966,'31868',28193,28194,4,0),(16967,'31868',28751,28752,4,0),(16968,'31869',28721,28722,4,0),(16969,'31869',28319,28320,4,0),(16970,'31870',28837,28838,4,0),(16971,'31876',28233,28234,4,0),(16972,'31877',28807,28808,4,0),(16973,'31878',28809,28810,4,0),(16974,'31879',28811,28812,4,0),(16975,'31880',28833,28834,4,0),(16976,'31890',28389,28390,4,0),(16977,'31891',28813,28814,4,0),(16978,'31891',28183,28184,4,0),(16979,'31892',28753,28754,4,0),(16980,'31892',28779,28780,4,0),(16981,'32001',30037,30038,4,0),(16982,'32002',29569,29570,4,0),(16983,'32002',30039,30040,4,0),(16984,'32003',30041,30042,4,0),(16985,'32004',30043,30044,4,0),(16986,'32005',30219,30220,4,0),(16987,'32005',29571,29572,4,0),(16988,'32005',30045,30046,4,0),(16989,'32100',29743,29744,4,0),(16990,'32101',30341,30342,4,0),(16991,'32102',30343,30344,4,0),(16992,'32103',30047,30048,4,0),(16993,'32110',30071,30072,4,0),(16994,'32111',30073,30074,4,0),(16995,'32120',30345,30346,4,0),(16996,'32120',29443,29444,4,0),(16997,'32130',30231,30232,4,0),(16998,'32131',27807,27808,4,0),(16999,'32133',30233,30234,4,0),(17000,'32134',30235,30236,4,0),(17001,'32135',30119,30120,4,0),(17002,'32135',30237,30238,4,0),(17003,'32136',30239,30240,4,0),(17004,'32137',30121,30122,4,0),(17005,'32137',30241,30242,4,0),(17006,'32138',30123,30124,4,0),(17007,'32139',30243,30244,4,0),(17008,'32140',30347,30348,4,0),(17009,'32141',30245,30246,4,0),(17010,'32141',30349,30350,4,0),(17011,'32150',29445,29446,4,0),(17012,'32151',29447,29448,4,0),(17013,'32152',29745,29746,4,0),(17014,'32153',29449,29450,4,0),(17015,'32153',29747,29748,4,0),(17016,'32160',29935,29936,4,0),(17017,'32161',29937,29938,4,0),(17018,'32162',29939,29940,4,0),(17019,'32163',29941,29942,4,0),(17020,'32164',29943,29944,4,0),(17021,'32170',29517,29518,4,0),(17022,'32171',29519,29520,4,0),(17023,'32172',30049,30050,4,0),(17024,'32172',29521,29522,4,0),(17025,'32200',29753,29754,4,0),(17026,'32211',29755,29756,4,0),(17027,'32212',29785,29786,4,0),(17028,'32213',29757,29758,4,0),(17029,'32220',30079,30080,4,0),(17030,'32226',30081,30082,4,0),(17031,'32227',30083,30084,4,0),(17032,'32228',30085,30086,4,0),(17033,'32229',30087,30088,4,0),(17034,'32235',30127,30128,4,0),(17035,'32236',30089,30090,4,0),(17036,'32300',29955,29956,4,0),(17037,'32310',30199,30200,4,0),(17038,'32311',30201,30202,4,0),(17039,'32312',30203,30204,4,0),(17040,'32313',29957,29958,4,0),(17041,'32314',29959,29960,4,0),(17042,'32315',29961,29962,4,0),(17043,'32315',30353,30354,4,0),(17044,'32316',30355,30356,4,0),(17045,'32317',29963,29964,4,0),(17046,'32318',29965,29966,4,0),(17047,'32320',30205,30206,4,0),(17048,'32329',29639,29640,4,0),(17049,'32329',30207,30208,4,0),(17050,'32330',29641,29642,4,0),(17051,'32334',29643,29644,4,0),(17052,'32335',29645,29646,4,0),(17053,'32336',29647,29648,4,0),(17054,'32337',29649,29650,4,0),(17055,'32338',29651,29652,4,0),(17056,'32339',29653,29654,4,0),(17057,'32340',30357,30358,4,0),(17058,'32348',30359,30360,4,0),(17059,'32349',30361,30362,4,0),(17060,'32350',29469,29470,4,0),(17061,'32356',30109,30110,4,0),(17062,'32357',30111,30112,4,0),(17063,'32357',29471,29472,4,0),(17064,'32357',29969,29970,4,0),(17065,'32357',29789,29790,4,0),(17066,'32357',29483,29484,4,0),(17067,'32358',29791,29792,4,0),(17068,'32359',29473,29474,4,0),(17069,'32360',29485,29486,4,0),(17070,'32365',29487,29488,4,0),(17071,'32366',29489,29490,4,0),(17072,'32367',29491,29492,4,0),(17073,'32368',29493,29494,4,0),(17074,'32369',29495,29496,4,0),(17075,'32370',29793,29794,4,0),(17076,'32370',30113,30114,4,0),(17077,'32371',29795,29796,4,0),(17078,'32371',30115,30116,4,0),(17079,'32372',29971,29972,4,0),(17080,'32373',29973,29974,4,0),(17081,'32374',29975,29976,4,0),(17082,'32375',29869,29870,4,0),(17083,'32375',29977,29978,4,0),(17084,'32400',30175,30176,4,0),(17085,'32410',29901,29902,4,0),(17086,'32411',29903,29904,4,0),(17087,'32412',29627,29628,4,0),(17088,'32413',29629,29630,4,0),(17089,'32414',30177,30178,4,0),(17090,'32415',30179,30180,4,0),(17091,'32416',30181,30182,4,0),(17092,'32416',29631,29632,4,0),(17093,'32417',30183,30184,4,0),(17094,'32417',29945,29946,4,0),(17095,'32417',29403,29404,4,0),(17096,'32418',30185,30186,4,0),(17097,'32420',29809,29810,4,0),(17098,'32425',29811,29812,4,0),(17099,'32426',29813,29814,4,0),(17100,'32427',29815,29816,4,0),(17101,'32428',29817,29818,4,0),(17102,'32429',29819,29820,4,0),(17103,'32430',29673,29674,4,0),(17104,'32431',29583,29584,4,0),(17105,'32432',29585,29586,4,0),(17106,'32433',29633,29634,4,0),(17107,'32434',29635,29636,4,0),(17108,'32440',29451,29452,4,0),(17109,'32448',29947,29948,4,0),(17110,'32449',29453,29454,4,0),(17111,'32450',29723,29724,4,0),(17112,'32452',30141,30142,4,0),(17113,'32453',30211,30212,4,0),(17114,'32454',29725,29726,4,0),(17115,'32455',30213,30214,4,0),(17116,'32456',30143,30144,4,0),(17117,'32456',29411,29412,4,0),(17118,'32457',30145,30146,4,0),(17119,'32459',29727,29728,4,0),(17120,'32499',29433,29434,4,0),(17121,'32500',29981,29982,4,0),(17122,'32510',29983,29984,4,0),(17123,'32511',29985,29986,4,0),(17124,'32512',29593,29594,4,0),(17125,'32513',29987,29988,4,0),(17126,'32514',29595,29596,4,0),(17127,'32515',30215,30216,4,0),(17128,'32515',29989,29990,4,0),(17129,'32516',29991,29992,4,0),(17130,'32520',29597,29598,4,0),(17131,'32520',29589,29590,4,0),(17132,'32520',29527,29528,4,0),(17133,'32521',29599,29600,4,0),(17134,'32522',29601,29602,4,0),(17135,'32523',29603,29604,4,0),(17136,'32524',29605,29606,4,0),(17137,'32525',29607,29608,4,0),(17138,'32526',29609,29610,4,0),(17139,'32526',29999,30000,4,0),(17140,'32530',29611,29612,4,0),(17141,'32530',30001,30002,4,0),(17142,'32534',29993,29994,4,0),(17143,'32535',30003,30004,4,0),(17144,'32536',30005,30006,4,0),(17145,'32537',30007,30008,4,0),(17146,'32538',30009,30010,4,0),(17147,'32539',30011,30012,4,0),(17148,'32540',29413,29414,4,0),(17149,'32545',29415,29416,4,0),(17150,'32546',29417,29418,4,0),(17151,'32547',29419,29420,4,0),(17152,'32547',30387,30388,4,0),(17153,'32548',29435,29436,4,0),(17154,'32549',29437,29438,4,0),(17155,'32550',30319,30320,4,0),(17156,'32554',30321,30322,4,0),(17157,'32555',30323,30324,4,0),(17158,'32556',30325,30326,4,0),(17159,'32557',30389,30390,4,0),(17160,'32557',30327,30328,4,0),(17161,'32558',30329,30330,4,0),(17162,'32560',30331,30332,4,0),(17163,'32562',30333,30334,4,0),(17164,'32563',30335,30336,4,0),(17165,'32570',29883,29884,4,0),(17166,'32572',29885,29886,4,0),(17167,'32572',30147,30148,4,0),(17168,'32574',29887,29888,4,0),(17169,'32574',29995,29996,4,0),(17170,'32575',29889,29890,4,0),(17171,'32576',29891,29892,4,0),(17172,'32577',29893,29894,4,0),(17173,'32578',30149,30150,4,0),(17174,'32578',29895,29896,4,0),(17175,'32579',29897,29898,4,0),(17176,'32590',29439,29440,4,0),(17177,'32591',30391,30392,4,0),(17178,'32591',29677,29678,4,0),(17179,'32592',30075,30076,4,0),(17180,'32592',29557,29558,4,0),(17181,'32593',30051,30052,4,0),(17182,'32600',30301,30302,4,0),(17183,'32610',30191,30192,4,0),(17184,'32610',30377,30378,4,0),(17185,'32611',30193,30194,4,0),(17186,'32611',29917,29918,4,0),(17187,'32612',30195,30196,4,0),(17188,'32612',29679,29680,4,0),(17189,'32613',30025,30026,4,0),(17190,'32614',30379,30380,4,0),(17191,'32615',30303,30304,4,0),(17192,'32616',30381,30382,4,0),(17193,'32617',30383,30384,4,0),(17194,'32618',29919,29920,4,0),(17195,'32619',30305,30306,4,0),(17196,'32620',29799,29800,4,0),(17197,'32621',29801,29802,4,0),(17198,'32622',29803,29804,4,0),(17199,'32623',29805,29806,4,0),(17200,'32624',29681,29682,4,0),(17201,'32624',29921,29922,4,0),(17202,'32625',29683,29684,4,0),(17203,'32626',29685,29686,4,0),(17204,'32630',30395,30396,4,0),(17205,'32631',30287,30288,4,0),(17206,'32631',30263,30264,4,0),(17207,'32631',30397,30398,4,0),(17208,'32632',30399,30400,4,0),(17209,'32632',30031,30032,4,0),(17210,'32632',29531,29532,4,0),(17211,'32633',29533,29534,4,0),(17212,'32634',30033,30034,4,0),(17213,'32635',30401,30402,4,0),(17214,'32635',30307,30308,4,0),(17215,'32636',30403,30404,4,0),(17216,'32636',30265,30266,4,0),(17217,'32637',30405,30406,4,0),(17218,'32637',30309,30310,4,0),(17219,'32640',30407,30408,4,0),(17220,'32641',30131,30132,4,0),(17221,'32643',30133,30134,4,0),(17222,'32644',30135,30136,4,0),(17223,'32644',29615,29616,4,0),(17224,'32645',30137,30138,4,0),(17225,'32645',29617,29618,4,0),(17226,'32646',29535,29536,4,0),(17227,'32646',29619,29620,4,0),(17228,'32647',29621,29622,4,0),(17229,'32648',29623,29624,4,0),(17230,'32650',30371,30372,4,0),(17231,'32651',30373,30374,4,0),(17232,'32652',30157,30158,4,0),(17233,'32653',30159,30160,4,0),(17234,'32654',30161,30162,4,0),(17235,'32655',30163,30164,4,0),(17236,'32660',29499,29500,4,0),(17237,'32664',29501,29502,4,0),(17238,'32665',29503,29504,4,0),(17239,'32666',29505,29506,4,0),(17240,'32667',29507,29508,4,0),(17241,'32668',29509,29510,4,0),(17242,'32669',29511,29512,4,0),(17243,'32670',30411,30412,4,0),(17244,'32678',30413,30414,4,0),(17245,'32679',30415,30416,4,0),(17246,'32680',29761,29762,4,0),(17247,'32688',29763,29764,4,0),(17248,'32689',29765,29766,4,0),(17249,'32690',30271,30272,4,0),(17250,'32690',29513,29514,4,0),(17251,'32691',30273,30274,4,0),(17252,'32692',30257,30258,4,0),(17253,'32693',30259,30260,4,0),(17254,'32694',30289,30290,4,0),(17255,'32695',30291,30292,4,0),(17256,'32696',30293,30294,4,0),(17257,'32696',30267,30268,4,0),(17258,'32697',30311,30312,4,0),(17259,'32698',30027,30028,4,0),(17260,'32698',30313,30314,4,0),(17261,'32699',30315,30316,4,0),(17262,'32700',29853,29854,4,0),(17263,'32701',29559,29560,4,0),(17264,'32702',30365,30366,4,0),(17265,'32702',29561,29562,4,0),(17266,'32703',29855,29856,4,0),(17267,'32704',29563,29564,4,0),(17268,'32705',29565,29566,4,0),(17269,'32705',30367,30368,4,0),(17270,'32706',29857,29858,4,0),(17271,'32707',29859,29860,4,0),(17272,'32708',30419,30420,4,0),(17273,'32708',29861,29862,4,0),(17274,'32710',30015,30016,4,0),(17275,'32711',30017,30018,4,0),(17276,'32720',29779,29780,4,0),(17277,'32720',30421,30422,4,0),(17278,'32720',29949,29950,4,0),(17279,'32720',29863,29864,4,0),(17280,'32730',30423,30424,4,0),(17281,'32740',30093,30094,4,0),(17282,'32746',30095,30096,4,0),(17283,'32747',30097,30098,4,0),(17284,'32748',30099,30100,4,0),(17285,'32749',30101,30102,4,0),(17286,'32750',29907,29908,4,0),(17287,'32751',29909,29910,4,0),(17288,'32760',29689,29690,4,0),(17289,'32764',29477,29478,4,0),(17290,'32764',29691,29692,4,0),(17291,'32765',29479,29480,4,0),(17292,'32766',29693,29694,4,0),(17293,'32767',29731,29732,4,0),(17294,'32768',29695,29696,4,0),(17295,'32768',29733,29734,4,0),(17296,'32769',29911,29912,4,0),(17297,'32769',29697,29698,4,0),(17298,'32770',30249,30250,4,0),(17299,'32774',29699,29700,4,0),(17300,'32779',30251,30252,4,0),(17301,'32780',29457,29458,4,0),(17302,'32781',29871,29872,4,0),(17303,'32782',29873,29874,4,0),(17304,'32782',29459,29460,4,0),(17305,'32783',29875,29876,4,0),(17306,'32784',29877,29878,4,0),(17307,'32785',29879,29880,4,0),(17308,'32786',29735,29736,4,0),(17309,'32787',29737,29738,4,0),(17310,'32787',29461,29462,4,0),(17311,'32788',29463,29464,4,0),(17312,'32789',29465,29466,4,0),(17313,'32789',30337,30338,4,0),(17314,'32790',29913,29914,4,0),(17315,'32790',29865,29866,4,0),(17316,'32790',30103,30104,4,0),(17317,'32791',29951,29952,4,0),(17318,'32792',30019,30020,4,0),(17319,'32793',29781,29782,4,0),(17320,'32793',30021,30022,4,0),(17321,'32794',29701,29702,4,0),(17322,'32794',29739,29740,4,0),(17323,'32794',30253,30254,4,0),(17324,'32800',29705,29706,4,0),(17325,'32810',30167,30168,4,0),(17326,'32811',30169,30170,4,0),(17327,'32812',30187,30188,4,0),(17328,'32812',29407,29408,4,0),(17329,'32813',30297,30298,4,0),(17330,'32814',30153,30154,4,0),(17331,'32815',30171,30172,4,0),(17332,'32815',29707,29708,4,0),(17333,'32816',29709,29710,4,0),(17334,'32816',29423,29424,4,0),(17335,'32817',29711,29712,4,0),(17336,'32820',29657,29658,4,0),(17337,'32821',29659,29660,4,0),(17338,'32822',29661,29662,4,0),(17339,'32823',29663,29664,4,0),(17340,'32823',29713,29714,4,0),(17341,'32824',29665,29666,4,0),(17342,'32825',29667,29668,4,0),(17343,'32826',29669,29670,4,0),(17344,'32827',29715,29716,4,0),(17345,'32828',29717,29718,4,0),(17346,'32829',29719,29720,4,0),(17347,'32830',29425,29426,4,0),(17348,'32838',29427,29428,4,0),(17349,'32839',29429,29430,4,0),(17350,'32840',29539,29540,4,0),(17351,'32845',29541,29542,4,0),(17352,'32846',29543,29544,4,0),(17353,'32846',29823,29824,4,0),(17354,'32847',29545,29546,4,0),(17355,'32848',29547,29548,4,0),(17356,'32849',29549,29550,4,0),(17357,'32850',29825,29826,4,0),(17358,'32857',29827,29828,4,0),(17359,'32858',29829,29830,4,0),(17360,'32859',29551,29552,4,0),(17361,'32859',29831,29832,4,0),(17362,'32860',29769,29770,4,0),(17363,'32867',29771,29772,4,0),(17364,'32868',29773,29774,4,0),(17365,'32869',29775,29776,4,0),(17366,'32869',29837,29838,4,0),(17367,'32870',29839,29840,4,0),(17368,'32879',29841,29842,4,0),(17369,'32880',29925,29926,4,0),(17370,'32890',29573,29574,4,0),(17371,'32891',29553,29554,4,0),(17372,'32892',29843,29844,4,0),(17373,'32893',30105,30106,4,0),(17374,'32893',29845,29846,4,0),(17375,'32894',29847,29848,4,0),(17376,'32895',29849,29850,4,0),(17377,'32896',29927,29928,4,0),(17378,'32897',29833,29834,4,0),(17379,'32898',29929,29930,4,0),(17380,'32899',29931,29932,4,0),(17381,'32900',30221,30222,4,0),(17382,'32900',30053,30054,4,0),(17383,'32901',30223,30224,4,0),(17384,'32910',30225,30226,4,0),(17385,'32911',30227,30228,4,0),(17386,'32920',30277,30278,4,0),(17387,'32920',29575,29576,4,0),(17388,'32930',29577,29578,4,0),(17389,'32930',30279,30280,4,0),(17390,'32940',30281,30282,4,0),(17391,'32940',29579,29580,4,0),(17392,'32940',30055,30056,4,0),(17393,'32941',30283,30284,4,0),(17394,'32950',29749,29750,4,0),(17395,'32960',30057,30058,4,0),(17396,'32970',30059,30060,4,0),(17397,'32971',30061,30062,4,0),(17398,'32980',30063,30064,4,0),(17399,'32980',29523,29524,4,0),(17400,'32981',30065,30066,4,0),(17401,'32990',30067,30068,4,0),(17402,'33001',2953,2954,4,0),(17403,'33002',2955,2956,4,0),(17404,'33003',2957,2958,4,0),(17405,'33004',2959,2960,4,0),(17406,'33005',2961,2962,4,0),(17407,'33006',2963,2964,4,0),(17408,'33007',2965,2966,4,0),(17409,'33008',2967,2968,4,0),(17410,'33009',2969,2970,4,0),(17411,'33010',3237,3238,4,0),(17412,'33010',2971,2972,4,0),(17413,'33011',2973,2974,4,0),(17414,'33012',2975,2976,4,0),(17415,'33013',2977,2978,4,0),(17416,'33060',2979,2980,4,0),(17417,'33069',2981,2982,4,0),(17418,'33110',3307,3308,4,0),(17419,'33111',3309,3310,4,0),(17420,'33112',3099,3100,4,0),(17421,'33114',3101,3102,4,0),(17422,'33115',3229,3230,4,0),(17423,'33115',3107,3108,4,0),(17424,'33116',3103,3104,4,0),(17425,'33116',3109,3110,4,0),(17426,'33117',3111,3112,4,0),(17427,'33118',3113,3114,4,0),(17428,'33119',2717,2718,4,0),(17429,'33119',2983,2984,4,0),(17430,'33120',3089,3090,4,0),(17431,'33125',3281,3282,4,0),(17432,'33126',3283,3284,4,0),(17433,'33127',2985,2986,4,0),(17434,'33127',3285,3286,4,0),(17435,'33127',3091,3092,4,0),(17436,'33128',3093,3094,4,0),(17437,'33129',3095,3096,4,0),(17438,'33130',2917,2918,4,0),(17439,'33138',2919,2920,4,0),(17440,'33140',2987,2988,4,0),(17441,'33150',2617,2618,4,0),(17442,'33155',2619,2620,4,0),(17443,'33156',2621,2622,4,0),(17444,'33157',2623,2624,4,0),(17445,'33159',2625,2626,4,0),(17446,'33160',3155,3156,4,0),(17447,'33161',2909,2910,4,0),(17448,'33162',2911,2912,4,0),(17449,'33163',2913,2914,4,0),(17450,'33170',3143,3144,4,0),(17451,'33170',2989,2990,4,0),(17452,'33171',2991,2992,4,0),(17453,'33171',3145,3146,4,0),(17454,'33172',3147,3148,4,0),(17455,'33173',3149,3150,4,0),(17456,'33174',2993,2994,4,0),(17457,'33180',2945,2946,4,0),(17458,'33186',3239,3240,4,0),(17459,'33187',3241,3242,4,0),(17460,'33188',3243,3244,4,0),(17461,'33189',3245,3246,4,0),(17462,'33190',2777,2778,4,0),(17463,'33191',2995,2996,4,0),(17464,'33191',2779,2780,4,0),(17465,'33192',2831,2832,4,0),(17466,'33192',2781,2782,4,0),(17467,'33193',2997,2998,4,0),(17468,'33194',2999,3000,4,0),(17469,'33195',3001,3002,4,0),(17470,'33196',3003,3004,4,0),(17471,'33199',3005,3006,4,0),(17472,'33199',3247,3248,4,0),(17473,'33201',2653,2654,4,0),(17474,'33202',2655,2656,4,0),(17475,'33203',2657,2658,4,0),(17476,'33204',2659,2660,4,0),(17477,'33205',2661,2662,4,0),(17478,'33206',2663,2664,4,0),(17479,'33207',2665,2666,4,0),(17480,'33208',2667,2668,4,0),(17481,'33209',2669,2670,4,0),(17482,'33210',2671,2672,4,0),(17483,'33211',2673,2674,4,0),(17484,'33212',2675,2676,4,0),(17485,'33213',2677,2678,4,0),(17486,'33290',2679,2680,4,0),(17487,'33299',2681,2682,4,0),(17488,'33300',3377,3378,4,0),(17489,'33310',3379,3380,4,0),(17490,'33310',2459,2460,4,0),(17491,'33311',3381,3382,4,0),(17492,'33312',3383,3384,4,0),(17493,'33313',3385,3386,4,0),(17494,'33314',3387,3388,4,0),(17495,'33315',3389,3390,4,0),(17496,'33316',3391,3392,4,0),(17497,'33317',3393,3394,4,0),(17498,'33318',3395,3396,4,0),(17499,'33320',2581,2582,4,0),(17500,'33324',2583,2584,4,0),(17501,'33325',2585,2586,4,0),(17502,'33326',2587,2588,4,0),(17503,'33326',3397,3398,4,0),(17504,'33327',2589,2590,4,0),(17505,'33328',2591,2592,4,0),(17506,'33329',2593,2594,4,0),(17507,'33330',2595,2596,4,0),(17508,'33340',2597,2598,4,0),(17509,'33341',2599,2600,4,0),(17510,'33342',2601,2602,4,0),(17511,'33343',2507,2508,4,0),(17512,'33344',2509,2510,4,0),(17513,'33345',3123,3124,4,0),(17514,'33346',3125,3126,4,0),(17515,'33347',3127,3128,4,0),(17516,'33350',2683,2684,4,0),(17517,'33390',2685,2686,4,0),(17518,'33391',2687,2688,4,0),(17519,'33392',2689,2690,4,0),(17520,'33393',2691,2692,4,0),(17521,'33394',2693,2694,4,0),(17522,'33401',2377,2378,4,0),(17523,'33401',2535,2536,4,0),(17524,'33402',2379,2380,4,0),(17525,'33403',2381,2382,4,0),(17526,'33404',2605,2606,4,0),(17527,'33405',2537,2538,4,0),(17528,'33410',2539,2540,4,0),(17529,'33410',2383,2384,4,0),(17530,'33411',2751,2752,4,0),(17531,'33412',2541,2542,4,0),(17532,'33412',2753,2754,4,0),(17533,'33412',2607,2608,4,0),(17534,'33414',2465,2466,4,0),(17535,'33414',2755,2756,4,0),(17536,'33414',2783,2784,4,0),(17537,'33416',2609,2610,4,0),(17538,'33417',2385,2386,4,0),(17539,'33417',2543,2544,4,0),(17540,'33418',2387,2388,4,0),(17541,'33418',2703,2704,4,0),(17542,'33419',2705,2706,4,0),(17543,'33420',3249,3250,4,0),(17544,'33423',2833,2834,4,0),(17545,'33424',2835,2836,4,0),(17546,'33425',2837,2838,4,0),(17547,'33426',2839,2840,4,0),(17548,'33427',2841,2842,4,0),(17549,'33428',2843,2844,4,0),(17550,'33429',3251,3252,4,0),(17551,'33430',2513,2514,4,0),(17552,'33438',2515,2516,4,0),(17553,'33439',2517,2518,4,0),(17554,'33440',2707,2708,4,0),(17555,'33448',2709,2710,4,0),(17556,'33449',2711,2712,4,0),(17557,'33450',2545,2546,4,0),(17558,'33456',2467,2468,4,0),(17559,'33456',2547,2548,4,0),(17560,'33457',2549,2550,4,0),(17561,'33458',3287,3288,4,0),(17562,'33459',2551,2552,4,0),(17563,'33460',2389,2390,4,0),(17564,'33468',2611,2612,4,0),(17565,'33468',2713,2714,4,0),(17566,'33469',2519,2520,4,0),(17567,'33470',2613,2614,4,0),(17568,'33470',2391,2392,4,0),(17569,'33470',2845,2846,4,0),(17570,'33476',3291,3292,4,0),(17571,'33480',2847,2848,4,0),(17572,'33490',2393,2394,4,0),(17573,'33491',2521,2522,4,0),(17574,'33492',2523,2524,4,0),(17575,'33500',2853,2854,4,0),(17576,'33507',2855,2856,4,0),(17577,'33509',2857,2858,4,0),(17578,'33509',3023,3024,4,0),(17579,'33510',3253,3254,4,0),(17580,'33518',3233,3234,4,0),(17581,'33518',3255,3256,4,0),(17582,'33519',3257,3258,4,0),(17583,'33519',2627,2628,4,0),(17584,'33520',3117,3118,4,0),(17585,'33520',2923,2924,4,0),(17586,'33527',2425,2426,4,0),(17587,'33528',2925,2926,4,0),(17588,'33528',2427,2428,4,0),(17589,'33529',2461,2462,4,0),(17590,'33529',2927,2928,4,0),(17591,'33530',3063,3064,4,0),(17592,'33534',3065,3066,4,0),(17593,'33535',3067,3068,4,0),(17594,'33535',3007,3008,4,0),(17595,'33536',3069,3070,4,0),(17596,'33537',3071,3072,4,0),(17597,'33538',3073,3074,4,0),(17598,'33539',3075,3076,4,0),(17599,'33540',3025,3026,4,0),(17600,'33546',3027,3028,4,0),(17601,'33547',2475,2476,4,0),(17602,'33548',3029,3030,4,0),(17603,'33549',3031,3032,4,0),(17604,'33550',2477,2478,4,0),(17605,'33554',2453,2454,4,0),(17606,'33555',2455,2456,4,0),(17607,'33556',2949,2950,4,0),(17608,'33556',2479,2480,4,0),(17609,'33557',2371,2372,4,0),(17610,'33557',3083,3084,4,0),(17611,'33558',2373,2374,4,0),(17612,'33558',3085,3086,4,0),(17613,'33559',3033,3034,4,0),(17614,'33559',2481,2482,4,0),(17615,'33560',3129,3130,4,0),(17616,'33566',3131,3132,4,0),(17617,'33567',3133,3134,4,0),(17618,'33568',3135,3136,4,0),(17619,'33569',3137,3138,4,0),(17620,'33576',3043,3044,4,0),(17621,'33577',3045,3046,4,0),(17622,'33578',3047,3048,4,0),(17623,'33579',3051,3052,4,0),(17624,'33580',3259,3260,4,0),(17625,'33581',2929,2930,4,0),(17626,'33582',2931,2932,4,0),(17627,'33583',3077,3078,4,0),(17628,'33584',3079,3080,4,0),(17629,'33585',3035,3036,4,0),(17630,'33586',3037,3038,4,0),(17631,'33587',3039,3040,4,0),(17632,'33588',3139,3140,4,0),(17633,'33589',2483,2484,4,0),(17634,'33590',3119,3120,4,0),(17635,'33592',2859,2860,4,0),(17636,'33593',2861,2862,4,0),(17637,'33594',2863,2864,4,0),(17638,'33595',2865,2866,4,0),(17639,'33596',2867,2868,4,0),(17640,'33598',2869,2870,4,0),(17652,'33620',2805,2806,4,0),(17653,'33627',2807,2808,4,0),(17654,'33628',2809,2810,4,0),(17655,'33629',2811,2812,4,0),(17656,'33630',2813,2814,4,0),(17657,'33637',2815,2816,4,0),(17658,'33638',2817,2818,4,0),(17659,'33639',2819,2820,4,0),(17662,'33660',3011,3012,4,0),(17663,'33669',3013,3014,4,0),(17664,'33670',2341,2342,4,0),(17665,'33675',2343,2344,4,0),(17666,'33676',2345,2346,4,0),(17667,'33677',2347,2348,4,0),(17668,'33678',2349,2350,4,0),(17669,'33679',2351,2352,4,0),(17670,'33680',2353,2354,4,0),(17671,'33681',2355,2356,4,0),(17675,'33684',2359,2360,4,0),(17676,'33685',2361,2362,4,0),(17677,'33686',2363,2364,4,0),(17678,'33687',2365,2366,4,0),(17679,'33688',2367,2368,4,0),(17680,'33690',2849,2850,4,0),(17681,'33691',2695,2696,4,0),(17682,'33692',2821,2822,4,0),(17683,'33693',2823,2824,4,0),(17684,'33694',2825,2826,4,0),(17685,'33695',2827,2828,4,0),(17686,'33696',3015,3016,4,0),(17687,'33696',3151,3152,4,0),(17688,'33697',2697,2698,4,0),(17689,'33700',3331,3332,4,0),(17690,'33707',3333,3334,4,0),(17691,'33708',3335,3336,4,0),(17692,'33709',3337,3338,4,0),(17693,'33710',2935,2936,4,0),(17694,'33716',2567,2568,4,0),(17695,'33717',3401,3402,4,0),(17696,'33718',3403,3404,4,0),(17697,'33719',2569,2570,4,0),(17698,'33719',2937,2938,4,0),(17699,'33720',2431,2432,4,0),(17700,'33724',2433,2434,4,0),(17701,'33725',2435,2436,4,0),(17702,'33726',2571,2572,4,0),(17703,'33726',2437,2438,4,0),(17704,'33727',2439,2440,4,0),(17705,'33728',2441,2442,4,0),(17706,'33729',2443,2444,4,0),(17707,'33730',2731,2732,4,0),(17708,'33731',2445,2446,4,0),(17709,'33732',2743,2744,4,0),(17710,'33733',2745,2746,4,0),(17711,'33734',2747,2748,4,0),(17712,'33735',3055,3056,4,0),(17713,'33736',3057,3058,4,0),(17714,'33740',3293,3294,4,0),(17715,'33746',3295,3296,4,0),(17716,'33746',2637,2638,4,0),(17717,'33747',3297,3298,4,0),(17718,'33749',3299,3300,4,0),(17719,'33750',2639,2640,4,0),(17720,'33757',2641,2642,4,0),(17721,'33758',2643,2644,4,0),(17722,'33759',2645,2646,4,0),(17723,'33760',2555,2556,4,0),(17724,'33768',2557,2558,4,0),(17725,'33769',2559,2560,4,0),(17726,'33770',3363,3364,4,0),(17727,'33774',3219,3220,4,0),(17728,'33775',3303,3304,4,0),(17729,'33776',3223,3224,4,0),(17730,'33776',3365,3366,4,0),(17731,'33777',3373,3374,4,0),(17732,'33777',3191,3192,4,0),(17733,'33777',3059,3060,4,0),(17734,'33778',2561,2562,4,0),(17735,'33778',3367,3368,4,0),(17736,'33779',3369,3370,4,0),(17737,'33779',3225,3226,4,0),(17738,'33780',3339,3340,4,0),(17739,'33781',3159,3160,4,0),(17740,'33782',3161,3162,4,0),(17741,'33782',3341,3342,4,0),(17742,'33783',3343,3344,4,0),(17743,'33784',3345,3346,4,0),(17744,'33785',3347,3348,4,0),(17745,'33787',3349,3350,4,0),(17746,'33788',3351,3352,4,0),(17747,'33789',3353,3354,4,0),(17748,'33790',2939,2940,4,0),(17749,'33791',3355,3356,4,0),(17750,'33792',3357,3358,4,0),(17751,'33793',2941,2942,4,0),(17752,'33794',2563,2564,4,0),(17753,'33795',2573,2574,4,0),(17754,'33796',2575,2576,4,0),(17755,'33797',2577,2578,4,0),(17756,'33798',2447,2448,4,0),(17757,'33799',2449,2450,4,0),(17758,'33800',2487,2488,4,0),(17759,'33810',2735,2736,4,0),(17760,'33811',2489,2490,4,0),(17761,'33811',2737,2738,4,0),(17762,'33812',2631,2632,4,0),(17763,'33812',2739,2740,4,0),(17764,'33813',2491,2492,4,0),(17765,'33813',2633,2634,4,0),(17766,'33814',2493,2494,4,0),(17767,'33815',2495,2496,4,0),(17768,'33815',2325,2326,4,0),(17769,'33816',2497,2498,4,0),(17770,'33817',2499,2500,4,0),(17771,'33818',2501,2502,4,0),(17772,'33819',2503,2504,4,0),(17773,'33820',2719,2720,4,0),(17774,'33825',2721,2722,4,0),(17775,'33826',3407,3408,4,0),(17776,'33826',2723,2724,4,0),(17777,'33827',2399,2400,4,0),(17778,'33827',2725,2726,4,0),(17779,'33828',2469,2470,4,0),(17780,'33829',2727,2728,4,0),(17781,'33829',2471,2472,4,0),(17782,'33830',2401,2402,4,0),(17783,'33836',3163,3164,4,0),(17784,'33836',2403,2404,4,0),(17785,'33837',2405,2406,4,0),(17786,'33838',2407,2408,4,0),(17787,'33839',2409,2410,4,0),(17788,'33840',3273,3274,4,0),(17789,'33841',3275,3276,4,0),(17790,'33842',3277,3278,4,0),(17791,'33842',2411,2412,4,0),(17792,'33843',2413,2414,4,0),(17793,'33844',2415,2416,4,0),(17794,'33845',2417,2418,4,0),(17795,'33846',3165,3166,4,0),(17796,'33846',2419,2420,4,0),(17797,'33847',2421,2422,4,0),(17798,'33848',3167,3168,4,0),(17799,'33850',3169,3170,4,0),(17800,'33857',3171,3172,4,0),(17801,'33858',3173,3174,4,0),(17802,'33859',3175,3176,4,0),(17803,'33860',3177,3178,4,0),(17804,'33866',3179,3180,4,0),(17805,'33867',3181,3182,4,0),(17806,'33868',3183,3184,4,0),(17807,'33869',3185,3186,4,0),(17808,'33870',3313,3314,4,0),(17809,'33873',3315,3316,4,0),(17810,'33874',3359,3360,4,0),(17811,'33874',3317,3318,4,0),(17812,'33875',3319,3320,4,0),(17813,'33876',3321,3322,4,0),(17814,'33877',3323,3324,4,0),(17815,'33878',3325,3326,4,0),(17816,'33879',3327,3328,4,0),(17817,'33880',2327,2328,4,0),(17818,'33885',2329,2330,4,0),(17819,'33887',2331,2332,4,0),(17820,'33888',2333,2334,4,0),(17821,'33889',2335,2336,4,0),(17822,'33890',2337,2338,4,0),(17823,'33891',3187,3188,4,0),(17824,'33900',2759,2760,4,0),(17825,'33909',2761,2762,4,0),(17826,'33910',3017,3018,4,0),(17827,'33919',3019,3020,4,0),(17828,'33920',2763,2764,4,0),(17829,'33929',2765,2766,4,0),(17830,'33930',2767,2768,4,0),(17831,'33934',2769,2770,4,0),(17832,'33935',2771,2772,4,0),(17833,'33936',3261,3262,4,0),(17834,'33937',3263,3264,4,0),(17835,'33938',3265,3266,4,0),(17836,'33939',2773,2774,4,0),(17837,'33940',3195,3196,4,0),(17838,'33945',3197,3198,4,0),(17839,'33946',3199,3200,4,0),(17840,'33947',3201,3202,4,0),(17841,'33948',3203,3204,4,0),(17842,'33950',3205,3206,4,0),(17843,'33957',3207,3208,4,0),(17844,'33958',3209,3210,4,0),(17845,'33959',3211,3212,4,0),(17846,'33960',3213,3214,4,0),(17847,'33970',2787,2788,4,0),(17848,'33979',2789,2790,4,0),(17849,'33980',2791,2792,4,0),(17850,'33986',2793,2794,4,0),(17851,'33987',2795,2796,4,0),(17852,'33989',2797,2798,4,0),(17853,'33990',2527,2528,4,0),(17854,'33991',2799,2800,4,0),(17855,'33992',2801,2802,4,0),(17856,'33993',3269,3270,4,0),(17857,'33995',2529,2530,4,0),(17858,'33996',2531,2532,4,0),(17859,'34001',30903,30904,4,0),(17860,'34002',30905,30906,4,0),(17861,'34003',30907,30908,4,0),(17862,'34004',30909,30910,4,0),(17863,'34005',30911,30912,4,0),(17864,'34006',30913,30914,4,0),(17865,'34100',31045,31046,4,0),(17866,'34110',30955,30956,4,0),(17867,'34111',31253,31254,4,0),(17868,'34111',30987,30988,4,0),(17869,'34111',31353,31354,4,0),(17870,'34111',30957,30958,4,0),(17871,'34111',31047,31048,4,0),(17872,'34112',31255,31256,4,0),(17873,'34112',31095,31096,4,0),(17874,'34112',31355,31356,4,0),(17875,'34113',31257,31258,4,0),(17876,'34113',31305,31306,4,0),(17877,'34113',30939,30940,4,0),(17878,'34114',31003,31004,4,0),(17879,'34115',31049,31050,4,0),(17880,'34115',31167,31168,4,0),(17881,'34116',30571,30572,4,0),(17882,'34116',31307,31308,4,0),(17883,'34116',30941,30942,4,0),(17884,'34117',31051,31052,4,0),(17885,'34118',30813,30814,4,0),(17886,'34120',30595,30596,4,0),(17887,'34126',31277,31278,4,0),(17888,'34126',31013,31014,4,0),(17889,'34127',30815,30816,4,0),(17890,'34127',31159,31160,4,0),(17891,'34128',30877,30878,4,0),(17892,'34128',31005,31006,4,0),(17893,'34128',30791,30792,4,0),(17894,'34128',30817,30818,4,0),(17895,'34129',31323,31324,4,0),(17896,'34129',30575,30576,4,0),(17897,'34129',30583,30584,4,0),(17898,'34131',31349,31350,4,0),(17899,'34131',30597,30598,4,0),(17900,'34132',31315,31316,4,0),(17901,'34159',30469,30470,4,0),(17902,'34160',30471,30472,4,0),(17903,'34170',31327,31328,4,0),(17904,'34170',31261,31262,4,0),(17905,'34170',30843,30844,4,0),(17906,'34170',30935,30936,4,0),(17907,'34190',31285,31286,4,0),(17908,'34191',30473,30474,4,0),(17909,'34191',31085,31086,4,0),(17910,'34191',30915,30916,4,0),(17911,'34191',30497,30498,4,0),(17912,'34192',31329,31330,4,0),(17913,'34192',30729,30730,4,0),(17914,'34200',31189,31190,4,0),(17915,'34208',30693,30694,4,0),(17916,'34208',31009,31010,4,0),(17917,'34208',31191,31192,4,0),(17918,'34209',30763,30764,4,0),(17919,'34209',31139,31140,4,0),(17920,'34209',31119,31120,4,0),(17921,'34209',31173,31174,4,0),(17922,'34210',30695,30696,4,0),(17923,'34218',30645,30646,4,0),(17924,'34219',30461,30462,4,0),(17925,'34219',30969,30970,4,0),(17926,'34219',30677,30678,4,0),(17927,'34219',30617,30618,4,0),(17928,'34219',31195,31196,4,0),(17929,'34220',30827,30828,4,0),(17930,'34230',31143,31144,4,0),(17931,'34239',31163,31164,4,0),(17932,'34239',31265,31266,4,0),(17933,'34240',30509,30510,4,0),(17934,'34246',30613,30614,4,0),(17935,'34247',30649,30650,4,0),(17936,'34247',31209,31210,4,0),(17937,'34247',30747,30748,4,0),(17938,'34248',30483,30484,4,0),(17939,'34248',30657,30658,4,0),(17940,'34248',30699,30700,4,0),(17941,'34249',30511,30512,4,0),(17942,'34249',30767,30768,4,0),(17943,'34249',31333,31334,4,0),(17944,'34250',30999,31000,4,0),(17945,'34257',30919,30920,4,0),(17946,'34257',31127,31128,4,0),(17947,'34257',31345,31346,4,0),(17948,'34257',31223,31224,4,0),(17949,'34259',30673,30674,4,0),(17950,'34259',30759,30760,4,0),(17951,'34259',31233,31234,4,0),(17952,'34260',9007,9008,4,0),(17953,'34260',8515,8516,4,0),(17954,'34260',8901,8902,4,0),(17955,'34300',30927,30928,4,0),(17956,'34304',30539,30540,4,0),(17957,'34305',30515,30516,4,0),(17958,'34305',30855,30856,4,0),(17959,'34305',30587,30588,4,0),(17960,'34305',30549,30550,4,0),(17961,'34305',31337,31338,4,0),(17962,'34305',31147,31148,4,0),(17963,'34305',30625,30626,4,0),(17964,'34306',30743,30744,4,0),(17965,'34306',30601,30602,4,0),(17966,'34306',30847,30848,4,0),(17967,'34306',30709,30710,4,0),(17968,'34307',31177,31178,4,0),(17969,'34309',30629,30630,4,0),(17970,'34309',30591,30592,4,0),(17971,'34309',31281,31282,4,0),(17972,'34309',31041,31042,4,0),(17973,'34309',31289,31290,4,0),(17974,'34310',30945,30946,4,0),(17975,'34310',30535,30536,4,0),(17976,'34320',30653,30654,4,0),(17977,'34337',30721,30722,4,0),(17978,'34338',30501,30502,4,0),(17979,'34338',30429,30430,4,0),(17980,'34340',31213,31214,4,0),(17981,'34347',30799,30800,4,0),(17982,'34347',30991,30992,4,0),(17983,'34347',30809,30810,4,0),(17984,'34347',31081,31082,4,0),(17985,'34347',31245,31246,4,0),(17986,'34347',30961,30962,4,0),(17987,'34348',31203,31204,4,0),(17988,'34349',31205,31206,4,0),(17989,'34349',30801,30802,4,0),(17990,'34349',31215,31216,4,0),(17991,'34349',30869,30870,4,0),(17992,'34349',30553,30554,4,0),(17993,'34350',31311,31312,4,0),(17994,'34400',30751,30752,4,0),(17995,'34404',30681,30682,4,0),(17996,'34405',31089,31090,4,0),(17997,'34405',30703,30704,4,0),(17998,'34405',30753,30754,4,0),(17999,'34406',30755,30756,4,0),(18000,'34406',30661,30662,4,0),(18001,'34406',30531,30532,4,0),(18002,'34406',30689,30690,4,0),(18003,'34407',30881,30882,4,0),(18004,'34407',30923,30924,4,0),(18005,'34407',31033,31034,4,0),(18006,'34407',30663,30664,4,0),(18007,'34407',31123,31124,4,0),(18008,'34407',30579,30580,4,0),(18009,'34407',31269,31270,4,0),(18010,'34408',31271,31272,4,0),(18011,'34409',31273,31274,4,0),(18012,'34410',30863,30864,4,0),(18013,'34419',30725,30726,4,0),(18014,'34419',30865,30866,4,0),(18015,'34419',30771,30772,4,0),(18016,'34419',31249,31250,4,0),(18017,'34419',30477,30478,4,0),(18018,'34420',30479,30480,4,0),(18019,'34429',30831,30832,4,0),(18020,'34429',30835,30836,4,0),(18021,'34429',30947,30948,4,0),(18022,'34429',30465,30466,4,0),(18023,'34429',31037,31038,4,0),(18024,'34429',31063,31064,4,0),(18025,'34430',30951,30952,4,0),(18026,'34439',31135,31136,4,0),(18027,'34440',30717,30718,4,0),(18028,'34447',31029,31030,4,0),(18029,'34447',31301,31302,4,0),(18030,'34449',30965,30966,4,0),(18031,'34449',30487,30488,4,0),(18032,'34449',31241,31242,4,0),(18033,'34449',31359,31360,4,0),(18034,'34449',30823,30824,4,0),(18035,'34450',30491,30492,4,0),(18036,'34460',30897,30898,4,0),(18037,'34465',31155,31156,4,0),(18038,'34466',31341,31342,4,0),(18039,'34467',30851,30852,4,0),(18040,'34468',30805,30806,4,0),(18041,'34468',30557,30558,4,0),(18042,'34468',30893,30894,4,0),(18043,'34468',30775,30776,4,0),(18044,'34469',30899,30900,4,0),(18045,'34469',30839,30840,4,0),(18046,'34469',31017,31018,4,0),(18047,'34469',31227,31228,4,0),(18048,'34470',30565,30566,4,0),(18049,'34470',30787,30788,4,0),(18050,'34473',31131,31132,4,0),(18051,'34473',30505,30506,4,0),(18052,'34473',30567,30568,4,0),(18053,'34473',31169,31170,4,0),(18054,'34475',31319,31320,4,0),(18055,'34475',31219,31220,4,0),(18056,'34475',31199,31200,4,0),(18057,'34477',30519,30520,4,0),(18058,'34477',30819,30820,4,0),(18059,'34477',31293,31294,4,0),(18060,'34478',30621,30622,4,0),(18061,'34480',30453,30454,4,0),(18062,'34484',30683,30684,4,0),(18063,'34485',30859,30860,4,0),(18064,'34485',30885,30886,4,0),(18065,'34485',30795,30796,4,0),(18066,'34485',30931,30932,4,0),(18067,'34486',30633,30634,4,0),(18068,'34486',30887,30888,4,0),(18069,'34486',30995,30996,4,0),(18070,'34486',31099,31100,4,0),(18071,'34486',30437,30438,4,0),(18072,'34487',30889,30890,4,0),(18073,'34487',30455,30456,4,0),(18074,'34490',31115,31116,4,0),(18075,'34490',30493,30494,4,0),(18076,'34491',31297,31298,4,0),(18077,'34491',31229,31230,4,0),(18078,'34491',31091,31092,4,0),(18079,'34491',31073,31074,4,0),(18080,'34491',30433,30434,4,0),(18081,'34491',30705,30706,4,0),(18082,'34492',30457,30458,4,0),(18083,'34492',8697,8698,4,0),(18084,'34492',8483,8484,4,0),(18085,'34492',30439,30440,4,0),(18086,'34800',30441,30442,4,0),(18087,'34810',30443,30444,4,0),(18088,'34810',31055,31056,4,0),(18089,'34811',30445,30446,4,0),(18090,'34811',30977,30978,4,0),(18091,'34813',30447,30448,4,0),(18092,'34813',30979,30980,4,0),(18093,'34814',30543,30544,4,0),(18094,'34814',30981,30982,4,0),(18095,'34815',30983,30984,4,0),(18096,'34815',30449,30450,4,0),(18097,'34820',30523,30524,4,0),(18098,'34828',31067,31068,4,0),(18099,'34828',30525,30526,4,0),(18100,'34828',31057,31058,4,0),(18101,'34829',30561,30562,4,0),(18102,'34829',30527,30528,4,0),(18103,'34830',31077,31078,4,0),(18104,'34830',31059,31060,4,0),(18105,'34839',31069,31070,4,0),(18106,'34839',30635,30636,4,0),(18107,'34839',30873,30874,4,0),(18108,'34840',30637,30638,4,0),(18109,'34844',30639,30640,4,0),(18110,'34844',30685,30686,4,0),(18111,'34844',31151,31152,4,0),(18112,'34846',30973,30974,4,0),(18113,'34846',30641,30642,4,0),(18114,'34847',30779,30780,4,0),(18115,'34848',30781,30782,4,0),(18116,'34849',30783,30784,4,0),(18117,'34850',30605,30606,4,0),(18118,'34858',30607,30608,4,0),(18119,'34859',30609,30610,4,0),(18120,'34869',31103,31104,4,0),(18121,'34870',31021,31022,4,0),(18122,'34870',31105,31106,4,0),(18123,'34874',31023,31024,4,0),(18124,'34878',31025,31026,4,0),(18125,'34878',30667,30668,4,0),(18126,'34878',31107,31108,4,0),(18127,'34879',31109,31110,4,0),(18128,'34879',30733,30734,4,0),(18129,'34880',30735,30736,4,0),(18130,'34882',30669,30670,4,0),(18131,'34882',30737,30738,4,0),(18132,'34884',31111,31112,4,0),(18133,'34886',31181,31182,4,0),(18134,'34888',31183,31184,4,0),(18135,'34889',30713,30714,4,0),(18136,'34889',30739,30740,4,0),(18137,'34889',31185,31186,4,0),(18138,'34889',31237,31238,4,0),(18139,'36001',31967,31968,4,0),(18140,'36002',31969,31970,4,0),(18141,'36003',31971,31972,4,0),(18142,'36004',31973,31974,4,0),(18143,'36005',31901,31902,4,0),(18144,'36005',31975,31976,4,0),(18145,'36110',31553,31554,4,0),(18146,'36116',31581,31582,4,0),(18147,'36117',31555,31556,4,0),(18148,'36118',31557,31558,4,0),(18149,'36119',31559,31560,4,0),(18150,'36120',31583,31584,4,0),(18151,'36121',31585,31586,4,0),(18152,'36139',31587,31588,4,0),(18153,'36140',32279,32280,4,0),(18154,'36141',32281,32282,4,0),(18155,'36142',32283,32284,4,0),(18156,'36143',31977,31978,4,0),(18157,'36150',31979,31980,4,0),(18158,'36151',31981,31982,4,0),(18159,'36152',31983,31984,4,0),(18160,'36153',31985,31986,4,0),(18161,'36154',31987,31988,4,0),(18162,'36155',31989,31990,4,0),(18163,'36156',31991,31992,4,0),(18164,'36157',31993,31994,4,0),(18165,'36158',31995,31996,4,0),(18166,'36160',31997,31998,4,0),(18167,'36161',31999,32000,4,0),(18168,'36162',32001,32002,4,0),(18169,'36163',31903,31904,4,0),(18170,'36164',32003,32004,4,0),(18171,'36190',31503,31504,4,0),(18172,'36191',31505,31506,4,0),(18173,'36192',31765,31766,4,0),(18174,'36193',32011,32012,4,0),(18175,'36193',31507,31508,4,0),(18176,'36194',31509,31510,4,0),(18177,'36201',32197,32198,4,0),(18178,'36202',32199,32200,4,0),(18179,'36203',32201,32202,4,0),(18180,'36204',32203,32204,4,0),(18181,'36205',32205,32206,4,0),(18182,'36206',32207,32208,4,0),(18183,'36207',32209,32210,4,0),(18184,'36208',32211,32212,4,0),(18185,'36209',32213,32214,4,0),(18186,'36210',32215,32216,4,0),(18187,'36211',32217,32218,4,0),(18188,'36212',32219,32220,4,0),(18189,'36213',32221,32222,4,0),(18190,'36214',32223,32224,4,0),(18191,'36215',32225,32226,4,0),(18192,'36216',32227,32228,4,0),(18193,'36300',31491,31492,4,0),(18194,'36307',31493,31494,4,0),(18195,'36308',31495,31496,4,0),(18196,'36309',31879,31880,4,0),(18197,'36309',31497,31498,4,0),(18198,'36310',32229,32230,4,0),(18199,'36311',31815,31816,4,0),(18200,'36312',32231,32232,4,0),(18201,'36313',32233,32234,4,0),(18202,'36314',32235,32236,4,0),(18203,'36315',32237,32238,4,0),(18204,'36316',31691,31692,4,0),(18205,'36317',32239,32240,4,0),(18206,'36318',32241,32242,4,0),(18207,'36320',32019,32020,4,0),(18208,'36330',32243,32244,4,0),(18209,'36331',32245,32246,4,0),(18210,'36340',31829,31830,4,0),(18211,'36350',31831,31832,4,0),(18212,'36360',31833,31834,4,0),(18213,'36370',31835,31836,4,0),(18214,'36378',31693,31694,4,0),(18215,'36379',31837,31838,4,0),(18216,'36380',31695,31696,4,0),(18217,'36388',31697,31698,4,0),(18218,'36389',31699,31700,4,0),(18219,'36390',32247,32248,4,0),(18220,'36391',31839,31840,4,0),(18221,'36392',32249,32250,4,0),(18222,'36393',31499,31500,4,0),(18223,'36400',31853,31854,4,0),(18224,'36410',31855,31856,4,0),(18225,'36411',31857,31858,4,0),(18226,'36412',31859,31860,4,0),(18227,'36413',31861,31862,4,0),(18228,'36414',31863,31864,4,0),(18229,'36415',31817,31818,4,0),(18230,'36416',31819,31820,4,0),(18231,'36417',31821,31822,4,0),(18232,'36418',31865,31866,4,0),(18233,'36418',31823,31824,4,0),(18234,'36419',31825,31826,4,0),(18235,'36420',31617,31618,4,0),(18236,'36428',31619,31620,4,0),(18237,'36429',31621,31622,4,0),(18238,'36430',31463,31464,4,0),(18239,'36435',31465,31466,4,0),(18240,'36436',31467,31468,4,0),(18241,'36437',31469,31470,4,0),(18242,'36438',31471,31472,4,0),(18243,'36439',31473,31474,4,0),(18244,'36440',31479,31480,4,0),(18245,'36446',31481,31482,4,0),(18246,'36447',31483,31484,4,0),(18247,'36448',31485,31486,4,0),(18248,'36449',31487,31488,4,0),(18249,'36450',32081,32082,4,0),(18250,'36455',32083,32084,4,0),(18251,'36456',32085,32086,4,0),(18252,'36457',32087,32088,4,0),(18253,'36458',32089,32090,4,0),(18254,'36459',32091,32092,4,0),(18255,'36460',32065,32066,4,0),(18256,'36460',32167,32168,4,0),(18257,'36470',32067,32068,4,0),(18258,'36470',32141,32142,4,0),(18259,'36471',32069,32070,4,0),(18260,'36472',32071,32072,4,0),(18261,'36473',32073,32074,4,0),(18262,'36474',32075,32076,4,0),(18263,'36475',32077,32078,4,0),(18264,'36475',31867,31868,4,0),(18265,'36490',31623,31624,4,0),(18266,'36491',31625,31626,4,0),(18267,'36492',31627,31628,4,0),(18268,'36493',31629,31630,4,0),(18269,'36494',31475,31476,4,0),(18270,'36500',31711,31712,4,0),(18271,'36510',31713,31714,4,0),(18272,'36511',31715,31716,4,0),(18273,'36511',32053,32054,4,0),(18274,'36512',31717,31718,4,0),(18275,'36514',31719,31720,4,0),(18276,'36514',31445,31446,4,0),(18277,'36515',31721,31722,4,0),(18278,'36516',31647,31648,4,0),(18279,'36516',31723,31724,4,0),(18280,'36517',31725,31726,4,0),(18281,'36518',31727,31728,4,0),(18282,'36518',31649,31650,4,0),(18283,'36519',31729,31730,4,0),(18284,'36520',31447,31448,4,0),(18285,'36524',31449,31450,4,0),(18286,'36525',31451,31452,4,0),(18287,'36526',31453,31454,4,0),(18288,'36527',31455,31456,4,0),(18289,'36528',31457,31458,4,0),(18290,'36529',31459,31460,4,0),(18291,'36530',32055,32056,4,0),(18292,'36537',32057,32058,4,0),(18293,'36538',32059,32060,4,0),(18294,'36539',32061,32062,4,0),(18295,'36540',32109,32110,4,0),(18296,'36543',32111,32112,4,0),(18297,'36544',32113,32114,4,0),(18298,'36545',32115,32116,4,0),(18299,'36546',32117,32118,4,0),(18300,'36547',32119,32120,4,0),(18301,'36548',32121,32122,4,0),(18302,'36549',31653,31654,4,0),(18303,'36549',32123,32124,4,0),(18304,'36550',31655,31656,4,0),(18305,'36555',31657,31658,4,0),(18306,'36556',31659,31660,4,0),(18307,'36557',31661,31662,4,0),(18308,'36558',31663,31664,4,0),(18309,'36559',31383,31384,4,0),(18310,'36560',31665,31666,4,0),(18311,'36567',31667,31668,4,0),(18312,'36569',31669,31670,4,0),(18313,'36570',32125,32126,4,0),(18314,'36579',32127,32128,4,0),(18315,'36580',32253,32254,4,0),(18316,'36581',32255,32256,4,0),(18317,'36582',32257,32258,4,0),(18318,'36583',32259,32260,4,0),(18319,'36583',31731,31732,4,0),(18320,'36584',31385,31386,4,0),(18321,'36585',32261,32262,4,0),(18322,'36586',32263,32264,4,0),(18323,'36587',32129,32130,4,0),(18324,'36587',32265,32266,4,0),(18325,'36588',31387,31388,4,0),(18326,'36589',32131,32132,4,0),(18327,'36590',32267,32268,4,0),(18328,'36596',32269,32270,4,0),(18329,'36596',31733,31734,4,0),(18330,'36597',32271,32272,4,0),(18331,'36598',32273,32274,4,0),(18332,'36598',31735,31736,4,0),(18333,'36599',32275,32276,4,0),(18334,'36600',32287,32288,4,0),(18335,'36610',32289,32290,4,0),(18336,'36611',32291,32292,4,0),(18337,'36612',31577,31578,4,0),(18338,'36613',32293,32294,4,0),(18339,'36614',32305,32306,4,0),(18340,'36615',31525,31526,4,0),(18341,'36616',32307,32308,4,0),(18342,'36616',31767,31768,4,0),(18343,'36617',32295,32296,4,0),(18344,'36618',32297,32298,4,0),(18345,'36619',32299,32300,4,0),(18346,'36620',32309,32310,4,0),(18347,'36626',31423,31424,4,0),(18348,'36627',32311,32312,4,0),(18349,'36628',32313,32314,4,0),(18350,'36629',32315,32316,4,0),(18351,'36629',32301,32302,4,0),(18352,'36630',31541,31542,4,0),(18353,'36633',31543,31544,4,0),(18354,'36634',31545,31546,4,0),(18355,'36635',31547,31548,4,0),(18356,'36635',32045,32046,4,0),(18357,'36636',32047,32048,4,0),(18358,'36637',31769,31770,4,0),(18359,'36638',31755,31756,4,0),(18360,'36638',32049,32050,4,0),(18361,'36639',31549,31550,4,0),(18362,'36640',31961,31962,4,0),(18363,'36645',32189,32190,4,0),(18364,'36646',32191,32192,4,0),(18365,'36647',32193,32194,4,0),(18366,'36649',31963,31964,4,0),(18367,'36650',31527,31528,4,0),(18368,'36653',31529,31530,4,0),(18369,'36654',31531,31532,4,0),(18370,'36655',31533,31534,4,0),(18371,'36656',31535,31536,4,0),(18372,'36657',32013,32014,4,0),(18373,'36658',31389,31390,4,0),(18374,'36658',32015,32016,4,0),(18375,'36659',31537,31538,4,0),(18376,'36660',31807,31808,4,0),(18377,'36668',31809,31810,4,0),(18378,'36669',31811,31812,4,0),(18379,'36670',31635,31636,4,0),(18380,'36675',31637,31638,4,0),(18381,'36676',31391,31392,4,0),(18382,'36677',31639,31640,4,0),(18383,'36678',31641,31642,4,0),(18384,'36679',31643,31644,4,0),(18385,'36680',31393,31394,4,0),(18386,'36681',31395,31396,4,0),(18387,'36682',31397,31398,4,0),(18388,'36683',31399,31400,4,0),(18389,'36684',31401,31402,4,0),(18390,'36685',31403,31404,4,0),(18391,'36685',31929,31930,4,0),(18392,'36686',31405,31406,4,0),(18393,'36687',31407,31408,4,0),(18394,'36688',31409,31410,4,0),(18395,'36689',31411,31412,4,0),(18396,'36690',32005,32006,4,0),(18397,'36690',32135,32136,4,0),(18398,'36691',32137,32138,4,0),(18399,'36692',31511,31512,4,0),(18400,'36693',32021,32022,4,0),(18401,'36700',32169,32170,4,0),(18402,'36710',32171,32172,4,0),(18403,'36711',32173,32174,4,0),(18404,'36712',32175,32176,4,0),(18405,'36713',32177,32178,4,0),(18406,'36714',32179,32180,4,0),(18407,'36715',32181,32182,4,0),(18408,'36720',32183,32184,4,0),(18409,'36729',32185,32186,4,0),(18410,'36730',32143,32144,4,0),(18411,'36739',32145,32146,4,0),(18412,'36740',32147,32148,4,0),(18413,'36746',32149,32150,4,0),(18414,'36747',32151,32152,4,0),(18415,'36748',32153,32154,4,0),(18416,'36749',32155,32156,4,0),(18417,'36750',32157,32158,4,0),(18418,'36760',31871,31872,4,0),(18419,'36770',31873,31874,4,0),(18420,'36778',31875,31876,4,0),(18421,'36779',31881,31882,4,0),(18422,'36780',31415,31416,4,0),(18423,'36788',31417,31418,4,0),(18424,'36789',31419,31420,4,0),(18425,'36790',32159,32160,4,0),(18426,'36791',32161,32162,4,0),(18427,'36792',32163,32164,4,0),(18428,'36794',31883,31884,4,0),(18429,'36800',32023,32024,4,0),(18430,'36810',32025,32026,4,0),(18431,'36811',32027,32028,4,0),(18432,'36812',32029,32030,4,0),(18433,'36813',32031,32032,4,0),(18434,'36814',32033,32034,4,0),(18435,'36815',32035,32036,4,0),(18436,'36816',32037,32038,4,0),(18437,'36817',31887,31888,4,0),(18438,'36817',32039,32040,4,0),(18439,'36818',32041,32042,4,0),(18440,'36820',31913,31914,4,0),(18441,'36826',31915,31916,4,0),(18442,'36827',31917,31918,4,0),(18443,'36828',31919,31920,4,0),(18444,'36829',31921,31922,4,0),(18445,'36830',31427,31428,4,0),(18446,'36835',31429,31430,4,0),(18447,'36836',31431,31432,4,0),(18448,'36837',31433,31434,4,0),(18449,'36838',31435,31436,4,0),(18450,'36839',31437,31438,4,0),(18451,'36840',31889,31890,4,0),(18452,'36841',31891,31892,4,0),(18453,'36842',31893,31894,4,0),(18454,'36843',31895,31896,4,0),(18455,'36844',31897,31898,4,0),(18456,'36845',31673,31674,4,0),(18457,'36846',31675,31676,4,0),(18458,'36847',31677,31678,4,0),(18459,'36848',31679,31680,4,0),(18460,'36849',31681,31682,4,0),(18461,'36850',31439,31440,4,0),(18462,'36851',31683,31684,4,0),(18463,'36852',31685,31686,4,0),(18464,'36853',31923,31924,4,0),(18465,'36853',31441,31442,4,0),(18466,'36854',31589,31590,4,0),(18467,'36855',31591,31592,4,0),(18468,'36856',31593,31594,4,0),(18469,'36857',31925,31926,4,0),(18470,'36857',31595,31596,4,0),(18471,'36858',31597,31598,4,0),(18472,'36859',31599,31600,4,0),(18473,'36860',31931,31932,4,0),(18474,'36861',31933,31934,4,0),(18475,'36862',31935,31936,4,0),(18476,'36863',31937,31938,4,0),(18477,'36864',31939,31940,4,0),(18478,'36865',31941,31942,4,0),(18479,'36866',31943,31944,4,0),(18480,'36867',31945,31946,4,0),(18481,'36868',31947,31948,4,0),(18482,'36869',31949,31950,4,0),(18483,'36870',31787,31788,4,0),(18484,'36872',31603,31604,4,0),(18485,'36873',31605,31606,4,0),(18486,'36874',31789,31790,4,0),(18487,'36875',31791,31792,4,0),(18488,'36875',31687,31688,4,0),(18489,'36876',31793,31794,4,0),(18490,'36876',31607,31608,4,0),(18491,'36877',31795,31796,4,0),(18492,'36877',31609,31610,4,0),(18493,'36878',31797,31798,4,0),(18494,'36878',31611,31612,4,0),(18495,'36879',31799,31800,4,0),(18496,'36880',31365,31366,4,0),(18497,'36883',31367,31368,4,0),(18498,'36884',31369,31370,4,0),(18499,'36885',31631,31632,4,0),(18500,'36885',31371,31372,4,0),(18501,'36886',31373,31374,4,0),(18502,'36887',31375,31376,4,0),(18503,'36888',31377,31378,4,0),(18504,'36889',31379,31380,4,0),(18505,'36889',31613,31614,4,0),(18506,'36890',31803,31804,4,0),(18507,'36891',31951,31952,4,0),(18508,'36892',31953,31954,4,0),(18509,'36893',31955,31956,4,0),(18510,'36895',31957,31958,4,0),(18511,'36900',31739,31740,4,0),(18512,'36910',32007,32008,4,0),(18513,'36911',31741,31742,4,0),(18514,'36912',31743,31744,4,0),(18515,'36913',31745,31746,4,0),(18516,'36914',31747,31748,4,0),(18517,'36915',31749,31750,4,0),(18518,'36920',31751,31752,4,0),(18519,'36930',31515,31516,4,0),(18520,'36937',31517,31518,4,0),(18521,'36938',31519,31520,4,0),(18522,'36939',31521,31522,4,0),(18523,'36940',31563,31564,4,0),(18524,'36945',31565,31566,4,0),(18525,'36946',31567,31568,4,0),(18526,'36947',31569,31570,4,0),(18527,'36948',31571,31572,4,0),(18528,'36950',31773,31774,4,0),(18529,'36954',31775,31776,4,0),(18530,'36955',31777,31778,4,0),(18531,'36957',31779,31780,4,0),(18532,'36958',31781,31782,4,0),(18533,'36959',31783,31784,4,0),(18534,'36960',32095,32096,4,0),(18535,'36966',32097,32098,4,0),(18536,'36967',31757,31758,4,0),(18537,'36968',31759,31760,4,0),(18538,'36969',32099,32100,4,0),(18539,'36969',31761,31762,4,0),(18540,'36970',32101,32102,4,0),(18541,'36979',32103,32104,4,0),(18542,'36980',31843,31844,4,0),(18543,'36988',31845,31846,4,0),(18544,'36989',31847,31848,4,0),(18545,'36990',32105,32106,4,0),(18546,'36991',31849,31850,4,0),(18547,'36992',31905,31906,4,0),(18548,'36993',31907,31908,4,0),(18549,'36995',31909,31910,4,0),(18550,'37001',33587,33590,4,1),(18551,'37002',33591,33592,4,0),(18552,'37003',33593,33594,4,0),(18553,'37004',33595,33596,4,0),(18554,'37005',33597,33598,4,0),(18555,'37006',33599,33600,4,0),(18556,'37007',33601,33602,4,0),(18557,'37008',33603,33604,4,0),(18558,'37008',32621,32622,4,0),(18559,'37100',33187,33188,4,0),(18560,'37110',32777,32778,4,0),(18561,'37110',34061,34062,4,0),(18562,'37110',32387,32388,4,0),(18563,'37110',33731,33732,4,0),(18564,'37110',33825,33826,4,0),(18565,'37110',33673,33674,4,0),(18566,'37111',32445,32446,4,0),(18567,'37111',33189,33190,4,0),(18568,'37111',33405,33406,4,0),(18569,'37111',33675,33676,4,0),(18570,'37114',32973,32974,4,0),(18571,'37114',32843,32844,4,0),(18572,'37114',34007,34008,4,0),(18573,'37115',33909,33910,4,0),(18574,'37115',33895,33896,4,0),(18575,'37115',32431,32432,4,0),(18576,'37115',33047,33048,4,0),(18577,'37115',33987,33988,4,0),(18578,'37116',33191,33192,4,0),(18579,'37117',32765,32766,4,0),(18580,'37120',32635,32636,4,0),(18581,'37120',32767,32768,4,0),(18582,'37129',32883,32884,4,0),(18583,'37129',32933,32934,4,0),(18584,'37129',32637,32638,4,0),(18585,'37129',33417,33418,4,0),(18586,'37129',32769,32770,4,0),(18587,'37130',33989,33990,4,0),(18588,'37130',32757,32758,4,0),(18589,'37130',33111,33112,4,0),(18590,'37130',32597,32598,4,0),(18591,'37130',33573,33574,4,0),(18592,'37130',33777,33778,4,0),(18593,'37139',32759,32760,4,0),(18594,'37139',33113,33114,4,0),(18595,'37140',34011,34012,4,0),(18596,'37147',33957,33958,4,0),(18597,'37148',34013,34014,4,0),(18598,'37148',33959,33960,4,0),(18599,'37148',32871,32872,4,0),(18600,'37148',33833,33834,4,0),(18601,'37149',34015,34016,4,0),(18602,'37149',33193,33194,4,0),(18603,'37149',33835,33836,4,0),(18604,'37150',34017,34018,4,0),(18605,'37159',33545,33546,4,0),(18606,'37159',34019,34020,4,0),(18607,'37160',33979,33980,4,0),(18608,'37169',33981,33982,4,0),(18609,'37170',32977,32978,4,0),(18610,'37170',33991,33992,4,0),(18611,'37170',34065,34066,4,0),(18612,'37170',32827,32828,4,0),(18613,'37170',33911,33912,4,0),(18614,'37170',33669,33670,4,0),(18615,'37170',32721,32722,4,0),(18616,'37170',32639,32640,4,0),(18617,'37170',33115,33116,4,0),(18618,'37171',32811,32812,4,0),(18619,'37171',33289,33290,4,0),(18620,'37172',33735,33736,4,0),(18621,'37173',32333,32334,4,0),(18622,'37173',33829,33830,4,0),(18623,'37174',33983,33984,4,0),(18624,'37175',33497,33498,4,0),(18625,'37176',32435,32436,4,0),(18626,'37181',33457,33458,4,0),(18627,'37181',32571,32572,4,0),(18628,'37183',33317,33318,4,0),(18629,'37183',32453,32454,4,0),(18630,'37183',33655,33656,4,0),(18631,'37183',32403,32404,4,0),(18632,'37183',33337,33338,4,0),(18633,'37184',33967,33968,4,0),(18634,'37185',32667,32668,4,0),(18635,'37185',33931,33932,4,0),(18636,'37185',32761,32762,4,0),(18637,'37185',33897,33898,4,0),(18638,'37186',32405,32406,4,0),(18639,'37186',33339,33340,4,0),(18640,'37186',32485,32486,4,0),(18641,'37186',33657,33658,4,0),(18642,'37187',32407,32408,4,0),(18643,'37187',33265,33266,4,0),(18644,'37188',32455,32456,4,0),(18645,'37188',32623,32624,4,0),(18646,'37189',33969,33970,4,0),(18647,'37190',33809,33810,4,0),(18648,'37191',32625,32626,4,0),(18649,'37191',32575,32576,4,0),(18650,'37192',32641,32642,4,0),(18651,'37192',32409,32410,4,0),(18652,'37193',33659,33660,4,0),(18653,'37193',32561,32562,4,0),(18654,'37194',33711,33712,4,0),(18655,'37197',33341,33342,4,0),(18656,'37198',32627,32628,4,0),(18657,'37200',33095,33096,4,0),(18658,'37207',33097,33098,4,0),(18659,'37208',33099,33100,4,0),(18660,'37208',33649,33650,4,0),(18661,'37209',33461,33462,4,0),(18662,'37209',32801,32802,4,0),(18663,'37209',32543,32544,4,0),(18664,'37209',32967,32968,4,0),(18665,'37210',34047,34048,4,0),(18666,'37214',33157,33158,4,0),(18667,'37214',32553,32554,4,0),(18668,'37214',33129,33130,4,0),(18669,'37214',33885,33886,4,0),(18670,'37216',33521,33522,4,0),(18671,'37216',32715,32716,4,0),(18672,'37216',33329,33330,4,0),(18673,'37216',33489,33490,4,0),(18674,'37216',33493,33494,4,0),(18675,'37217',32495,32496,4,0),(18676,'37217',33039,33040,4,0),(18677,'37217',33995,33996,4,0),(18678,'37217',32539,32540,4,0),(18679,'37217',33681,33682,4,0),(18680,'37217',33963,33964,4,0),(18681,'37217',33887,33888,4,0),(18682,'37219',33563,33564,4,0),(18683,'37219',32985,32986,4,0),(18684,'37219',33331,33332,4,0),(18685,'37219',34053,34054,4,0),(18686,'37219',32563,32564,4,0),(18687,'37220',33091,33092,4,0),(18688,'37230',33019,33020,4,0),(18689,'37240',33209,33210,4,0),(18690,'37246',33765,33766,4,0),(18691,'37247',33133,33134,4,0),(18692,'37248',32329,32330,4,0),(18693,'37250',32367,32368,4,0),(18694,'37250',34049,34050,4,0),(18695,'37251',32369,32370,4,0),(18696,'37251',33247,33248,4,0),(18697,'37253',32693,32694,4,0),(18698,'37253',32371,32372,4,0),(18699,'37253',33161,33162,4,0),(18700,'37254',33261,33262,4,0),(18701,'37255',32499,32500,4,0),(18702,'37256',33867,33868,4,0),(18703,'37256',33999,34000,4,0),(18704,'37256',32815,32816,4,0),(18705,'37256',32857,32858,4,0),(18706,'37257',33739,33740,4,0),(18707,'37258',34043,34044,4,0),(18708,'37258',33333,33334,4,0),(18709,'37259',33607,33608,4,0),(18710,'37260',34031,34032,4,0),(18711,'37267',33975,33976,4,0),(18712,'37270',33627,33628,4,0),(18713,'37271',32481,32482,4,0),(18714,'37273',32697,32698,4,0),(18715,'37281',32803,32804,4,0),(18716,'37290',32527,32528,4,0),(18717,'37291',32531,32532,4,0),(18718,'37291',32515,32516,4,0),(18719,'37291',33393,33394,4,0),(18720,'37291',32699,32700,4,0),(18721,'37291',32907,32908,4,0),(18722,'37292',33395,33396,4,0),(18723,'37300',33481,33482,4,0),(18724,'37310',33217,33218,4,0),(18725,'37311',33717,33718,4,0),(18726,'37312',32337,32338,4,0),(18727,'37313',33225,33226,4,0),(18728,'37314',33611,33612,4,0),(18729,'37315',33229,33230,4,0),(18730,'37316',32535,32536,4,0),(18731,'37317',32789,32790,4,0),(18732,'37317',32399,32400,4,0),(18733,'37318',33427,33428,4,0),(18734,'37318',33559,33560,4,0),(18735,'37319',32617,32618,4,0),(18736,'37320',33947,33948,4,0),(18737,'37329',33915,33916,4,0),(18738,'37329',32355,32356,4,0),(18739,'37330',32477,32478,4,0),(18740,'37337',32745,32746,4,0),(18741,'37337',33321,33322,4,0),(18742,'37338',33035,33036,4,0),(18743,'37338',34039,34040,4,0),(18744,'37339',34035,34036,4,0),(18745,'37340',33645,33646,4,0),(18746,'37340',32391,32392,4,0),(18747,'37350',32375,32376,4,0),(18748,'37400',32609,32610,4,0),(18749,'37405',32613,32614,4,0),(18750,'37406',33409,33410,4,0),(18751,'37406',33919,33920,4,0),(18752,'37406',33517,33518,4,0),(18753,'37408',34069,34070,4,0),(18754,'37409',33793,33794,4,0),(18755,'37410',32823,32824,4,0),(18756,'37418',32449,32450,4,0),(18757,'37419',33423,33424,4,0),(18758,'37419',32879,32880,4,0),(18759,'37420',32981,32982,4,0),(18760,'37427',33153,33154,4,0),(18761,'37427',33453,33454,4,0),(18762,'37427',33123,33124,4,0),(18763,'37428',33399,33400,4,0),(18764,'37428',33125,33126,4,0),(18765,'37428',34027,34028,4,0),(18766,'37429',32463,32464,4,0),(18767,'37429',33797,33798,4,0),(18768,'37429',32379,32380,4,0),(18769,'37430',33325,33326,4,0),(18770,'37439',33619,33620,4,0),(18771,'37439',32663,32664,4,0),(18772,'37440',32579,32580,4,0),(18773,'37440',32487,32488,4,0),(18774,'37447',33579,33580,4,0),(18775,'37448',32599,32600,4,0),(18776,'37448',32581,32582,4,0),(18777,'37449',33419,33420,4,0),(18778,'37449',32643,32644,4,0),(18779,'37449',32935,32936,4,0),(18780,'37450',33251,33252,4,0),(18781,'37450',33177,33178,4,0),(18782,'37450',33901,33902,4,0),(18783,'37451',33927,33928,4,0),(18784,'37451',32645,32646,4,0),(18785,'37451',32649,32650,4,0),(18786,'37452',33347,33348,4,0),(18787,'37452',33179,33180,4,0),(18788,'37452',33903,33904,4,0),(18789,'37453',33905,33906,4,0),(18790,'37453',33253,33254,4,0),(18791,'37453',33661,33662,4,0),(18792,'37454',33181,33182,4,0),(18793,'37458',33443,33444,4,0),(18794,'37460',33699,33700,4,0),(18795,'37460',32419,32420,4,0),(18796,'37460',33779,33780,4,0),(18797,'37460',32969,32970,4,0),(18798,'37465',33141,33142,4,0),(18799,'37466',33685,33686,4,0),(18800,'37466',32421,32422,4,0),(18801,'37467',33701,33702,4,0),(18802,'37468',33707,33708,4,0),(18803,'37468',33703,33704,4,0),(18804,'37468',32717,32718,4,0),(18805,'37468',34003,34004,4,0),(18806,'37470',33693,33694,4,0),(18807,'37478',32425,32426,4,0),(18808,'37478',32351,32352,4,0),(18809,'37478',32753,32754,4,0),(18810,'37479',32675,32676,4,0),(18811,'37479',33695,33696,4,0),(18812,'37480',32919,32920,4,0),(18813,'37481',32921,32922,4,0),(18814,'37488',33951,33952,4,0),(18815,'37488',33075,33076,4,0),(18816,'37488',33663,33664,4,0),(18817,'37488',33555,33556,4,0),(18818,'37488',32359,32360,4,0),(18819,'37488',33943,33944,4,0),(18820,'37490',32557,32558,4,0),(18821,'37490',33509,33510,4,0),(18822,'37491',32601,32602,4,0),(18823,'37491',33781,33782,4,0),(18824,'37492',33575,33576,4,0),(18825,'37493',33463,33464,4,0),(18826,'37493',33101,33102,4,0),(18827,'37493',32545,32546,4,0),(18828,'37494',33237,33238,4,0),(18829,'37494',32681,32682,4,0),(18830,'37495',33565,33566,4,0),(18831,'37496',33239,33240,4,0),(18832,'37497',33953,33954,4,0),(18833,'37497',33051,33052,4,0),(18834,'37497',32631,32632,4,0),(18835,'37497',33939,33940,4,0),(18836,'37497',32875,32876,4,0),(18837,'37497',32949,32950,4,0),(18838,'37500',32723,32724,4,0),(18839,'37510',33233,33234,4,0),(18840,'37510',33003,33004,4,0),(18841,'37510',33431,33432,4,0),(18842,'37510',32325,32326,4,0),(18843,'37510',32831,32832,4,0),(18844,'37515',33087,33088,4,0),(18845,'37516',33005,33006,4,0),(18846,'37520',32781,32782,4,0),(18847,'37521',33569,33570,4,0),(18848,'37522',34023,34024,4,0),(18849,'37523',33477,33478,4,0),(18850,'37524',32819,32820,4,0),(18851,'37530',33757,33758,4,0),(18852,'37531',33751,33752,4,0),(18853,'37532',33293,33294,4,0),(18854,'37540',32903,32904,4,0),(18855,'37541',32659,32660,4,0),(18856,'37542',33385,33386,4,0),(18857,'37550',32589,32590,4,0),(18858,'37551',33043,33044,4,0),(18859,'37552',33525,33526,4,0),(18860,'37553',33527,33528,4,0),(18861,'37554',33055,33056,4,0),(18862,'37555',33063,33064,4,0),(18863,'37590',32725,32726,4,0),(18864,'37590',33805,33806,4,0),(18865,'37590',33753,33754,4,0),(18866,'37590',33313,33314,4,0),(18867,'37591',34057,34058,4,0),(18868,'37591',32727,32728,4,0),(18869,'37591',33067,33068,4,0),(18870,'37591',32411,32412,4,0),(18871,'37592',33583,33584,4,0),(18872,'37592',32677,32678,4,0),(18873,'37593',32729,32730,4,0),(18874,'37594',32731,32732,4,0),(18875,'37595',32733,32734,4,0),(18876,'37600',33785,33786,4,0),(18877,'37606',33535,33536,4,0),(18878,'37607',32491,32492,4,0),(18879,'37607',33801,33802,4,0),(18880,'37607',33137,33138,4,0),(18881,'37607',33381,33382,4,0),(18882,'37608',33787,33788,4,0),(18883,'37609',33183,33184,4,0),(18884,'37609',32519,32520,4,0),(18885,'37609',33665,33666,4,0),(18886,'37609',33789,33790,4,0),(18887,'37609',32651,32652,4,0),(18888,'37609',33349,33350,4,0),(18889,'37610',33273,33274,4,0),(18890,'37617',33009,33010,4,0),(18891,'37618',33281,33282,4,0),(18892,'37619',33221,33222,4,0),(18893,'37619',33011,33012,4,0),(18894,'37621',32689,32690,4,0),(18895,'37621',32383,32384,4,0),(18896,'37621',32785,32786,4,0),(18897,'37621',32711,32712,4,0),(18898,'37621',33071,33072,4,0),(18899,'37621',32807,32808,4,0),(18900,'37624',33059,33060,4,0),(18901,'37630',32567,32568,4,0),(18902,'37638',33743,33744,4,0),(18903,'37638',33027,33028,4,0),(18904,'37639',32427,32428,4,0),(18905,'37640',33651,33652,4,0),(18906,'37640',32321,32322,4,0),(18907,'37650',33747,33748,4,0),(18908,'37656',32685,32686,4,0),(18909,'37657',33773,33774,4,0),(18910,'37658',32957,32958,4,0),(18911,'37658',33935,33936,4,0),(18912,'37659',33357,33358,4,0),(18913,'37659',33631,33632,4,0),(18914,'37659',33639,33640,4,0),(18915,'37659',33173,33174,4,0),(18916,'37660',33269,33270,4,0),(18917,'37670',33725,33726,4,0),(18918,'37671',33623,33624,4,0),(18919,'37680',33843,33844,4,0),(18920,'37682',33727,33728,4,0),(18921,'37683',33277,33278,4,0),(18922,'37684',32749,32750,4,0),(18923,'37690',33103,33104,4,0),(18924,'37694',33641,33642,4,0),(18925,'37700',32503,32504,4,0),(18926,'37700',32993,32994,4,0),(18927,'37710',32593,32594,4,0),(18928,'37711',32741,32742,4,0),(18929,'37712',33505,33506,4,0),(18930,'37712',33023,33024,4,0),(18931,'37713',33847,33848,4,0),(18932,'37714',33083,33084,4,0),(18933,'37716',33107,33108,4,0),(18934,'37716',32605,32606,4,0),(18935,'37716',33365,33366,4,0),(18936,'37717',33881,33882,4,0),(18937,'37717',32505,32506,4,0),(18938,'37718',32363,32364,4,0),(18939,'37720',33549,33550,4,0),(18940,'37720',32793,32794,4,0),(18941,'37724',33855,33856,4,0),(18942,'37724',32795,32796,4,0),(18943,'37724',33165,33166,4,0),(18944,'37726',32797,32798,4,0),(18945,'37727',33301,33302,4,0),(18946,'37727',33473,33474,4,0),(18947,'37729',33551,33552,4,0),(18948,'37730',33197,33198,4,0),(18949,'37740',33721,33722,4,0),(18950,'37748',33539,33540,4,0),(18951,'37749',32835,32836,4,0),(18952,'37749',33377,33378,4,0),(18953,'37750',32703,32704,4,0),(18954,'37750',33541,33542,4,0),(18955,'37751',32953,32954,4,0),(18956,'37752',33149,33150,4,0),(18957,'37753',32467,32468,4,0),(18958,'37754',32469,32470,4,0),(18959,'37755',32471,32472,4,0),(18960,'37756',32473,32474,4,0),(18961,'37760',33201,33202,4,0),(18962,'37762',33015,33016,4,0),(18963,'37762',32867,32868,4,0),(18964,'37762',33145,33146,4,0),(18965,'37763',33635,33636,4,0),(18966,'37764',33877,33878,4,0),(18967,'37765',32861,32862,4,0),(18968,'37765',32839,32840,4,0),(18969,'37765',33285,33286,4,0),(18970,'37766',33445,33446,4,0),(18971,'37766',32863,32864,4,0),(18972,'37766',32891,32892,4,0),(18973,'37766',33257,33258,4,0),(18974,'37767',32655,32656,4,0),(18975,'37768',32911,32912,4,0),(18976,'37768',33205,33206,4,0),(18977,'37770',32995,32996,4,0),(18978,'37774',32989,32990,4,0),(18979,'37775',32895,32896,4,0),(18980,'37776',33353,33354,4,0),(18981,'37777',33769,33770,4,0),(18982,'37777',33079,33080,4,0),(18983,'37778',32997,32998,4,0),(18984,'37779',33615,33616,4,0),(18985,'37779',32415,32416,4,0),(18986,'37780',33119,33120,4,0),(18987,'37785',32939,32940,4,0),(18988,'37786',32941,32942,4,0),(18989,'37787',33467,33468,4,0),(18990,'37788',33447,33448,4,0),(18991,'37788',33309,33310,4,0),(18992,'37789',32549,32550,4,0),(18993,'37789',32511,32512,4,0),(18994,'37789',32899,32900,4,0),(18995,'37790',32915,32916,4,0),(18996,'37791',33501,33502,4,0),(18997,'37791',33891,33892,4,0),(18998,'37791',33531,33532,4,0),(18999,'37791',33851,33852,4,0),(19000,'37792',33449,33450,4,0),(19001,'37793',32457,32458,4,0),(19002,'37793',32507,32508,4,0),(19003,'37794',33373,33374,4,0),(19004,'37794',33689,33690,4,0),(19005,'37795',33297,33298,4,0),(19006,'37795',32999,33000,4,0),(19007,'37795',32523,32524,4,0),(19008,'37795',33513,33514,4,0),(19009,'37796',33343,33344,4,0),(19010,'37796',32459,32460,4,0),(19011,'37797',32585,32586,4,0),(19012,'37797',32669,32670,4,0),(19013,'37798',33971,33972,4,0),(19014,'37798',33871,33872,4,0),(19015,'37798',32671,32672,4,0),(19016,'37798',33305,33306,4,0),(19017,'37799',33817,33818,4,0),(19018,'37799',33677,33678,4,0),(19019,'37799',32887,32888,4,0),(19020,'37799',33389,33390,4,0),(19021,'37799',33873,33874,4,0),(19022,'37799',33413,33414,4,0),(19023,'37799',33859,33860,4,0),(19024,'37800',32341,32342,4,0),(19025,'37810',32961,32962,4,0),(19026,'37820',33485,33486,4,0),(19027,'37830',32737,32738,4,0),(19028,'37840',33821,33822,4,0),(19029,'37850',33361,33362,4,0),(19030,'37860',33029,33030,4,0),(19031,'37861',32707,32708,4,0),(19032,'37862',33031,33032,4,0),(19033,'37863',32439,32440,4,0),(19034,'37864',32441,32442,4,0),(19035,'37865',33169,33170,4,0),(19036,'37870',32395,32396,4,0),(19037,'37871',33439,33440,4,0),(19038,'37872',32925,32926,4,0),(19039,'37873',32927,32928,4,0),(19040,'37874',32929,32930,4,0),(19041,'37874',32847,32848,4,0),(19042,'37874',32963,32964,4,0),(19043,'37881',33839,33840,4,0),(19044,'37882',33369,33370,4,0),(19045,'37882',33811,33812,4,0),(19046,'37882',33435,33436,4,0),(19047,'37890',32343,32344,4,0),(19048,'37891',32773,32774,4,0),(19049,'37891',33863,33864,4,0),(19050,'37891',33243,33244,4,0),(19051,'37891',33469,33470,4,0),(19052,'37891',32945,32946,4,0),(19053,'37892',33761,33762,4,0),(19054,'37892',32345,32346,4,0),(19055,'37892',32853,32854,4,0),(19056,'37893',32347,32348,4,0),(19057,'37893',33213,33214,4,0),(19058,'37893',32849,32850,4,0),(19059,'37893',33813,33814,4,0),(19060,'37893',33923,33924,4,0),(19061,'37900',33713,33714,4,0),(19062,'39001',11085,11086,4,0),(19063,'39002',11087,11088,4,0),(19064,'39003',11089,11090,4,0),(19065,'39004',11091,11092,4,0),(19066,'39005',11093,11094,4,0),(19067,'39006',11095,11096,4,0),(19068,'39007',11097,11098,4,0),(19069,'39008',11099,11100,4,0),(19070,'39009',11101,11102,4,0),(19071,'39010',11103,11104,4,0),(19072,'39011',11105,11106,4,0),(19073,'39012',11107,11108,4,0),(19074,'39100',11065,11066,4,0),(19075,'39108',11067,11068,4,0),(19076,'39110',11069,11070,4,0),(19077,'39120',10919,10920,4,0),(19078,'39130',10839,10840,4,0),(19079,'39140',10987,10988,4,0),(19080,'39146',10989,10990,4,0),(19081,'39150',10991,10992,4,0),(19082,'39160',10993,10994,4,0),(19083,'39170',10575,10576,4,0),(19084,'39180',10897,10898,4,0),(19085,'39190',10577,10578,4,0),(19086,'39191',10579,10580,4,0),(19087,'39192',10867,10868,4,0),(19088,'39193',10549,10550,4,0),(19089,'39193',10735,10736,4,0),(19090,'39195',10551,10552,4,0),(19091,'39197',10545,10546,4,0),(19092,'39197',11137,11138,4,0),(19093,'39200',10971,10972,4,0),(19094,'39200',10635,10636,4,0),(19095,'39210',10763,10764,4,0),(19096,'39211',10765,10766,4,0),(19097,'39212',10637,10638,4,0),(19098,'39212',10767,10768,4,0),(19099,'39213',10639,10640,4,0),(19100,'39213',10769,10770,4,0),(19101,'39220',11239,11240,4,0),(19102,'39229',11241,11242,4,0),(19103,'39230',11243,11244,4,0),(19104,'39232',11245,11246,4,0),(19105,'39232',7341,7342,4,0),(19106,'39248',11231,11232,4,0),(19107,'39250',11247,11248,4,0),(19108,'39250',30545,30546,4,0),(19109,'39290',10647,10648,4,0),(19110,'39291',10649,10650,4,0),(19111,'39291',10641,10642,4,0),(19112,'39292',10651,10652,4,0),(19113,'39293',10653,10654,4,0),(19114,'39294',10655,10656,4,0),(19115,'39300',11183,11184,4,0),(19116,'39310',10871,10872,4,0),(19117,'39311',10659,10660,4,0),(19118,'39312',10939,10940,4,0),(19119,'39312',10873,10874,4,0),(19120,'39313',10941,10942,4,0),(19121,'39314',11111,11112,4,0),(19122,'39315',11185,11186,4,0),(19123,'39316',11187,11188,4,0),(19124,'39317',11189,11190,4,0),(19125,'39318',10875,10876,4,0),(19126,'39320',10513,10514,4,0),(19127,'39329',10515,10516,4,0),(19128,'39330',11113,11114,4,0),(19129,'39340',11175,11176,4,0),(19130,'39350',11177,11178,4,0),(19131,'39360',11115,11116,4,0),(19132,'39360',11179,11180,4,0),(19133,'39390',11117,11118,4,0),(19134,'39400',10817,10818,4,0),(19135,'39407',27715,27716,4,0),(19136,'39408',10819,10820,4,0),(19137,'39409',11035,11036,4,0),(19138,'39410',11225,11226,4,0),(19139,'39416',10793,10794,4,0),(19140,'39417',11233,11234,4,0),(19141,'39417',10795,10796,4,0),(19142,'39418',11227,11228,4,0),(19143,'39419',11249,11250,4,0),(19144,'39419',11235,11236,4,0),(19145,'39420',10887,10888,4,0),(19146,'39420',10571,10572,4,0),(19147,'39430',10889,10890,4,0),(19148,'39438',10891,10892,4,0),(19149,'39439',10893,10894,4,0),(19150,'39450',10539,10540,4,0),(19151,'39451',10535,10536,4,0),(19152,'39451',10541,10542,4,0),(19153,'39460',10661,10662,4,0),(19154,'39460',10821,10822,4,0),(19155,'39470',10921,10922,4,0),(19156,'39477',10923,10924,4,0),(19157,'39478',10925,10926,4,0),(19158,'39479',10927,10928,4,0),(19159,'39490',11123,11124,4,0),(19160,'39491',10915,10916,4,0),(19161,'39491',11125,11126,4,0),(19162,'39491',11039,11040,4,0),(19163,'39491',10643,10644,4,0),(19164,'39500',10583,10584,4,0),(19165,'39506',10585,10586,4,0),(19166,'39507',11201,11202,4,0),(19167,'39507',10587,10588,4,0),(19168,'39509',10589,10590,4,0),(19169,'39509',10849,10850,4,0),(19170,'39510',11017,11018,4,0),(19171,'39510',10605,10606,4,0),(19172,'39511',10607,10608,4,0),(19173,'39513',11019,11020,4,0),(19174,'39517',10825,10826,4,0),(19175,'39518',10827,10828,4,0),(19176,'39518',10609,10610,4,0),(19177,'39520',10703,10704,4,0),(19178,'39525',10517,10518,4,0),(19179,'39526',10519,10520,4,0),(19180,'39527',11031,11032,4,0),(19181,'39528',11217,11218,4,0),(19182,'39528',10705,10706,4,0),(19183,'39530',10975,10976,4,0),(19184,'39530',11119,11120,4,0),(19185,'39538',10977,10978,4,0),(19186,'39539',10979,10980,4,0),(19187,'39539',10521,10522,4,0),(19188,'39540',11055,11056,4,0),(19189,'39547',11057,11058,4,0),(19190,'39548',11059,11060,4,0),(19191,'39548',11205,11206,4,0),(19192,'39549',10773,10774,4,0),(19193,'39549',11061,11062,4,0),(19194,'39549',11207,11208,4,0),(19195,'39550',10775,10776,4,0),(19196,'39550',10783,10784,4,0),(19197,'39551',10777,10778,4,0),(19198,'39553',11003,11004,4,0),(19199,'39554',11005,11006,4,0),(19200,'39555',11197,11198,4,0),(19201,'39556',10933,10934,4,0),(19202,'39557',10935,10936,4,0),(19203,'39558',10611,10612,4,0),(19204,'39559',11007,11008,4,0),(19205,'39560',11209,11210,4,0),(19206,'39569',11211,11212,4,0),(19207,'39570',10945,10946,4,0),(19208,'39571',10597,10598,4,0),(19209,'39572',10909,10910,4,0),(19210,'39573',10599,10600,4,0),(19211,'39574',10601,10602,4,0),(19212,'39574',10911,10912,4,0),(19213,'39575',11257,11258,4,0),(19214,'39577',11259,11260,4,0),(19215,'39580',10689,10690,4,0),(19216,'39580',10905,10906,4,0),(19217,'39580',11193,11194,4,0),(19218,'39582',10615,10616,4,0),(19219,'39583',10691,10692,4,0),(19220,'39584',10693,10694,4,0),(19221,'39585',10695,10696,4,0),(19222,'39586',10617,10618,4,0),(19223,'39587',10619,10620,4,0),(19224,'39588',10621,10622,4,0),(19225,'39589',10623,10624,4,0),(19226,'39590',10981,10982,4,0),(19227,'39590',10523,10524,4,0),(19228,'39591',10591,10592,4,0),(19229,'39591',10983,10984,4,0),(19230,'39592',10593,10594,4,0),(19231,'39592',11219,11220,4,0),(19232,'39592',10851,10852,4,0),(19233,'39593',11221,11222,4,0),(19234,'39594',11213,11214,4,0),(19235,'39594',10779,10780,4,0),(19236,'39600',10627,10628,4,0),(19237,'39608',10629,10630,4,0),(19238,'39609',10631,10632,4,0),(19239,'39610',10719,10720,4,0),(19240,'39611',10721,10722,4,0),(19241,'39612',10929,10930,4,0),(19242,'39613',10723,10724,4,0),(19243,'39618',10841,10842,4,0),(19244,'39619',10855,10856,4,0),(19245,'39620',11073,11074,4,0),(19246,'39626',11075,11076,4,0),(19247,'39627',10901,10902,4,0),(19248,'39627',11077,11078,4,0),(19249,'39630',11281,11282,4,0),(19250,'39638',11283,11284,4,0),(19251,'39639',11271,11272,4,0),(19252,'39639',11145,11146,4,0),(19253,'39640',11273,11274,4,0),(19254,'39649',11275,11276,4,0),(19255,'39650',11079,11080,4,0),(19256,'39650',10665,10666,4,0),(19257,'39660',10667,10668,4,0),(19258,'39670',10949,10950,4,0),(19259,'39679',10951,10952,4,0),(19260,'39680',10709,10710,4,0),(19261,'39682',10711,10712,4,0),(19262,'39682',10831,10832,4,0),(19263,'39682',11263,11264,4,0),(19264,'39683',11043,11044,4,0),(19265,'39683',11265,11266,4,0),(19266,'39685',11267,11268,4,0),(19267,'39686',11045,11046,4,0),(19268,'39687',10833,10834,4,0),(19269,'39688',10835,10836,4,0),(19270,'39689',11129,11130,4,0),(19271,'39691',11131,11132,4,0),(19272,'39694',11081,11082,4,0),(19273,'39696',11149,11150,4,0),(19274,'39697',10713,10714,4,0),(19275,'39698',11133,11134,4,0),(19276,'39699',10715,10716,4,0),(19277,'39700',10671,10672,4,0),(19278,'39706',10673,10674,4,0),(19279,'39707',10675,10676,4,0),(19280,'39708',10677,10678,4,0),(19281,'39709',10679,10680,4,0),(19282,'39710',10857,10858,4,0),(19283,'39715',10727,10728,4,0),(19284,'39716',10729,10730,4,0),(19285,'39717',11167,11168,4,0),(19286,'39718',10859,10860,4,0),(19287,'39718',10803,10804,4,0),(19288,'39719',10843,10844,4,0),(19289,'39719',10731,10732,4,0),(19290,'39720',11011,11012,4,0),(19291,'39722',10805,10806,4,0),(19292,'39723',10879,10880,4,0),(19293,'39723',11013,11014,4,0),(19294,'39724',10861,10862,4,0),(19295,'39725',10881,10882,4,0),(19296,'39726',11049,11050,4,0),(19297,'39727',10807,10808,4,0),(19298,'39728',11153,11154,4,0),(19299,'39728',11023,11024,4,0),(19300,'39728',10883,10884,4,0),(19301,'39728',11051,11052,4,0),(19302,'39730',10755,10756,4,0),(19303,'39738',11169,11170,4,0),(19304,'39738',10757,10758,4,0),(19305,'39739',10759,10760,4,0),(19306,'39740',11139,11140,4,0),(19307,'39749',11141,11142,4,0),(19308,'39750',10699,10700,4,0),(19309,'39760',10559,10560,4,0),(19310,'39761',11287,11288,4,0),(19311,'39761',10561,10562,4,0),(19312,'39762',11289,11290,4,0),(19313,'39764',11291,11292,4,0),(19314,'39766',11293,11294,4,0),(19315,'39770',10787,10788,4,0),(19316,'39776',10799,10800,4,0),(19317,'39777',10789,10790,4,0),(19318,'39778',10811,10812,4,0),(19319,'39778',10741,10742,4,0),(19320,'39780',10681,10682,4,0),(19321,'39780',10743,10744,4,0),(19322,'39786',10745,10746,4,0),(19323,'39787',10747,10748,4,0),(19324,'39788',10749,10750,4,0),(19325,'39790',10563,10564,4,0),(19326,'39791',11171,11172,4,0),(19327,'39791',10565,10566,4,0),(19328,'39792',10845,10846,4,0),(19329,'39792',10863,10864,4,0),(19330,'39793',10997,10998,4,0),(19331,'39794',10999,11000,4,0),(19332,'39795',10737,10738,4,0),(19333,'39796',10567,10568,4,0),(19334,'39798',10683,10684,4,0),(19335,'39800',10955,10956,4,0),(19336,'39805',11155,11156,4,0),(19337,'39805',10957,10958,4,0),(19338,'39806',11157,11158,4,0),(19339,'39807',11159,11160,4,0),(19340,'39808',11161,11162,4,0),(19341,'39809',10959,10960,4,0),(19342,'39811',10961,10962,4,0),(19343,'39812',11025,11026,4,0),(19344,'39813',10555,10556,4,0),(19345,'39813',11163,11164,4,0),(19346,'39815',11027,11028,4,0),(19347,'39815',10963,10964,4,0),(19348,'39820',10813,10814,4,0),(19349,'39840',10527,10528,4,0),(19350,'39849',10529,10530,4,0),(19351,'39850',10531,10532,4,0),(19352,'39860',10967,10968,4,0),(19353,'39880',10751,10752,4,0),(19354,'39880',11253,11254,4,0),(19355,'40001',34879,34880,4,0),(19356,'40002',34881,34882,4,0),(19357,'40003',34883,34884,4,0),(19358,'40004',34885,34886,4,0),(19359,'40005',34887,34888,4,0),(19360,'40006',34889,34890,4,0),(19361,'40100',34739,34740,4,0),(19362,'40109',34741,34742,4,0),(19363,'40120',34475,34476,4,0),(19364,'40121',34137,34138,4,0),(19365,'40122',34827,34828,4,0),(19366,'40123',34829,34830,4,0),(19367,'40130',34559,34560,4,0),(19368,'40131',34503,34504,4,0),(19369,'40132',34551,34552,4,0),(19370,'40133',34555,34556,4,0),(19371,'40134',34821,34822,4,0),(19372,'40135',34831,34832,4,0),(19373,'40136',34833,34834,4,0),(19374,'40140',35009,35010,4,0),(19375,'40141',34849,34850,4,0),(19376,'40141',34075,34076,4,0),(19377,'40142',34603,34604,4,0),(19378,'40142',34539,34540,4,0),(19379,'40142',34571,34572,4,0),(19380,'40144',34823,34824,4,0),(19381,'40144',34187,34188,4,0),(19382,'40145',34615,34616,4,0),(19383,'40146',34523,34524,4,0),(19384,'40150',35025,35026,4,0),(19385,'40151',34499,34500,4,0),(19386,'40152',35047,35048,4,0),(19387,'40153',34891,34892,4,0),(19388,'40154',34893,34894,4,0),(19389,'40156',34417,34418,4,0),(19390,'40160',34943,34944,4,0),(19391,'40161',34629,34630,4,0),(19392,'40162',34471,34472,4,0),(19393,'40162',34103,34104,4,0),(19394,'40163',34579,34580,4,0),(19395,'40164',34151,34152,4,0),(19396,'40165',34725,34726,4,0),(19397,'40165',35021,35022,4,0),(19398,'40170',34707,34708,4,0),(19399,'40170',34321,34322,4,0),(19400,'40170',34923,34924,4,0),(19401,'40171',34851,34852,4,0),(19402,'40171',34935,34936,4,0),(19403,'40172',34701,34702,4,0),(19404,'40173',34703,34704,4,0),(19405,'40173',34853,34854,4,0),(19406,'40173',34145,34146,4,0),(19407,'40174',34991,34992,4,0),(19408,'40175',34519,34520,4,0),(19409,'40176',34677,34678,4,0),(19410,'40176',34995,34996,4,0),(19411,'40180',34709,34710,4,0),(19412,'40180',34183,34184,4,0),(19413,'40180',34861,34862,4,0),(19414,'40180',34209,34210,4,0),(19415,'40181',34961,34962,4,0),(19416,'40182',34213,34214,4,0),(19417,'40183',34619,34620,4,0),(19418,'40184',34731,34732,4,0),(19419,'40184',34147,34148,4,0),(19420,'40184',34747,34748,4,0),(19421,'40185',34155,34156,4,0),(19422,'40185',34975,34976,4,0),(19423,'40185',34979,34980,4,0),(19424,'40185',34337,34338,4,0),(19425,'40190',34199,34200,4,0),(19426,'40191',34159,34160,4,0),(19427,'40191',34409,34410,4,0),(19428,'40192',34951,34952,4,0),(19429,'40192',34079,34080,4,0),(19430,'40194',34957,34958,4,0),(19431,'40194',34697,34698,4,0),(19432,'40195',34895,34896,4,0),(19433,'40196',34511,34512,4,0),(19434,'40196',34897,34898,4,0),(19435,'40197',34801,34802,4,0),(19436,'40200',34341,34342,4,0),(19437,'40210',34343,34344,4,0),(19438,'40211',34345,34346,4,0),(19439,'40212',34793,34794,4,0),(19440,'40213',34987,34988,4,0),(19441,'40214',34575,34576,4,0),(19442,'40214',34167,34168,4,0),(19443,'40215',34347,34348,4,0),(19444,'40216',34297,34298,4,0),(19445,'40216',34751,34752,4,0),(19446,'40217',34413,34414,4,0),(19447,'40218',34443,34444,4,0),(19448,'40219',35029,35030,4,0),(19449,'40220',34671,34672,4,0),(19450,'40230',34349,34350,4,0),(19451,'40231',34351,34352,4,0),(19452,'40232',34353,34354,4,0),(19453,'40233',34673,34674,4,0),(19454,'40234',34587,34588,4,0),(19455,'40235',34119,34120,4,0),(19456,'40236',34527,34528,4,0),(19457,'40237',34783,34784,4,0),(19458,'40238',35003,35004,4,0),(19459,'40239',34361,34362,4,0),(19460,'40240',34479,34480,4,0),(19461,'40241',34355,34356,4,0),(19462,'40242',34357,34358,4,0),(19463,'40250',34611,34612,4,0),(19464,'40260',34447,34448,4,0),(19465,'40270',34253,34254,4,0),(19466,'40280',34637,34638,4,0),(19467,'40290',34779,34780,4,0),(19468,'40291',34399,34400,4,0),(19469,'40291',34927,34928,4,0),(19470,'40292',34095,34096,4,0),(19471,'40293',35051,35052,4,0),(19472,'40294',34721,34722,4,0),(19473,'40295',34805,34806,4,0),(19474,'40296',34717,34718,4,0),(19475,'40297',34817,34818,4,0),(19476,'40298',34431,34432,4,0),(19477,'40300',34901,34902,4,0),(19478,'40310',34903,34904,4,0),(19479,'40310',34845,34846,4,0),(19480,'40311',34919,34920,4,0),(19481,'40311',34905,34906,4,0),(19482,'40312',34907,34908,4,0),(19483,'40312',34373,34374,4,0),(19484,'40313',34939,34940,4,0),(19485,'40314',35005,35006,4,0),(19486,'40314',34463,34464,4,0),(19487,'40315',34269,34270,4,0),(19488,'40315',34273,34274,4,0),(19489,'40316',34281,34282,4,0),(19490,'40317',34967,34968,4,0),(19491,'40317',34909,34910,4,0),(19492,'40318',34727,34728,4,0),(19493,'40318',34325,34326,4,0),(19494,'40318',34277,34278,4,0),(19495,'40320',34237,34238,4,0),(19496,'40330',34455,34456,4,0),(19497,'40331',34633,34634,4,0),(19498,'40331',34983,34984,4,0),(19499,'40331',34257,34258,4,0),(19500,'40332',34809,34810,4,0),(19501,'40332',34305,34306,4,0),(19502,'40340',34873,34874,4,0),(19503,'40340',34087,34088,4,0),(19504,'40350',34395,34396,4,0),(19505,'40351',34869,34870,4,0),(19506,'40352',34535,34536,4,0),(19507,'40353',34491,34492,4,0),(19508,'40354',34083,34084,4,0),(19509,'40354',34713,34714,4,0),(19510,'40354',34333,34334,4,0),(19511,'40355',34459,34460,4,0),(19512,'40356',34225,34226,4,0),(19513,'40357',34467,34468,4,0),(19514,'40358',34451,34452,4,0),(19515,'40359',34947,34948,4,0),(19516,'40359',34439,34440,4,0),(19517,'40360',34245,34246,4,0),(19518,'40370',34963,34964,4,0),(19519,'40380',34239,34240,4,0),(19520,'40380',34875,34876,4,0),(19521,'40389',34241,34242,4,0),(19522,'40389',34813,34814,4,0),(19523,'40389',34099,34100,4,0),(19524,'40389',34911,34912,4,0),(19525,'40390',34999,35000,4,0),(19526,'40391',34391,34392,4,0),(19527,'40392',34217,34218,4,0),(19528,'40392',34403,34404,4,0),(19529,'40393',34405,34406,4,0),(19530,'40394',34953,34954,4,0),(19531,'40395',35013,35014,4,0),(19532,'40396',34221,34222,4,0),(19533,'40400',34377,34378,4,0),(19534,'40408',34663,34664,4,0),(19535,'40410',34379,34380,4,0),(19536,'40418',34419,34420,4,0),(19537,'40419',34381,34382,4,0),(19538,'40420',34743,34744,4,0),(19539,'40420',34659,34660,4,0),(19540,'40420',34515,34516,4,0),(19541,'40421',34685,34686,4,0),(19542,'40422',34689,34690,4,0),(19543,'40423',35017,35018,4,0),(19544,'40423',34971,34972,4,0),(19545,'40424',34383,34384,4,0),(19546,'40430',34195,34196,4,0),(19547,'40440',34835,34836,4,0),(19548,'40441',34591,34592,4,0),(19549,'40442',34787,34788,4,0),(19550,'40443',34789,34790,4,0),(19551,'40444',34583,34584,4,0),(19552,'40445',34507,34508,4,0),(19553,'40446',34567,34568,4,0),(19554,'40447',34667,34668,4,0),(19555,'40448',34837,34838,4,0),(19556,'40449',34839,34840,4,0),(19557,'40450',34623,34624,4,0),(19558,'40460',34857,34858,4,0),(19559,'40461',34625,34626,4,0),(19560,'40462',34115,34116,4,0),(19561,'40462',34127,34128,4,0),(19562,'40463',34315,34316,4,0),(19563,'40464',34317,34318,4,0),(19564,'40465',34797,34798,4,0),(19565,'40466',34563,34564,4,0),(19566,'40466',34735,34736,4,0),(19567,'40467',34931,34932,4,0),(19568,'40468',34595,34596,4,0),(19569,'40469',34369,34370,4,0),(19570,'40470',34655,34656,4,0),(19571,'40480',34309,34310,4,0),(19572,'40490',34495,34496,4,0),(19573,'40490',34543,34544,4,0),(19574,'40491',34161,34162,4,0),(19575,'40492',34141,34142,4,0),(19576,'40493',35043,35044,4,0),(19577,'40494',34163,34164,4,0),(19578,'40494',34841,34842,4,0),(19579,'40495',34681,34682,4,0),(19580,'40495',34365,34366,4,0),(19581,'40496',35039,35040,4,0),(19582,'40496',34435,34436,4,0),(19583,'40496',34311,34312,4,0),(19584,'40500',34759,34760,4,0),(19585,'40510',34761,34762,4,0),(19586,'40511',34763,34764,4,0),(19587,'40512',34765,34766,4,0),(19588,'40512',34169,34170,4,0),(19589,'40513',34771,34772,4,0),(19590,'40514',34171,34172,4,0),(19591,'40515',34775,34776,4,0),(19592,'40516',34421,34422,4,0),(19593,'40517',34915,34916,4,0),(19594,'40517',34767,34768,4,0),(19595,'40518',34423,34424,4,0),(19596,'40520',34173,34174,4,0),(19597,'40529',34755,34756,4,0),(19598,'40529',34091,34092,4,0),(19599,'40529',34329,34330,4,0),(19600,'40530',34131,34132,4,0),(19601,'40530',34179,34180,4,0),(19602,'40531',34133,34134,4,0),(19603,'40531',34641,34642,4,0),(19604,'40531',34387,34388,4,0),(19605,'40532',34647,34648,4,0),(19606,'40532',34111,34112,4,0),(19607,'40532',34651,34652,4,0),(19608,'40533',34123,34124,4,0),(19609,'40540',34249,34250,4,0),(19610,'40540',34427,34428,4,0),(19611,'40541',34487,34488,4,0),(19612,'40541',35033,35034,4,0),(19613,'40542',34599,34600,4,0),(19614,'40542',35035,35036,4,0),(19615,'40542',34607,34608,4,0),(19616,'40550',34285,34286,4,0),(19617,'40550',34191,34192,4,0),(19618,'40551',34301,34302,4,0),(19619,'40551',34229,34230,4,0),(19620,'40552',34231,34232,4,0),(19621,'40553',34233,34234,4,0),(19622,'40554',34547,34548,4,0),(19623,'40555',34107,34108,4,0),(19624,'40556',34531,34532,4,0),(19625,'40560',34203,34204,4,0),(19626,'40561',34643,34644,4,0),(19627,'40567',34693,34694,4,0),(19628,'40568',34205,34206,4,0),(19629,'40569',34483,34484,4,0),(19630,'40590',34865,34866,4,0),(19631,'40590',34261,34262,4,0),(19632,'40591',34289,34290,4,0),(19633,'40592',34293,34294,4,0),(19634,'40593',34265,34266,4,0),(19635,'40594',34175,34176,4,0),(19636,'41001',35519,35520,4,0),(19637,'41002',35521,35522,4,0),(19638,'41003',35523,35524,4,0),(19639,'41004',35525,35526,4,0),(19640,'41005',35527,35528,4,0),(19641,'41006',35529,35530,4,0),(19642,'41007',35531,35532,4,0),(19643,'41008',35533,35534,4,0),(19644,'41009',35535,35536,4,0),(19645,'41010',35537,35538,4,0),(19646,'41011',35539,35540,4,0),(19647,'41012',35541,35542,4,0),(19648,'41013',35543,35544,4,0),(19649,'41014',35545,35546,4,0),(19650,'41015',35547,35548,4,0),(19651,'41016',35549,35550,4,0),(19652,'41017',35551,35552,4,0),(19653,'41018',35553,35554,4,0),(19654,'41019',35555,35556,4,0),(19655,'41020',35557,35558,4,0),(19656,'41073',35207,35208,4,0),(19657,'41089',35209,35210,4,0),(19658,'41092',35559,35560,4,0),(19659,'41100',35197,35198,4,0),(19660,'41110',35125,35126,4,0),(19661,'41111',35097,35098,4,0),(19662,'41120',35303,35304,4,0),(19663,'41130',35373,35374,4,0),(19664,'41140',35341,35342,4,0),(19665,'41150',35343,35344,4,0),(19666,'41200',35075,35076,4,0),(19667,'41200',35137,35138,4,0),(19668,'41209',35077,35078,4,0),(19669,'41210',35325,35326,4,0),(19670,'41218',35327,35328,4,0),(19671,'41219',35329,35330,4,0),(19672,'41220',35139,35140,4,0),(19673,'41220',35305,35306,4,0),(19674,'41230',35171,35172,4,0),(19675,'41240',35093,35094,4,0),(19676,'41250',35267,35268,4,0),(19677,'41300',35377,35378,4,0),(19678,'41309',35379,35380,4,0),(19679,'41310',35133,35134,4,0),(19680,'41318',35615,35616,4,0),(19681,'41319',35079,35080,4,0),(19682,'41320',35153,35154,4,0),(19683,'41330',35563,35564,4,0),(19684,'41330',35607,35608,4,0),(19685,'41339',35157,35158,4,0),(19686,'41340',35565,35566,4,0),(19687,'41350',35609,35610,4,0),(19688,'41359',35611,35612,4,0),(19689,'41360',35263,35264,4,0),(19690,'41370',35187,35188,4,0),(19691,'41380',35061,35062,4,0),(19692,'41388',35503,35504,4,0),(19693,'41389',35505,35506,4,0),(19694,'41390',35321,35322,4,0),(19695,'41400',35225,35226,4,0),(19696,'41409',35227,35228,4,0),(19697,'41410',35159,35160,4,0),(19698,'41420',35297,35298,4,0),(19699,'41429',35353,35354,4,0),(19700,'41430',35357,35358,4,0),(19701,'41439',35359,35360,4,0),(19702,'41439',35299,35300,4,0),(19703,'41439',35149,35150,4,0),(19704,'41440',35411,35412,4,0),(19705,'41440',35083,35084,4,0),(19706,'41449',35085,35086,4,0),(19707,'41450',35193,35194,4,0),(19708,'41460',35399,35400,4,0),(19709,'41470',35367,35368,4,0),(19710,'41470',35483,35484,4,0),(19711,'41471',35577,35578,4,0),(19712,'41479',35369,35370,4,0),(19713,'41489',35105,35106,4,0),(19714,'41500',35069,35070,4,0),(19715,'41510',35431,35432,4,0),(19716,'41520',35071,35072,4,0),(19717,'41520',35285,35286,4,0),(19718,'41530',35459,35460,4,0),(19719,'41540',35363,35364,4,0),(19720,'41550',35057,35058,4,0),(19721,'41560',35293,35294,4,0),(19722,'41563',35229,35230,4,0),(19723,'41564',35407,35408,4,0),(19724,'41565',35313,35314,4,0),(19725,'41566',35479,35480,4,0),(19726,'41567',35333,35334,4,0),(19727,'41567',35231,35232,4,0),(19728,'41568',35275,35276,4,0),(19729,'41569',35447,35448,4,0),(19730,'41570',35115,35116,4,0),(19731,'41580',35167,35168,4,0),(19732,'41590',35383,35384,4,0),(19733,'41599',35385,35386,4,0),(19734,'41599',35117,35118,4,0),(19735,'41600',35101,35102,4,0),(19736,'41610',35475,35476,4,0),(19737,'41620',35443,35444,4,0),(19738,'41630',35389,35390,4,0),(19739,'41640',35467,35468,4,0),(19740,'41650',35279,35280,4,0),(19741,'41657',35415,35416,4,0),(19742,'41658',35451,35452,4,0),(19743,'41659',35281,35282,4,0),(19744,'41660',35599,35600,4,0),(19745,'41661',35089,35090,4,0),(19746,'41670',35491,35492,4,0),(19747,'41700',35211,35212,4,0),(19748,'41701',35213,35214,4,0),(19749,'41702',35215,35216,4,0),(19750,'41703',35217,35218,4,0),(19751,'41704',35219,35220,4,0),(19752,'41710',35579,35580,4,0),(19753,'41719',35581,35582,4,0),(19754,'41720',35423,35424,4,0),(19755,'41720',35583,35584,4,0),(19756,'41727',35425,35426,4,0),(19757,'41727',35585,35586,4,0),(19758,'41728',35587,35588,4,0),(19759,'41728',35221,35222,4,0),(19760,'41728',35427,35428,4,0),(19761,'41729',35393,35394,4,0),(19762,'41730',35395,35396,4,0),(19763,'41730',35189,35190,4,0),(19764,'41740',35403,35404,4,0),(19765,'41749',35249,35250,4,0),(19766,'41750',35419,35420,4,0),(19767,'41760',35245,35246,4,0),(19768,'41770',35455,35456,4,0),(19769,'41780',35201,35202,4,0),(19770,'41800',35511,35512,4,0),(19771,'41804',35463,35464,4,0),(19772,'41805',35121,35122,4,0),(19773,'41806',35573,35574,4,0),(19774,'41807',35289,35290,4,0),(19775,'41808',35603,35604,4,0),(19776,'41809',35065,35066,4,0),(19777,'41810',35183,35184,4,0),(19778,'41820',35163,35164,4,0),(19779,'41830',35337,35338,4,0),(19780,'41840',35487,35488,4,0),(19781,'41849',35107,35108,4,0),(19782,'41850',35595,35596,4,0),(19783,'41860',35309,35310,4,0),(19784,'41870',35111,35112,4,0),(19785,'41880',35271,35272,4,0),(19786,'41888',35253,35254,4,0),(19787,'41888',35507,35508,4,0),(19788,'41889',35235,35236,4,0),(19789,'41890',35237,35238,4,0),(19790,'41897',35257,35258,4,0),(19791,'41898',35239,35240,4,0),(19792,'41898',35259,35260,4,0),(19793,'41899',35241,35242,4,0),(19794,'41900',35143,35144,4,0),(19795,'41907',35591,35592,4,0),(19796,'41908',35175,35176,4,0),(19797,'41909',35495,35496,4,0),(19798,'41910',35145,35146,4,0),(19799,'41920',35499,35500,4,0),(19800,'41926',35435,35436,4,0),(19801,'41927',35437,35438,4,0),(19802,'41928',35471,35472,4,0),(19803,'41929',35439,35440,4,0),(19804,'41930',35129,35130,4,0),(19805,'41940',35569,35570,4,0),(19806,'41950',35179,35180,4,0),(19807,'41960',35317,35318,4,0),(19808,'41970',35515,35516,4,0),(19809,'41980',35347,35348,4,0),(19810,'41989',35349,35350,4,0),(19811,'42001',36373,36374,4,0),(19812,'42002',36375,36376,4,0),(19813,'42003',36377,36378,4,0),(19814,'42004',36379,36380,4,0),(19815,'42005',36381,36382,4,0),(19816,'42100',35629,35630,4,0),(19817,'42107',35783,35784,4,0),(19818,'42107',35631,35632,4,0),(19819,'42107',35957,35958,4,0),(19820,'42108',36233,36234,4,0),(19821,'42108',35633,35634,4,0),(19822,'42108',35961,35962,4,0),(19823,'42108',35899,35900,4,0),(19824,'42109',36551,36552,4,0),(19825,'42110',36235,36236,4,0),(19826,'42111',36457,36458,4,0),(19827,'42111',35725,35726,4,0),(19828,'42111',35659,35660,4,0),(19829,'42112',36079,36080,4,0),(19830,'42112',36251,36252,4,0),(19831,'42112',36399,36400,4,0),(19832,'42112',36243,36244,4,0),(19833,'42112',36521,36522,4,0),(19834,'42113',35901,35902,4,0),(19835,'42113',36041,36042,4,0),(19836,'42113',36461,36462,4,0),(19837,'42113',36441,36442,4,0),(19838,'42113',36133,36134,4,0),(19839,'42114',35919,35920,4,0),(19840,'42114',36479,36480,4,0),(19841,'42114',36335,36336,4,0),(19842,'42120',36063,36064,4,0),(19843,'42124',36227,36228,4,0),(19844,'42124',36021,36022,4,0),(19845,'42124',35861,35862,4,0),(19846,'42124',36427,36428,4,0),(19847,'42125',35965,35966,4,0),(19848,'42126',35923,35924,4,0),(19849,'42126',35967,35968,4,0),(19850,'42126',35707,35708,4,0),(19851,'42127',36189,36190,4,0),(19852,'42127',36363,36364,4,0),(19853,'42127',36065,36066,4,0),(19854,'42127',35709,35710,4,0),(19855,'42128',35801,35802,4,0),(19856,'42128',36421,36422,4,0),(19857,'42129',36067,36068,4,0),(19858,'42129',35675,35676,4,0),(19859,'42129',35813,35814,4,0),(19860,'42129',36537,36538,4,0),(19861,'42130',35713,35714,4,0),(19862,'42131',35715,35716,4,0),(19863,'42132',36229,36230,4,0),(19864,'42133',35637,35638,4,0),(19865,'42134',36289,36290,4,0),(19866,'42134',35865,35866,4,0),(19867,'42135',35651,35652,4,0),(19868,'42135',35843,35844,4,0),(19869,'42136',36437,36438,4,0),(19870,'42136',36247,36248,4,0),(19871,'42137',36303,36304,4,0),(19872,'42137',36255,36256,4,0),(19873,'42137',35869,35870,4,0),(19874,'42138',35717,35718,4,0),(19875,'42138',35927,35928,4,0),(19876,'42138',35809,35810,4,0),(19877,'42140',36339,36340,4,0),(19878,'42141',36359,36360,4,0),(19879,'42141',35985,35986,4,0),(19880,'42142',35991,35992,4,0),(19881,'42142',35987,35988,4,0),(19882,'42143',36207,36208,4,0),(19883,'42143',36007,36008,4,0),(19884,'42144',36075,36076,4,0),(19885,'42144',35887,35888,4,0),(19886,'42144',36449,36450,4,0),(19887,'42145',35915,35916,4,0),(19888,'42146',35621,35622,4,0),(19889,'42146',35847,35848,4,0),(19890,'42147',35849,35850,4,0),(19891,'42148',36203,36204,4,0),(19892,'42148',35947,35948,4,0),(19893,'42148',36407,36408,4,0),(19894,'42149',36215,36216,4,0),(19895,'42150',36541,36542,4,0),(19896,'42151',36543,36544,4,0),(19897,'42152',36383,36384,4,0),(19898,'42153',35975,35976,4,0),(19899,'42155',36161,36162,4,0),(19900,'42156',36315,36316,4,0),(19901,'42156',36163,36164,4,0),(19902,'42157',35943,35944,4,0),(19903,'42158',35971,35972,4,0),(19904,'42159',35977,35978,4,0),(19905,'42160',35689,35690,4,0),(19906,'42161',35691,35692,4,0),(19907,'42161',35749,35750,4,0),(19908,'42162',35817,35818,4,0),(19909,'42162',36017,36018,4,0),(19910,'42162',36045,36046,4,0),(19911,'42162',36025,36026,4,0),(19912,'42163',36047,36048,4,0),(19913,'42164',35693,35694,4,0),(19914,'42165',36389,36390,4,0),(19915,'42165',36311,36312,4,0),(19916,'42165',36517,36518,4,0),(19917,'42165',36453,36454,4,0),(19918,'42166',36391,36392,4,0),(19919,'42167',35695,35696,4,0),(19920,'42169',35697,35698,4,0),(19921,'42169',36087,36088,4,0),(19922,'42170',36027,36028,4,0),(19923,'42171',35753,35754,4,0),(19924,'42171',35995,35996,4,0),(19925,'42171',36119,36120,4,0),(19926,'42171',35655,35656,4,0),(19927,'42171',35891,35892,4,0),(19928,'42172',36239,36240,4,0),(19929,'42172',36555,36556,4,0),(19930,'42173',36103,36104,4,0),(19931,'42173',36547,36548,4,0),(19932,'42173',36349,36350,4,0),(19933,'42174',36525,36526,4,0),(19934,'42174',36105,36106,4,0),(19935,'42174',36343,36344,4,0),(19936,'42175',36481,36482,4,0),(19937,'42175',35909,35910,4,0),(19938,'42175',36345,36346,4,0),(19939,'42176',36351,36352,4,0),(19940,'42176',36527,36528,4,0),(19941,'42177',36529,36530,4,0),(19942,'42177',36557,36558,4,0),(19943,'42180',35679,35680,4,0),(19944,'42180',35663,35664,4,0),(19945,'42180',35881,35882,4,0),(19946,'42180',35931,35932,4,0),(19947,'42180',36121,36122,4,0),(19948,'42181',36083,36084,4,0),(19949,'42181',36037,36038,4,0),(19950,'42181',36125,36126,4,0),(19951,'42181',35883,35884,4,0),(19952,'42181',36489,36490,4,0),(19953,'42181',35911,35912,4,0),(19954,'42182',35667,35668,4,0),(19955,'42182',35727,35728,4,0),(19956,'42189',36211,36212,4,0),(19957,'42189',36395,36396,4,0),(19958,'42189',36291,36292,4,0),(19959,'42189',36497,36498,4,0),(19960,'42190',36051,36052,4,0),(19961,'42190',36385,36386,4,0),(19962,'42191',36113,36114,4,0),(19963,'42191',35951,35952,4,0),(19964,'42192',36509,36510,4,0),(19965,'42192',36053,36054,4,0),(19966,'42193',36055,36056,4,0),(19967,'42193',35853,35854,4,0),(19968,'42193',35797,35798,4,0),(19969,'42193',36471,36472,4,0),(19970,'42193',36199,36200,4,0),(19971,'42193',36431,36432,4,0),(19972,'42194',36433,36434,4,0),(19973,'42194',36307,36308,4,0),(19974,'42195',35821,35822,4,0),(19975,'42196',35823,35824,4,0),(19976,'42196',36473,36474,4,0),(19977,'42200',35701,35702,4,0),(19978,'42210',35767,35768,4,0),(19979,'42211',35905,35906,4,0),(19980,'42211',36137,36138,4,0),(19981,'42212',35703,35704,4,0),(19982,'42213',35757,35758,4,0),(19983,'42213',35721,35722,4,0),(19984,'42214',35759,35760,4,0),(19985,'42214',36533,36534,4,0),(19986,'42215',35999,36000,4,0),(19987,'42216',36417,36418,4,0),(19988,'42216',35625,35626,4,0),(19989,'42216',35761,35762,4,0),(19990,'42216',36193,36194,4,0),(19991,'42216',35935,35936,4,0),(19992,'42217',35937,35938,4,0),(19993,'42218',36505,36506,4,0),(19994,'42218',35805,35806,4,0),(19995,'42218',36423,36424,4,0),(19996,'42218',36219,36220,4,0),(19997,'42220',36171,36172,4,0),(19998,'42221',44437,44438,4,0),(19999,'42222',35683,35684,4,0),(20000,'42223',35939,35940,4,0),(20001,'42223',36367,36368,4,0),(20002,'42223',36195,36196,4,0),(20003,'42224',35981,35982,4,0),(20004,'42224',36369,36370,4,0),(20005,'42224',36223,36224,4,0),(20006,'42225',36501,36502,4,0),(20007,'42225',36167,36168,4,0),(20008,'42225',36129,36130,4,0),(20009,'42225',35671,35672,4,0),(20010,'42230',36561,36562,4,0),(20011,'42230',36151,36152,4,0),(20012,'42230',36141,36142,4,0),(20013,'42240',36143,36144,4,0),(20014,'42248',36145,36146,4,0),(20015,'42249',36147,36148,4,0),(20016,'42249',35731,35732,4,0),(20017,'42250',35733,35734,4,0),(20018,'42257',35735,35736,4,0),(20019,'42258',35737,35738,4,0),(20020,'42258',35685,35686,4,0),(20021,'42259',35739,35740,4,0),(20022,'42260',36355,36356,4,0),(20023,'42269',44265,44266,4,0),(20024,'42269',43597,43598,4,0),(20025,'42269',35741,35742,4,0),(20026,'42269',44627,44628,4,0),(20027,'42290',36057,36058,4,0),(20028,'42290',36115,36116,4,0),(20029,'42290',35953,35954,4,0),(20030,'42291',36259,36260,4,0),(20031,'42292',36261,36262,4,0),(20032,'42293',36485,36486,4,0),(20033,'42293',36031,36032,4,0),(20034,'42293',36263,36264,4,0),(20035,'42294',36413,36414,4,0),(20036,'42294',36059,36060,4,0),(20037,'42294',36033,36034,4,0),(20038,'42294',36265,36266,4,0),(20039,'42295',35647,35648,4,0),(20040,'42295',35763,35764,4,0),(20041,'42296',36563,36564,4,0),(20042,'42296',36153,36154,4,0),(20043,'42300',35825,35826,4,0),(20044,'42310',35827,35828,4,0),(20045,'42311',35873,35874,4,0),(20046,'42311',35877,35878,4,0),(20047,'42311',36175,36176,4,0),(20048,'42311',35829,35830,4,0),(20049,'42312',35831,35832,4,0),(20050,'42312',36003,36004,4,0),(20051,'42312',36513,36514,4,0),(20052,'42313',36475,36476,4,0),(20053,'42313',36269,36270,4,0),(20054,'42313',35833,35834,4,0),(20055,'42313',36277,36278,4,0),(20056,'42313',36071,36072,4,0),(20057,'42314',36279,36280,4,0),(20058,'42315',36281,36282,4,0),(20059,'42315',36295,36296,4,0),(20060,'42315',36177,36178,4,0),(20061,'42316',36297,36298,4,0),(20062,'42317',36409,36410,4,0),(20063,'42317',36465,36466,4,0),(20064,'42317',36445,36446,4,0),(20065,'42318',35835,35836,4,0),(20066,'42318',36467,36468,4,0),(20067,'42320',36319,36320,4,0),(20068,'42320',36095,36096,4,0),(20069,'42328',35895,35896,4,0),(20070,'42328',36097,36098,4,0),(20071,'42328',36157,36158,4,0),(20072,'42329',36099,36100,4,0),(20073,'42330',36321,36322,4,0),(20074,'42339',36013,36014,4,0),(20075,'42340',36323,36324,4,0),(20076,'42341',36179,36180,4,0),(20077,'42341',36109,36110,4,0),(20078,'42342',36181,36182,4,0),(20079,'42342',36325,36326,4,0),(20080,'42343',36183,36184,4,0),(20081,'42344',36185,36186,4,0),(20082,'42344',36299,36300,4,0),(20083,'42345',36327,36328,4,0),(20084,'42351',35641,35642,4,0),(20085,'42351',35837,35838,4,0),(20086,'42351',36009,36010,4,0),(20087,'42351',36329,36330,4,0),(20088,'42353',35643,35644,4,0),(20089,'42360',35787,35788,4,0),(20090,'42366',35775,35776,4,0),(20091,'42366',35779,35780,4,0),(20092,'42366',36403,36404,4,0),(20093,'42366',35789,35790,4,0),(20094,'42367',35857,35858,4,0),(20095,'42367',35791,35792,4,0),(20096,'42368',35771,35772,4,0),(20097,'42368',36285,36286,4,0),(20098,'42368',36091,36092,4,0),(20099,'42368',35745,35746,4,0),(20100,'42369',35793,35794,4,0),(20101,'42391',36331,36332,4,0),(20102,'42391',35839,35840,4,0),(20103,'42392',36493,36494,4,0),(20104,'43001',37293,37294,4,0),(20105,'43002',37295,37296,4,0),(20106,'43003',37297,37298,4,0),(20107,'43004',37299,37300,4,0),(20108,'43005',37301,37302,4,0),(20109,'43006',37303,37304,4,0),(20110,'43007',37305,37306,4,0),(20111,'43008',37307,37308,4,0),(20112,'43100',36929,36930,4,0),(20113,'43100',37309,37310,4,0),(20114,'43110',36931,36932,4,0),(20115,'43120',36739,36740,4,0),(20116,'43130',37311,37312,4,0),(20117,'43140',36969,36970,4,0),(20118,'43141',37409,37410,4,0),(20119,'43142',36823,36824,4,0),(20120,'43143',36951,36952,4,0),(20121,'43143',36785,36786,4,0),(20122,'43144',37367,37368,4,0),(20123,'43150',36771,36772,4,0),(20124,'43151',36841,36842,4,0),(20125,'43152',37127,37128,4,0),(20126,'43153',36833,36834,4,0),(20127,'43154',36989,36990,4,0),(20128,'43155',37129,37130,4,0),(20129,'43201',37185,37186,4,0),(20130,'43202',37187,37188,4,0),(20131,'43203',37189,37190,4,0),(20132,'43204',37191,37192,4,0),(20133,'43205',37193,37194,4,0),(20134,'43205',36791,36792,4,0),(20135,'43206',37195,37196,4,0),(20136,'43206',37393,37394,4,0),(20137,'43300',37077,37078,4,0),(20138,'43310',36729,36730,4,0),(20139,'43311',37413,37414,4,0),(20140,'43312',37415,37416,4,0),(20141,'43320',37319,37320,4,0),(20142,'43320',37161,37162,4,0),(20143,'43330',37211,37212,4,0),(20144,'43340',37097,37098,4,0),(20145,'43350',37019,37020,4,0),(20146,'43360',36747,36748,4,0),(20147,'43361',36955,36956,4,0),(20148,'43362',36749,36750,4,0),(20149,'43363',37355,37356,4,0),(20150,'43364',37071,37072,4,0),(20151,'43364',37153,37154,4,0),(20152,'43364',36939,36940,4,0),(20153,'43364',36713,36714,4,0),(20154,'43365',36599,36600,4,0),(20155,'43365',36623,36624,4,0),(20156,'43370',36965,36966,4,0),(20157,'43371',37045,37046,4,0),(20158,'43372',36921,36922,4,0),(20159,'43373',36689,36690,4,0),(20160,'43374',37015,37016,4,0),(20161,'43375',37011,37012,4,0),(20162,'43376',37137,37138,4,0),(20163,'43379',36957,36958,4,0),(20164,'43380',37423,37424,4,0),(20165,'43381',36897,36898,4,0),(20166,'43382',37063,37064,4,0),(20167,'43390',37207,37208,4,0),(20168,'43391',37443,37444,4,0),(20169,'43392',36725,36726,4,0),(20170,'43393',36607,36608,4,0),(20171,'43400',37085,37086,4,0),(20172,'43410',37087,37088,4,0),(20173,'43411',36669,36670,4,0),(20174,'43412',37289,37290,4,0),(20175,'43413',37117,37118,4,0),(20176,'43414',37089,37090,4,0),(20177,'43415',37091,37092,4,0),(20178,'43420',37261,37262,4,0),(20179,'43421',5973,5974,4,0),(20180,'43421',37141,37142,4,0),(20181,'43422',36641,36642,4,0),(20182,'43423',37133,37134,4,0),(20183,'43424',37273,37274,4,0),(20184,'43425',37275,37276,4,0),(20185,'43425',37119,37120,4,0),(20186,'43425',36857,36858,4,0),(20187,'43426',37215,37216,4,0),(20188,'43427',36733,36734,4,0),(20189,'43427',37281,37282,4,0),(20190,'43427',37363,37364,4,0),(20191,'43427',37029,37030,4,0),(20192,'43428',37277,37278,4,0),(20193,'43428',36735,36736,4,0),(20194,'43428',37023,37024,4,0),(20195,'43429',37263,37264,4,0),(20196,'43429',37025,37026,4,0),(20197,'43429',36643,36644,4,0),(20198,'43430',37431,37432,4,0),(20199,'43439',37359,37360,4,0),(20200,'43439',37419,37420,4,0),(20201,'43440',36917,36918,4,0),(20202,'43442',36645,36646,4,0),(20203,'43448',37433,37434,4,0),(20204,'43449',37285,37286,4,0),(20205,'43449',37435,37436,4,0),(20206,'43450',36981,36982,4,0),(20207,'43459',37073,37074,4,0),(20208,'43459',37093,37094,4,0),(20209,'43460',36587,36588,4,0),(20210,'43470',36995,36996,4,0),(20211,'43479',36889,36890,4,0),(20212,'43480',37395,37396,4,0),(20213,'43481',37397,37398,4,0),(20214,'43490',37427,37428,4,0),(20215,'43491',37371,37372,4,0),(20216,'43500',37333,37334,4,0),(20217,'43510',37335,37336,4,0),(20218,'43511',37315,37316,4,0),(20219,'43512',36661,36662,4,0),(20220,'43513',37177,37178,4,0),(20221,'43514',37049,37050,4,0),(20222,'43515',36947,36948,4,0),(20223,'43516',36877,36878,4,0),(20224,'43517',37337,37338,4,0),(20225,'43519',36807,36808,4,0),(20226,'43520',37227,37228,4,0),(20227,'43527',37339,37340,4,0),(20228,'43528',36595,36596,4,0),(20229,'43529',37229,37230,4,0),(20230,'43530',36581,36582,4,0),(20231,'43539',36753,36754,4,0),(20232,'43540',37241,37242,4,0),(20233,'43548',37243,37244,4,0),(20234,'43549',36615,36616,4,0),(20235,'43550',37347,37348,4,0),(20236,'43558',36861,36862,4,0),(20237,'43558',37349,37350,4,0),(20238,'43559',37351,37352,4,0),(20239,'43560',36999,37000,4,0),(20240,'43569',36583,36584,4,0),(20241,'43570',37257,37258,4,0),(20242,'43580',36763,36764,4,0),(20243,'43590',37341,37342,4,0),(20244,'43591',36591,36592,4,0),(20245,'43592',37447,37448,4,0),(20246,'43593',37123,37124,4,0),(20247,'43594',36811,36812,4,0),(20248,'43595',37157,37158,4,0),(20249,'43596',36885,36886,4,0),(20250,'43597',36627,36628,4,0),(20251,'43700',36827,36828,4,0),(20252,'43710',37267,37268,4,0),(20253,'43711',36635,36636,4,0),(20254,'43712',37033,37034,4,0),(20255,'43713',37253,37254,4,0),(20256,'43714',36569,36570,4,0),(20257,'43714',36793,36794,4,0),(20258,'43715',37035,37036,4,0),(20259,'43715',36637,36638,4,0),(20260,'43715',36795,36796,4,0),(20261,'43715',37171,37172,4,0),(20262,'43716',36575,36576,4,0),(20263,'43717',36925,36926,4,0),(20264,'43718',37059,37060,4,0),(20265,'43718',37269,37270,4,0),(20266,'43718',36577,36578,4,0),(20267,'43718',36797,36798,4,0),(20268,'43719',36657,36658,4,0),(20269,'43720',36909,36910,4,0),(20270,'43730',36845,36846,4,0),(20271,'43730',37039,37040,4,0),(20272,'43736',26143,26144,4,0),(20273,'43736',36943,36944,4,0),(20274,'43736',36781,36782,4,0),(20275,'43737',36881,36882,4,0),(20276,'43737',36777,36778,4,0),(20277,'43737',37329,37330,4,0),(20278,'43738',36653,36654,4,0),(20279,'43739',37145,37146,4,0),(20280,'43740',37105,37106,4,0),(20281,'43746',37321,37322,4,0),(20282,'43747',37067,37068,4,0),(20283,'43747',36665,36666,4,0),(20284,'43748',36873,36874,4,0),(20285,'43749',36869,36870,4,0),(20286,'43750',36853,36854,4,0),(20287,'43760',36803,36804,4,0),(20288,'43761',36977,36978,4,0),(20289,'43762',36985,36986,4,0),(20290,'43763',37385,37386,4,0),(20291,'43763',36961,36962,4,0),(20292,'43764',36773,36774,4,0),(20293,'43765',36991,36992,4,0),(20294,'43770',37109,37110,4,0),(20295,'43771',37203,37204,4,0),(20296,'43772',36681,36682,4,0),(20297,'43773',36913,36914,4,0),(20298,'43773',36767,36768,4,0),(20299,'43774',37149,37150,4,0),(20300,'43774',37003,37004,4,0),(20301,'43775',37041,37042,4,0),(20302,'43776',36717,36718,4,0),(20303,'43777',36837,36838,4,0),(20304,'43780',36865,36866,4,0),(20305,'43781',36935,36936,4,0),(20306,'43782',37405,37406,4,0),(20307,'43783',36973,36974,4,0),(20308,'43784',36743,36744,4,0),(20309,'43785',36677,36678,4,0),(20310,'43786',36649,36650,4,0),(20311,'43787',36721,36722,4,0),(20312,'43790',37199,37200,4,0),(20313,'43791',36631,36632,4,0),(20314,'43792',37007,37008,4,0),(20315,'43792',37439,37440,4,0),(20316,'43800',37373,37374,4,0),(20317,'43810',36815,36816,4,0),(20318,'43811',36693,36694,4,0),(20319,'43811',36849,36850,4,0),(20320,'43812',36799,36800,4,0),(20321,'43812',37101,37102,4,0),(20322,'43812',37223,37224,4,0),(20323,'43812',36685,36686,4,0),(20324,'43812',37167,37168,4,0),(20325,'43813',36603,36604,4,0),(20326,'43813',37375,37376,4,0),(20327,'43814',37389,37390,4,0),(20328,'43815',36571,36572,4,0),(20329,'43815',37079,37080,4,0),(20330,'43816',37173,37174,4,0),(20331,'43817',36819,36820,4,0),(20332,'43820',36697,36698,4,0),(20333,'43830',37325,37326,4,0),(20334,'43839',36755,36756,4,0),(20335,'43840',37237,37238,4,0),(20336,'43850',36709,36710,4,0),(20337,'43860',36901,36902,4,0),(20338,'43870',36617,36618,4,0),(20339,'43877',37247,37248,4,0),(20340,'43878',37053,37054,4,0),(20341,'43879',37055,37056,4,0),(20342,'43879',36619,36620,4,0),(20343,'43879',37249,37250,4,0),(20344,'43880',36829,36830,4,0),(20345,'43881',36759,36760,4,0),(20346,'43882',36699,36700,4,0),(20347,'43883',37219,37220,4,0),(20348,'43884',36673,36674,4,0),(20349,'43885',37233,37234,4,0),(20350,'43886',37401,37402,4,0),(20351,'43886',37181,37182,4,0),(20352,'43887',37113,37114,4,0),(20353,'43890',37379,37380,4,0),(20354,'43891',37163,37164,4,0),(20355,'43891',37381,37382,4,0),(20356,'43892',37081,37082,4,0),(20357,'43893',36611,36612,4,0),(20358,'43894',36705,36706,4,0),(20359,'43895',36905,36906,4,0),(20360,'43896',36893,36894,4,0),(20361,'43897',37343,37344,4,0),(20362,'43900',14945,14946,4,0),(20363,'44001',38305,38306,4,0),(20364,'44002',38307,38308,4,0),(20365,'44003',38309,38310,4,0),(20366,'44100',37485,37486,4,0),(20367,'44110',37901,37902,4,0),(20368,'44111',38379,38380,4,0),(20369,'44112',38401,38402,4,0),(20370,'44113',38129,38130,4,0),(20371,'44114',37905,37906,4,0),(20372,'44114',38469,38470,4,0),(20373,'44115',37909,37910,4,0),(20374,'44120',38301,38302,4,0),(20375,'44121',37487,37488,4,0),(20376,'44121',38311,38312,4,0),(20377,'44121',38243,38244,4,0),(20378,'44121',37621,37622,4,0),(20379,'44122',38433,38434,4,0),(20380,'44122',38259,38260,4,0),(20381,'44122',37931,37932,4,0),(20382,'44123',37817,37818,4,0),(20383,'44123',37489,37490,4,0),(20384,'44123',38329,38330,4,0),(20385,'44123',37933,37934,4,0),(20386,'44124',38117,38118,4,0),(20387,'44125',38239,38240,4,0),(20388,'44126',37869,37870,4,0),(20389,'44126',37681,37682,4,0),(20390,'44130',38489,38490,4,0),(20391,'44131',38493,38494,4,0),(20392,'44132',38019,38020,4,0),(20393,'44132',38395,38396,4,0),(20394,'44133',38231,38232,4,0),(20395,'44133',38397,38398,4,0),(20396,'44134',38333,38334,4,0),(20397,'44134',38453,38454,4,0),(20398,'44134',37809,37810,4,0),(20399,'44134',37549,37550,4,0),(20400,'44140',37705,37706,4,0),(20401,'44140',37717,37718,4,0),(20402,'44141',37965,37966,4,0),(20403,'44141',38405,38406,4,0),(20404,'44141',38075,38076,4,0),(20405,'44142',37981,37982,4,0),(20406,'44143',37861,37862,4,0),(20407,'44144',38485,38486,4,0),(20408,'44145',37533,37534,4,0),(20409,'44146',38105,38106,4,0),(20410,'44147',37751,37752,4,0),(20411,'44150',37525,37526,4,0),(20412,'44155',37695,37696,4,0),(20413,'44155',37813,37814,4,0),(20414,'44155',37453,37454,4,0),(20415,'44156',37469,37470,4,0),(20416,'44156',37945,37946,4,0),(20417,'44157',37921,37922,4,0),(20418,'44157',37527,37528,4,0),(20419,'44158',37529,37530,4,0),(20420,'44159',38079,38080,4,0),(20421,'44160',37521,37522,4,0),(20422,'44161',37821,37822,4,0),(20423,'44161',38169,38170,4,0),(20424,'44161',38195,38196,4,0),(20425,'44162',38191,38192,4,0),(20426,'44162',37797,37798,4,0),(20427,'44162',38313,38314,4,0),(20428,'44163',38197,38198,4,0),(20429,'44164',38501,38502,4,0),(20430,'44164',38023,38024,4,0),(20431,'44165',37573,37574,4,0),(20432,'44166',38247,38248,4,0),(20433,'44167',37685,37686,4,0),(20434,'44168',37709,37710,4,0),(20435,'44168',37893,37894,4,0),(20436,'44169',37937,37938,4,0),(20437,'44169',38071,38072,4,0),(20438,'44169',37793,37794,4,0),(20439,'44190',38315,38316,4,0),(20440,'44191',37689,37690,4,0),(20441,'44191',37785,37786,4,0),(20442,'44191',37721,37722,4,0),(20443,'44191',38421,38422,4,0),(20444,'44192',38317,38318,4,0),(20445,'44193',37763,37764,4,0),(20446,'44193',38319,38320,4,0),(20447,'44194',37755,37756,4,0),(20448,'44195',38321,38322,4,0),(20449,'44200',37657,37658,4,0),(20450,'44210',37659,37660,4,0),(20451,'44211',37661,37662,4,0),(20452,'44212',37925,37926,4,0),(20453,'44212',37557,37558,4,0),(20454,'44212',38039,38040,4,0),(20455,'44213',38205,38206,4,0),(20456,'44213',37927,37928,4,0),(20457,'44220',37663,37664,4,0),(20458,'44220',37597,37598,4,0),(20459,'44221',38365,38366,4,0),(20460,'44222',38367,38368,4,0),(20461,'44223',38465,38466,4,0),(20462,'44230',38337,38338,4,0),(20463,'44231',37725,37726,4,0),(20464,'44232',37609,37610,4,0),(20465,'44233',38145,38146,4,0),(20466,'44300',38091,38092,4,0),(20467,'44310',38235,38236,4,0),(20468,'44311',38473,38474,4,0),(20469,'44312',38149,38150,4,0),(20470,'44313',38151,38152,4,0),(20471,'44314',37625,37626,4,0),(20472,'44315',38213,38214,4,0),(20473,'44320',37589,37590,4,0),(20474,'44330',37645,37646,4,0),(20475,'44340',37881,37882,4,0),(20476,'44350',37699,37700,4,0),(20477,'44357',37593,37594,4,0),(20478,'44357',37665,37666,4,0),(20479,'44358',37771,37772,4,0),(20480,'44358',38357,38358,4,0),(20481,'44359',38341,38342,4,0),(20482,'44359',37701,37702,4,0),(20483,'44360',38279,38280,4,0),(20484,'44366',38165,38166,4,0),(20485,'44367',37637,37638,4,0),(20486,'44368',38209,38210,4,0),(20487,'44368',38109,38110,4,0),(20488,'44369',37545,37546,4,0),(20489,'44369',38187,38188,4,0),(20490,'44370',37759,37760,4,0),(20491,'44380',38481,38482,4,0),(20492,'44381',38375,38376,4,0),(20493,'44382',37461,37462,4,0),(20494,'44382',38371,38372,4,0),(20495,'44382',38297,38298,4,0),(20496,'44390',38271,38272,4,0),(20497,'44391',37667,37668,4,0),(20498,'44392',37669,37670,4,0),(20499,'44393',38391,38392,4,0),(20500,'44394',38457,38458,4,0),(20501,'44394',37641,37642,4,0),(20502,'44395',37477,37478,4,0),(20503,'44396',38323,38324,4,0),(20504,'44397',38325,38326,4,0),(20505,'44400',38113,38114,4,0),(20506,'44409',37805,37806,4,0),(20507,'44409',37649,37650,4,0),(20508,'44410',38121,38122,4,0),(20509,'44411',38217,38218,4,0),(20510,'44412',38027,38028,4,0),(20511,'44413',38437,38438,4,0),(20512,'44414',38137,38138,4,0),(20513,'44415',37885,37886,4,0),(20514,'44415',38251,38252,4,0),(20515,'44420',38049,38050,4,0),(20516,'44421',38387,38388,4,0),(20517,'44421',37565,37566,4,0),(20518,'44422',38051,38052,4,0),(20519,'44422',37457,37458,4,0),(20520,'44423',38053,38054,4,0),(20521,'44424',38283,38284,4,0),(20522,'44424',37493,37494,4,0),(20523,'44430',38425,38426,4,0),(20524,'44431',37503,37504,4,0),(20525,'44432',37505,37506,4,0),(20526,'44433',37913,37914,4,0),(20527,'44440',37851,37852,4,0),(20528,'44441',37853,37854,4,0),(20529,'44450',37999,38000,4,0),(20530,'44459',37691,37692,4,0),(20531,'44460',38285,38286,4,0),(20532,'44477',37495,37496,4,0),(20533,'44478',38155,38156,4,0),(20534,'44479',38157,38158,4,0),(20535,'44480',38267,38268,4,0),(20536,'44490',37835,37836,4,0),(20537,'44491',37789,37790,4,0),(20538,'44491',37585,37586,4,0),(20539,'44491',38011,38012,4,0),(20540,'44492',37601,37602,4,0),(20541,'44492',37541,37542,4,0),(20542,'44492',38007,38008,4,0),(20543,'44493',38087,38088,4,0),(20544,'44493',38041,38042,4,0),(20545,'44493',38133,38134,4,0),(20546,'44494',38461,38462,4,0),(20547,'44495',37671,37672,4,0),(20548,'44496',37673,37674,4,0),(20549,'44497',38275,38276,4,0),(20550,'44500',37561,37562,4,0),(20551,'44509',37537,37538,4,0),(20552,'44510',37993,37994,4,0),(20553,'44511',37995,37996,4,0),(20554,'44520',38263,38264,4,0),(20555,'44530',37917,37918,4,0),(20556,'44540',37481,37482,4,0),(20557,'44547',37577,37578,4,0),(20558,'44548',38161,38162,4,0),(20559,'44549',37473,37474,4,0),(20560,'44550',37517,37518,4,0),(20561,'44555',38201,38202,4,0),(20562,'44556',37617,37618,4,0),(20563,'44556',38083,38084,4,0),(20564,'44557',37985,37986,4,0),(20565,'44557',38035,38036,4,0),(20566,'44557',37781,37782,4,0),(20567,'44558',37831,37832,4,0),(20568,'44558',37897,37898,4,0),(20569,'44559',38477,38478,4,0),(20570,'44559',37801,37802,4,0),(20571,'44560',37733,37734,4,0),(20572,'44561',38293,38294,4,0),(20573,'44562',37735,37736,4,0),(20574,'44563',37633,37634,4,0),(20575,'44563',37737,37738,4,0),(20576,'44564',38063,38064,4,0),(20577,'44565',37739,37740,4,0),(20578,'44566',37465,37466,4,0),(20579,'44566',38015,38016,4,0),(20580,'44570',37677,37678,4,0),(20581,'44579',37865,37866,4,0),(20582,'44580',38445,38446,4,0),(20583,'44586',38183,38184,4,0),(20584,'44587',37889,37890,4,0),(20585,'44588',37605,37606,4,0),(20586,'44589',37989,37990,4,0),(20587,'44589',38221,38222,4,0),(20588,'44590',37581,37582,4,0),(20589,'44591',43621,43622,4,0),(20590,'44591',38497,38498,4,0),(20591,'44592',37743,37744,4,0),(20592,'44592',37941,37942,4,0),(20593,'44593',38409,38410,4,0),(20594,'44594',38429,38430,4,0),(20595,'44595',38449,38450,4,0),(20596,'44596',37969,37970,4,0),(20597,'44597',38353,38354,4,0),(20598,'44600',37509,37510,4,0),(20599,'44610',37653,37654,4,0),(20600,'44620',38441,38442,4,0),(20601,'44621',38067,38068,4,0),(20602,'44622',37569,37570,4,0),(20603,'44623',37777,37778,4,0),(20604,'44624',38031,38032,4,0),(20605,'44630',39971,39972,4,0),(20606,'44630',37747,37748,4,0),(20607,'44640',38361,38362,4,0),(20608,'44640',37961,37962,4,0),(20609,'44641',38383,38384,4,0),(20610,'44642',37613,37614,4,0),(20611,'44643',37973,37974,4,0),(20612,'44643',37953,37954,4,0),(20613,'44650',37857,37858,4,0),(20614,'44651',37957,37958,4,0),(20615,'44652',38095,38096,4,0),(20616,'44653',38345,38346,4,0),(20617,'44660',37511,37512,4,0),(20618,'44661',37513,37514,4,0),(20619,'44700',38099,38100,4,0),(20620,'44706',37729,37730,4,0),(20621,'44707',38003,38004,4,0),(20622,'44707',37713,37714,4,0),(20623,'44708',38173,38174,4,0),(20624,'44709',38349,38350,4,0),(20625,'44709',38101,38102,4,0),(20626,'44710',38225,38226,4,0),(20627,'44711',37877,37878,4,0),(20628,'44712',38227,38228,4,0),(20629,'44720',38177,38178,4,0),(20630,'44721',37773,37774,4,0),(20631,'44721',37553,37554,4,0),(20632,'44730',38179,38180,4,0),(20633,'44730',38057,38058,4,0),(20634,'44740',38505,38506,4,0),(20635,'44741',37873,37874,4,0),(20636,'44742',38507,38508,4,0),(20637,'44750',38059,38060,4,0),(20638,'44760',38413,38414,4,0),(20639,'44761',38415,38416,4,0),(20640,'44769',38417,38418,4,0),(20641,'44770',37825,37826,4,0),(20642,'44779',37827,37828,4,0),(20643,'44780',38125,38126,4,0),(20644,'44790',37629,37630,4,0),(20645,'44791',37977,37978,4,0),(20646,'44791',37767,37768,4,0),(20647,'44791',38045,38046,4,0),(20648,'44792',38141,38142,4,0),(20649,'44792',37949,37950,4,0),(20650,'44792',37499,37500,4,0),(20651,'44793',38255,38256,4,0),(20652,'44793',38289,38290,4,0),(20653,'45001',39283,39284,4,0),(20654,'45002',39285,39286,4,0),(20655,'45003',39287,39288,4,0),(20656,'45004',39289,39290,4,0),(20657,'45005',39291,39292,4,0),(20658,'45006',39293,39294,4,0),(20659,'45007',39295,39296,4,0),(20660,'45008',39297,39298,4,0),(20661,'45100',39259,39260,4,0),(20662,'45109',39261,39262,4,0),(20663,'45109',39097,39098,4,0),(20664,'45110',38513,38514,4,0),(20665,'45111',38711,38712,4,0),(20666,'45112',38603,38604,4,0),(20667,'45113',38699,38700,4,0),(20668,'45114',38981,38982,4,0),(20669,'45120',39205,39206,4,0),(20670,'45120',38993,38994,4,0),(20671,'45121',38995,38996,4,0),(20672,'45122',38573,38574,4,0),(20673,'45123',38909,38910,4,0),(20674,'45123',39243,39244,4,0),(20675,'45124',38671,38672,4,0),(20676,'45125',39151,39152,4,0),(20677,'45126',38723,38724,4,0),(20678,'45126',38983,38984,4,0),(20679,'45127',38897,38898,4,0),(20680,'45128',38997,38998,4,0),(20681,'45130',38929,38930,4,0),(20682,'45138',38931,38932,4,0),(20683,'45139',38933,38934,4,0),(20684,'45140',38925,38926,4,0),(20685,'45150',39043,39044,4,0),(20686,'45159',39045,39046,4,0),(20687,'45159',38819,38820,4,0),(20688,'45160',38807,38808,4,0),(20689,'45161',39139,39140,4,0),(20690,'45162',39065,39066,4,0),(20691,'45163',39317,39318,4,0),(20692,'45164',38795,38796,4,0),(20693,'45165',39197,39198,4,0),(20694,'45170',39201,39202,4,0),(20695,'45179',39379,39380,4,0),(20696,'45180',38639,38640,4,0),(20697,'45181',38643,38644,4,0),(20698,'45182',38569,38570,4,0),(20699,'45183',38901,38902,4,0),(20700,'45190',39037,39038,4,0),(20701,'45191',39039,39040,4,0),(20702,'45200',38839,38840,4,0),(20703,'45210',39419,39420,4,0),(20704,'45211',39169,39170,4,0),(20705,'45212',38917,38918,4,0),(20706,'45213',39115,39116,4,0),(20707,'45214',38687,38688,4,0),(20708,'45215',38765,38766,4,0),(20709,'45216',38659,38660,4,0),(20710,'45217',39325,39326,4,0),(20711,'45220',39403,39404,4,0),(20712,'45221',38785,38786,4,0),(20713,'45222',38595,38596,4,0),(20714,'45223',39245,39246,4,0),(20715,'45224',39247,39248,4,0),(20716,'45225',38581,38582,4,0),(20717,'45230',39077,39078,4,0),(20718,'45240',38517,38518,4,0),(20719,'45250',38565,38566,4,0),(20720,'45260',39389,39390,4,0),(20721,'45270',39015,39016,4,0),(20722,'45276',39019,39020,4,0),(20723,'45280',39089,39090,4,0),(20724,'45290',39119,39120,4,0),(20725,'45291',38707,38708,4,0),(20726,'45292',39391,39392,4,0),(20727,'45300',38867,38868,4,0),(20728,'45300',39085,39086,4,0),(20729,'45310',39399,39400,4,0),(20730,'45311',38731,38732,4,0),(20731,'45312',38615,38616,4,0),(20732,'45313',39407,39408,4,0),(20733,'45314',38703,38704,4,0),(20734,'45340',39093,39094,4,0),(20735,'45350',39061,39062,4,0),(20736,'45360',39383,39384,4,0),(20737,'45370',39385,39386,4,0),(20738,'45370',39217,39218,4,0),(20739,'45400',39033,39034,4,0),(20740,'45400',39159,39160,4,0),(20741,'45410',39375,39376,4,0),(20742,'45420',38557,38558,4,0),(20743,'45430',38977,38978,4,0),(20744,'45440',39363,39364,4,0),(20745,'45450',39099,39100,4,0),(20746,'45460',38751,38752,4,0),(20747,'45460',38961,38962,4,0),(20748,'45470',38937,38938,4,0),(20749,'45479',38969,38970,4,0),(20750,'45480',39329,39330,4,0),(20751,'45480',38939,38940,4,0),(20752,'45500',39313,39314,4,0),(20753,'45510',38789,38790,4,0),(20754,'45511',38827,38828,4,0),(20755,'45512',39143,39144,4,0),(20756,'45513',39221,39222,4,0),(20757,'45514',39165,39166,4,0),(20758,'45515',38965,38966,4,0),(20759,'45516',38869,38870,4,0),(20760,'45517',38777,38778,4,0),(20761,'45518',38803,38804,4,0),(20762,'45519',39073,39074,4,0),(20763,'45520',39355,39356,4,0),(20764,'45521',38607,38608,4,0),(20765,'45522',38521,38522,4,0),(20766,'45523',38525,38526,4,0),(20767,'45524',39177,39178,4,0),(20768,'45525',38583,38584,4,0),(20769,'45526',39231,39232,4,0),(20770,'45529',39411,39412,4,0),(20771,'45530',39227,39228,4,0),(20772,'45530',39009,39010,4,0),(20773,'45531',38655,38656,4,0),(20774,'45532',38663,38664,4,0),(20775,'45533',38739,38740,4,0),(20776,'45534',38855,38856,4,0),(20777,'45540',38769,38770,4,0),(20778,'45540',38791,38792,4,0),(20779,'45541',39005,39006,4,0),(20780,'45542',38743,38744,4,0),(20781,'45543',39111,39112,4,0),(20782,'45544',38727,38728,4,0),(20783,'45551',38835,38836,4,0),(20784,'45560',39103,39104,4,0),(20785,'45567',38887,38888,4,0),(20786,'45568',38905,38906,4,0),(20787,'45569',39301,39302,4,0),(20788,'45569',39105,39106,4,0),(20789,'45570',38747,38748,4,0),(20790,'45571',38577,38578,4,0),(20791,'45571',38537,38538,4,0),(20792,'45572',39333,39334,4,0),(20793,'45572',39309,39310,4,0),(20794,'45573',39053,39054,4,0),(20795,'45574',38843,38844,4,0),(20796,'45575',38549,38550,4,0),(20797,'45576',39021,39022,4,0),(20798,'45577',39147,39148,4,0),(20799,'45578',38735,38736,4,0),(20800,'45580',38635,38636,4,0),(20801,'45588',38811,38812,4,0),(20802,'45589',38631,38632,4,0),(20803,'45590',38951,38952,4,0),(20804,'45591',39415,39416,4,0),(20805,'45592',38611,38612,4,0),(20806,'45593',38587,38588,4,0),(20807,'45594',39359,39360,4,0),(20808,'45600',39269,39270,4,0),(20809,'45600',39107,39108,4,0),(20810,'45610',39049,39050,4,0),(20811,'45611',39127,39128,4,0),(20812,'45612',39341,39342,4,0),(20813,'45613',39271,39272,4,0),(20814,'45614',39273,39274,4,0),(20815,'45620',39029,39030,4,0),(20816,'45621',39239,39240,4,0),(20817,'45622',38987,38988,4,0),(20818,'45630',39057,39058,4,0),(20819,'45631',38553,38554,4,0),(20820,'45632',39235,39236,4,0),(20821,'45633',38851,38852,4,0),(20822,'45634',38599,38600,4,0),(20823,'45635',39265,39266,4,0),(20824,'45636',38973,38974,4,0),(20825,'45637',38691,38692,4,0),(20826,'45638',39135,39136,4,0),(20827,'45640',38753,38754,4,0),(20828,'45641',38675,38676,4,0),(20829,'45642',38651,38652,4,0),(20830,'45643',38799,38800,4,0),(20831,'45644',39081,39082,4,0),(20832,'45645',38815,38816,4,0),(20833,'45646',39209,39210,4,0),(20834,'45650',38781,38782,4,0),(20835,'45651',39305,39306,4,0),(20836,'45652',39173,39174,4,0),(20837,'45653',39213,39214,4,0),(20838,'45654',39193,39194,4,0),(20839,'45660',38591,38592,4,0),(20840,'45661',38545,38546,4,0),(20841,'45662',38533,38534,4,0),(20842,'45662',38989,38990,4,0),(20843,'45663',38891,38892,4,0),(20844,'45664',38893,38894,4,0),(20845,'45670',38859,38860,4,0),(20846,'45671',39251,39252,4,0),(20847,'45672',39253,39254,4,0),(20848,'45673',39255,39256,4,0),(20849,'45674',39181,39182,4,0),(20850,'45675',39183,39184,4,0),(20851,'45676',39185,39186,4,0),(20852,'45677',39187,39188,4,0),(20853,'45678',39189,39190,4,0),(20854,'45680',38683,38684,4,0),(20855,'45680',39345,39346,4,0),(20856,'45682',38921,38922,4,0),(20857,'45683',38679,38680,4,0),(20858,'45684',38943,38944,4,0),(20859,'45685',39025,39026,4,0),(20860,'45686',38625,38626,4,0),(20861,'45687',38529,38530,4,0),(20862,'45690',38873,38874,4,0),(20863,'45691',38875,38876,4,0),(20864,'45692',38955,38956,4,0),(20865,'45693',38957,38958,4,0),(20866,'45694',39275,39276,4,0),(20867,'45695',38627,38628,4,0),(20868,'45700',38715,38716,4,0),(20869,'45710',38947,38948,4,0),(20870,'45720',38647,38648,4,0),(20871,'45730',39351,39352,4,0),(20872,'45740',39395,39396,4,0),(20873,'45749',39367,39368,4,0),(20874,'45750',38831,38832,4,0),(20875,'45750',38617,38618,4,0),(20876,'45760',38847,38848,4,0),(20877,'45770',38757,38758,4,0),(20878,'45780',39279,39280,4,0),(20879,'45789',39321,39322,4,0),(20880,'45790',39155,39156,4,0),(20881,'45800',39161,39162,4,0),(20882,'45810',39371,39372,4,0),(20883,'45820',38761,38762,4,0),(20884,'45830',39011,39012,4,0),(20885,'45840',38863,38864,4,0),(20886,'45850',38883,38884,4,0),(20887,'45860',39347,39348,4,0),(20888,'45870',38913,38914,4,0),(20889,'45880',38719,38720,4,0),(20890,'45890',38621,38622,4,0),(20891,'45900',38561,38562,4,0),(20892,'45908',39123,39124,4,0),(20893,'45908',38541,38542,4,0),(20894,'45909',39223,39224,4,0),(20895,'45910',38773,38774,4,0),(20896,'45917',39069,39070,4,0),(20897,'45918',39131,39132,4,0),(20898,'45919',38823,38824,4,0),(20899,'45920',38879,38880,4,0),(20900,'45930',39001,39002,4,0),(20901,'45940',39337,39338,4,0),(20902,'45950',38667,38668,4,0),(20903,'45960',38695,38696,4,0),(20904,'46001',40551,40552,4,0),(20905,'46002',40553,40554,4,0),(20906,'46003',40555,40556,4,0),(20907,'46004',40557,40558,4,0),(20908,'46005',40559,40560,4,0),(20909,'46006',40561,40562,4,0),(20910,'46007',40563,40564,4,0),(20911,'46008',40565,40566,4,0),(20912,'46009',40567,40568,4,0),(20913,'46010',40569,40570,4,0),(20914,'46011',40571,40572,4,0),(20915,'46012',40573,40574,4,0),(20916,'46013',40575,40576,4,0),(20917,'46014',40659,40660,4,0),(20918,'46014',40577,40578,4,0),(20919,'46015',40579,40580,4,0),(20920,'46016',40581,40582,4,0),(20921,'46016',40481,40482,4,0),(20922,'46017',40583,40584,4,0),(20923,'46018',40585,40586,4,0),(20924,'46019',40587,40588,4,0),(20925,'46020',40589,40590,4,0),(20926,'46021',40591,40592,4,0),(20927,'46022',40593,40594,4,0),(20928,'46023',40595,40596,4,0),(20929,'46024',40597,40598,4,0),(20930,'46025',40599,40600,4,0),(20931,'46026',40601,40602,4,0),(20932,'46035',40603,40604,4,0),(20933,'46100',39745,39746,4,0),(20934,'46109',39845,39846,4,0),(20935,'46110',40015,40016,4,0),(20936,'46111',40377,40378,4,0),(20937,'46112',40605,40606,4,0),(20938,'46113',40175,40176,4,0),(20939,'46114',40655,40656,4,0),(20940,'46115',39515,39516,4,0),(20941,'46117',39713,39714,4,0),(20942,'46118',40435,40436,4,0),(20943,'46119',40203,40204,4,0),(20944,'46120',39473,39474,4,0),(20945,'46128',39475,39476,4,0),(20946,'46129',39477,39478,4,0),(20947,'46130',40147,40148,4,0),(20948,'46131',39729,39730,4,0),(20949,'46131',40607,40608,4,0),(20950,'46132',39547,39548,4,0),(20951,'46133',40155,40156,4,0),(20952,'46134',39955,39956,4,0),(20953,'46135',39457,39458,4,0),(20954,'46135',39925,39926,4,0),(20955,'46135',40609,40610,4,0),(20956,'46136',40199,40200,4,0),(20957,'46137',40297,40298,4,0),(20958,'46138',40323,40324,4,0),(20959,'46139',40299,40300,4,0),(20960,'46140',40303,40304,4,0),(20961,'46140',39425,39426,4,0),(20962,'46141',39811,39812,4,0),(20963,'46143',40503,40504,4,0),(20964,'46145',40619,40620,4,0),(20965,'46146',39793,39794,4,0),(20966,'46147',39789,39790,4,0),(20967,'46148',39539,39540,4,0),(20968,'46149',40011,40012,4,0),(20969,'46160',40083,40084,4,0),(20970,'46162',40037,40038,4,0),(20971,'46163',40135,40136,4,0),(20972,'46164',40259,40260,4,0),(20973,'46165',39737,39738,4,0),(20974,'46166',40007,40008,4,0),(20975,'46167',39855,39856,4,0),(20976,'46168',40463,40464,4,0),(20977,'46169',39995,39996,4,0),(20978,'46169',40225,40226,4,0),(20979,'46170',40645,40646,4,0),(20980,'46170',39579,39580,4,0),(20981,'46171',39797,39798,4,0),(20982,'46172',39495,39496,4,0),(20983,'46173',39627,39628,4,0),(20984,'46173',40103,40104,4,0),(20985,'46174',39903,39904,4,0),(20986,'46175',39749,39750,4,0),(20987,'46176',39835,39836,4,0),(20988,'46177',40533,40534,4,0),(20989,'46178',40079,40080,4,0),(20990,'46178',39563,39564,4,0),(20991,'46178',40499,40500,4,0),(20992,'46179',39591,39592,4,0),(20993,'46180',39631,39632,4,0),(20994,'46181',39701,39702,4,0),(20995,'46181',40215,40216,4,0),(20996,'46182',40249,40250,4,0),(20997,'46183',40067,40068,4,0),(20998,'46184',40407,40408,4,0),(21001,'46190',40367,40368,4,0),(21002,'46191',40637,40638,4,0),(21003,'46192',40195,40196,4,0),(21004,'46193',40191,40192,4,0),(21005,'46194',40339,40340,4,0),(21006,'46195',40095,40096,4,0),(21007,'46196',39815,39816,4,0),(21008,'46197',39519,39520,4,0),(21009,'46198',39907,39908,4,0),(21010,'46199',40159,40160,4,0),(21011,'46199',40343,40344,4,0),(21012,'46199',39867,39868,4,0),(21013,'46200',40237,40238,4,0),(21014,'46210',40267,40268,4,0),(21015,'46220',40271,40272,4,0),(21016,'46220',39485,39486,4,0),(21017,'46230',39543,39544,4,0),(21018,'46240',39781,39782,4,0),(21019,'46250',40393,40394,4,0),(21020,'46250',40063,40064,4,0),(21021,'46260',39465,39466,4,0),(21022,'46266',39587,39588,4,0),(21023,'46267',39999,40000,4,0),(21024,'46268',39571,39572,4,0),(21025,'46269',40529,40530,4,0),(21026,'46270',40641,40642,4,0),(21027,'46290',39487,39488,4,0),(21028,'46291',39683,39684,4,0),(21029,'46292',40139,40140,4,0),(21030,'46293',39491,39492,4,0),(21031,'46293',39639,39640,4,0),(21032,'46294',39777,39778,4,0),(21033,'46294',39871,39872,4,0),(21034,'46295',40423,40424,4,0),(21035,'46295',40477,40478,4,0),(21036,'46300',40541,40542,4,0),(21037,'46310',40627,40628,4,0),(21038,'46311',40629,40630,4,0),(21039,'46312',40543,40544,4,0),(21040,'46313',40545,40546,4,0),(21041,'46314',39977,39978,4,0),(21042,'46315',39823,39824,4,0),(21043,'46317',40649,40650,4,0),(21044,'46318',40651,40652,4,0),(21045,'46320',40453,40454,4,0),(21046,'46321',40547,40548,4,0),(21047,'46330',39753,39754,4,0),(21048,'46340',40345,40346,4,0),(21049,'46350',39841,39842,4,0),(21050,'46351',39837,39838,4,0),(21051,'46351',40347,40348,4,0),(21052,'46352',40349,40350,4,0),(21053,'46353',40351,40352,4,0),(21054,'46354',40353,40354,4,0),(21055,'46355',40355,40356,4,0),(21056,'46356',40357,40358,4,0),(21057,'46357',40359,40360,4,0),(21058,'46360',39741,39742,4,0),(21059,'46367',40665,40666,4,0),(21060,'46368',40123,40124,4,0),(21061,'46369',39469,39470,4,0),(21062,'46370',39851,39852,4,0),(21063,'46380',39847,39848,4,0),(21064,'46388',40019,40020,4,0),(21065,'46389',40537,40538,4,0),(21066,'46390',40361,40362,4,0),(21067,'46391',40363,40364,4,0),(21068,'46392',40439,40440,4,0),(21069,'46393',40099,40100,4,0),(21070,'46400',39891,39892,4,0),(21071,'46408',39893,39894,4,0),(21072,'46409',39895,39896,4,0),(21073,'46410',40469,40470,4,0),(21074,'46417',40373,40374,4,0),(21075,'46418',39963,39964,4,0),(21076,'46419',40471,40472,4,0),(21077,'46420',40473,40474,4,0),(21078,'46430',40457,40458,4,0),(21079,'46439',40459,40460,4,0),(21080,'46440',39559,39560,4,0),(21081,'46450',39915,39916,4,0),(21082,'46450',39671,39672,4,0),(21083,'46460',40445,40446,4,0),(21084,'46469',39691,39692,4,0),(21085,'46470',39819,39820,4,0),(21086,'46470',40489,40490,4,0),(21087,'46470',39449,39450,4,0),(21088,'46470',40151,40152,4,0),(21090,'46500',40395,40396,4,0),(21091,'46501',40263,40264,4,0),(21092,'46510',39883,39884,4,0),(21093,'46511',39667,39668,4,0),(21094,'46512',39947,39948,4,0),(21095,'46514',39635,39636,4,0),(21096,'46515',39875,39876,4,0),(21097,'46520',40397,40398,4,0),(21098,'46529',39765,39766,4,0),(21099,'46530',40293,40294,4,0),(21100,'46530',40399,40400,4,0),(21101,'46540',39917,39918,4,0),(21102,'46550',39481,39482,4,0),(21103,'46560',40143,40144,4,0),(21104,'46590',39939,39940,4,0),(21105,'46591',39461,39462,4,0),(21106,'46592',40419,40420,4,0),(21107,'46593',39531,39532,4,0),(21108,'46594',39511,39512,4,0),(21109,'46595',40525,40526,4,0),(21110,'46600',39573,39574,4,0),(21111,'46600',40441,40442,4,0),(21112,'46610',40027,40028,4,0),(21113,'46611',39687,39688,4,0),(21114,'46612',39863,39864,4,0),(21115,'46613',40091,40092,4,0),(21116,'46614',39951,39952,4,0),(21117,'46620',39603,39604,4,0),(21118,'46621',40669,40670,4,0),(21119,'46622',40491,40492,4,0),(21120,'46623',40049,40050,4,0),(21121,'46624',40041,40042,4,0),(21122,'46625',39859,39860,4,0),(21123,'46630',39973,39974,4,0),(21124,'46635',39959,39960,4,0),(21125,'46640',40171,40172,4,0),(21126,'46650',39757,39758,4,0),(21127,'46659',39759,39760,4,0),(21128,'46660',40131,40132,4,0),(21129,'46661',39935,39936,4,0),(21130,'46666',40331,40332,4,0),(21131,'46667',39607,39608,4,0),(21132,'46668',40053,40054,4,0),(21133,'46668',40111,40112,4,0),(21134,'46669',40431,40432,4,0),(21135,'46669',40411,40412,4,0),(21136,'46670',40315,40316,4,0),(21137,'46680',39535,39536,4,0),(21138,'46687',39453,39454,4,0),(21139,'46688',40285,40286,4,0),(21140,'46689',39659,39660,4,0),(21141,'46690',39499,39500,4,0),(21142,'46691',40615,40616,4,0),(21143,'46692',40183,40184,4,0),(21144,'46701',39981,39982,4,0),(21145,'46702',39983,39984,4,0),(21146,'46703',39697,39698,4,0),(21147,'46710',39899,39900,4,0),(21148,'46711',40163,40164,4,0),(21149,'46711',40033,40034,4,0),(21150,'46712',40277,40278,4,0),(21151,'46713',39619,39620,4,0),(21152,'46714',40245,40246,4,0),(21153,'46715',39567,39568,4,0),(21154,'46716',40327,40328,4,0),(21155,'46717',39967,39968,4,0),(21156,'46717',39799,39800,4,0),(21157,'46720',40633,40634,4,0),(21158,'46721',40289,40290,4,0),(21159,'46722',39675,39676,4,0),(21160,'46722',39647,39648,4,0),(21161,'46723',39555,39556,4,0),(21162,'46724',40241,40242,4,0),(21163,'46725',39527,39528,4,0),(21164,'46725',40385,40386,4,0),(21165,'46726',40119,40120,4,0),(21166,'46726',39807,39808,4,0),(21167,'46726',39551,39552,4,0),(21168,'46727',39921,39922,4,0),(21169,'46728',39985,39986,4,0),(21170,'46729',39429,39430,4,0),(21171,'46730',39987,39988,4,0),(21172,'46740',39769,39770,4,0),(21173,'46749',39771,39772,4,0),(21174,'46750',40449,40450,4,0),(21175,'46758',39611,39612,4,0),(21176,'46760',40485,40486,4,0),(21177,'46760',39989,39990,4,0),(21178,'46770',40045,40046,4,0),(21179,'46780',40217,40218,4,0),(21180,'46790',40059,40060,4,0),(21181,'46791',39663,39664,4,0),(21182,'46792',39773,39774,4,0),(21183,'46792',39575,39576,4,0),(21184,'46800',40055,40056,4,0),(21185,'46810',39929,39930,4,0),(21186,'46811',39931,39932,4,0),(21187,'46812',39595,39596,4,0),(21188,'46813',39827,39828,4,0),(21189,'46813',39761,39762,4,0),(21190,'46814',40507,40508,4,0),(21191,'46814',40087,40088,4,0),(21192,'46814',40071,40072,4,0),(21193,'46815',40075,40076,4,0),(21194,'46816',40381,40382,4,0),(21195,'46817',39943,39944,4,0),(21196,'46818',40623,40624,4,0),(21197,'46819',40211,40212,4,0),(21198,'46820',39583,39584,4,0),(21199,'46821',39831,39832,4,0),(21200,'46822',39725,39726,4,0),(21201,'46823',40207,40208,4,0),(21202,'46824',40319,40320,4,0),(21203,'46825',39717,39718,4,0),(21204,'46830',39679,39680,4,0),(21205,'46837',39887,39888,4,0),(21206,'46838',39655,39656,4,0),(21207,'46838',40281,40282,4,0),(21208,'46838',40107,40108,4,0),(21209,'46839',39623,39624,4,0),(21210,'46839',39709,39710,4,0),(21211,'46839',40427,40428,4,0),(21212,'46839',40023,40024,4,0),(21215,'46841',39803,39804,4,0),(21216,'46842',40465,40466,4,0),(21217,'46842',39599,39600,4,0),(21218,'46842',40187,40188,4,0),(21219,'46842',40495,40496,4,0),(21220,'46842',40389,40390,4,0),(21221,'46843',40403,40404,4,0),(21222,'46843',40335,40336,4,0),(21223,'46844',40233,40234,4,0),(21224,'46844',39651,39652,4,0),(21225,'46850',40221,40222,4,0),(21226,'46860',39445,39446,4,0),(21227,'46868',39615,39616,4,0),(21228,'46869',39705,39706,4,0),(21229,'46869',39433,39434,4,0),(21230,'46869',39785,39786,4,0),(21231,'46870',40229,40230,4,0),(21232,'46880',39721,39722,4,0),(21233,'46890',39437,39438,4,0),(21234,'46891',39733,39734,4,0),(21235,'46891',39911,39912,4,0),(21236,'46892',40179,40180,4,0),(21237,'46893',39523,39524,4,0),(21238,'46894',40003,40004,4,0),(21241,'46910',40415,40416,4,0),(21242,'46910',40115,40116,4,0),(21243,'46910',39507,39508,4,0),(21244,'46910',39643,39644,4,0),(21245,'46920',40167,40168,4,0),(21246,'46930',39879,39880,4,0),(21247,'46940',40127,40128,4,0),(21248,'46950',40661,40662,4,0),(21249,'46960',39503,39504,4,0),(21250,'46970',39441,39442,4,0),(21251,'46980',40251,40252,4,0),(21252,'46988',40253,40254,4,0),(21253,'46989',40255,40256,4,0),(21254,'47001',41441,41442,4,0),(21255,'47002',41443,41444,4,0),(21256,'47003',41445,41446,4,0),(21257,'47004',41447,41448,4,0),(21258,'47005',41449,41450,4,0),(21259,'47006',41451,41452,4,0),(21260,'47007',41453,41454,4,0),(21261,'47008',41455,41456,4,0),(21262,'47009',41457,41458,4,0),(21263,'47010',41459,41460,4,0),(21264,'47011',41461,41462,4,0),(21265,'47012',41463,41464,4,0),(21266,'47013',41465,41466,4,0),(21267,'47014',41467,41468,4,0),(21268,'47015',41469,41470,4,0),(21269,'47016',41471,41472,4,0),(21270,'47017',41473,41474,4,0),(21271,'47018',41475,41476,4,0),(21272,'47100',41359,41360,4,0),(21273,'47110',40813,40814,4,0),(21274,'47111',41579,41580,4,0),(21275,'47112',41139,41140,4,0),(21276,'47113',41361,41362,4,0),(21277,'47113',41591,41592,4,0),(21278,'47114',41029,41030,4,0),(21279,'47114',41511,41512,4,0),(21280,'47114',41377,41378,4,0),(21281,'47115',40741,40742,4,0),(21282,'47115',40745,40746,4,0),(21283,'47116',41185,41186,4,0),(21284,'47120',41093,41094,4,0),(21285,'47129',40729,40730,4,0),(21286,'47129',41269,41270,4,0),(21287,'47129',41297,41298,4,0),(21288,'47129',41385,41386,4,0),(21289,'47129',40675,40676,4,0),(21290,'47130',41343,41344,4,0),(21291,'47131',41241,41242,4,0),(21292,'47131',41603,41604,4,0),(21293,'47131',40957,40958,4,0),(21294,'47131',41515,41516,4,0),(21295,'47132',41363,41364,4,0),(21296,'47132',41285,41286,4,0),(21297,'47133',41503,41504,4,0),(21298,'47133',41019,41020,4,0),(21299,'47134',41637,41638,4,0),(21300,'47134',41389,41390,4,0),(21301,'47134',41305,41306,4,0),(21302,'47134',40949,40950,4,0),(21303,'47140',40997,40998,4,0),(21304,'47140',41477,41478,4,0),(21305,'47150',41523,41524,4,0),(21306,'47151',40765,40766,4,0),(21307,'47152',41479,41480,4,0),(21308,'47153',41481,41482,4,0),(21309,'47155',41327,41328,4,0),(21310,'47160',41189,41190,4,0),(21311,'47160',40695,40696,4,0),(21312,'47161',41405,41406,4,0),(21313,'47162',40699,40700,4,0),(21314,'47164',41281,41282,4,0),(21315,'47165',40797,40798,4,0),(21316,'47166',41657,41658,4,0),(21317,'47169',40701,40702,4,0),(21318,'47169',41407,41408,4,0),(21319,'47169',40999,41000,4,0),(21320,'47170',41233,41234,4,0),(21321,'47171',40845,40846,4,0),(21322,'47172',41633,41634,4,0),(21323,'47173',41123,41124,4,0),(21324,'47175',41173,41174,4,0),(21325,'47176',40917,40918,4,0),(21326,'47177',40709,40710,4,0),(21327,'47180',41563,41564,4,0),(21328,'47181',41547,41548,4,0),(21329,'47182',40857,40858,4,0),(21330,'47183',41367,41368,4,0),(21331,'47184',40921,40922,4,0),(21332,'47185',40805,40806,4,0),(21333,'47186',41071,41072,4,0),(21334,'47186',40913,40914,4,0),(21335,'47190',41661,41662,4,0),(21336,'47191',40873,40874,4,0),(21337,'47192',40833,40834,4,0),(21338,'47193',40877,40878,4,0),(21339,'47194',41097,41098,4,0),(21340,'47194',40937,40938,4,0),(21341,'47195',40713,40714,4,0),(21342,'47196',40981,40982,4,0),(21343,'47197',41483,41484,4,0),(21344,'47198',41485,41486,4,0),(21345,'47200',41491,41492,4,0),(21346,'47209',41277,41278,4,0),(21347,'47210',40717,40718,4,0),(21348,'47219',41289,41290,4,0),(21349,'47219',41265,41266,4,0),(21350,'47219',41101,41102,4,0),(21351,'47220',41197,41198,4,0),(21352,'47230',41023,41024,4,0),(21353,'47238',41025,41026,4,0),(21354,'47238',40965,40966,4,0),(21355,'47238',40691,40692,4,0),(21356,'47239',41335,41336,4,0),(21357,'47239',41611,41612,4,0),(21358,'47239',41519,41520,4,0),(21359,'47240',41433,41434,4,0),(21360,'47250',41063,41064,4,0),(21361,'47260',40781,40782,4,0),(21362,'47270',40869,40870,4,0),(21363,'47280',40889,40890,4,0),(21364,'47281',40891,40892,4,0),(21365,'47282',41401,41402,4,0),(21366,'47283',41217,41218,4,0),(21367,'47290',40899,40900,4,0),(21368,'47300',41143,41144,4,0),(21369,'47310',40793,40794,4,0),(21370,'47311',40801,40802,4,0),(21371,'47311',40925,40926,4,0),(21372,'47312',40721,40722,4,0),(21373,'47313',41371,41372,4,0),(21374,'47313',40885,40886,4,0),(21375,'47313',41145,41146,4,0),(21376,'47313',41393,41394,4,0),(21377,'47314',41003,41004,4,0),(21378,'47314',41015,41016,4,0),(21379,'47314',41147,41148,4,0),(21380,'47315',41169,41170,4,0),(21381,'47316',41245,41246,4,0),(21382,'47316',40907,40908,4,0),(21383,'47316',41177,41178,4,0),(21384,'47316',41181,41182,4,0),(21385,'47317',41425,41426,4,0),(21386,'47317',40761,40762,4,0),(21387,'47317',41273,41274,4,0),(21388,'47317',40895,40896,4,0),(21389,'47318',41127,41128,4,0),(21390,'47318',40821,40822,4,0),(21391,'47318',41149,41150,4,0),(21392,'47319',41373,41374,4,0),(21393,'47319',41225,41226,4,0),(21394,'47320',41077,41078,4,0),(21395,'47320',41409,41410,4,0),(21396,'47328',40977,40978,4,0),(21397,'47329',40825,40826,4,0),(21398,'47329',41527,41528,4,0),(21399,'47329',41641,41642,4,0),(21400,'47330',41321,41322,4,0),(21401,'47330',41397,41398,4,0),(21402,'47331',41323,41324,4,0),(21403,'47340',41331,41332,4,0),(21404,'47350',41213,41214,4,0),(21405,'47359',41421,41422,4,0),(21406,'47359',41113,41114,4,0),(21407,'47360',41209,41210,4,0),(21408,'47400',41043,41044,4,0),(21409,'47410',41117,41118,4,0),(21410,'47418',40679,40680,4,0),(21411,'47418',41007,41008,4,0),(21412,'47418',40945,40946,4,0),(21413,'47419',40705,40706,4,0),(21414,'47419',40757,40758,4,0),(21415,'47419',41205,41206,4,0),(21416,'47420',40969,40970,4,0),(21417,'47428',33401,33402,4,0),(21418,'47430',41135,41136,4,0),(21419,'47440',40881,40882,4,0),(21420,'47440',41051,41052,4,0),(21421,'47450',41193,41194,4,0),(21422,'47451',41119,41120,4,0),(21423,'47453',41229,41230,4,0),(21424,'47454',41085,41086,4,0),(21425,'47460',17987,17988,4,0),(21426,'47461',40773,40774,4,0),(21427,'47462',40753,40754,4,0),(21428,'47463',41507,41508,4,0),(21429,'47464',41109,41110,4,0),(21430,'47465',41649,41650,4,0),(21431,'47470',40809,40810,4,0),(21432,'47480',40933,40934,4,0),(21433,'47490',41253,41254,4,0),(21434,'47491',40985,40986,4,0),(21435,'47492',41045,41046,4,0),(21436,'47492',41255,41256,4,0),(21437,'47493',41309,41310,4,0),(21438,'47493',41047,41048,4,0),(21439,'47494',41011,41012,4,0),(21440,'47494',41249,41250,4,0),(21441,'47494',40941,40942,4,0),(21442,'47494',40865,40866,4,0),(21443,'47500',41105,41106,4,0),(21444,'47509',41257,41258,4,0),(21445,'47510',40687,40688,4,0),(21446,'47511',41339,41340,4,0),(21447,'47512',40817,40818,4,0),(21448,'47513',41381,41382,4,0),(21449,'47520',40849,40850,4,0),(21450,'47529',41555,41556,4,0),(21451,'47530',41301,41302,4,0),(21452,'47600',41595,41596,4,0),(21453,'47606',40953,40954,4,0),(21454,'47606',41551,41552,4,0),(21455,'47607',40961,40962,4,0),(21456,'47607',41543,41544,4,0),(21457,'47608',41615,41616,4,0),(21458,'47608',41571,41572,4,0),(21459,'47608',40777,40778,4,0),(21460,'47609',40929,40930,4,0),(21461,'47609',41317,41318,4,0),(21462,'47609',41539,41540,4,0),(21463,'47609',41499,41500,4,0),(21464,'47610',41665,41666,4,0),(21465,'47620',41607,41608,4,0),(21466,'47630',40973,40974,4,0),(21467,'47639',41587,41588,4,0),(21468,'47640',41165,41166,4,0),(21469,'47641',40841,40842,4,0),(21470,'47650',40903,40904,4,0),(21471,'47664',40853,40854,4,0),(21472,'47670',40733,40734,4,0),(21473,'47670',40989,40990,4,0),(21474,'47671',41413,41414,4,0),(21475,'47672',41437,41438,4,0),(21476,'47673',41221,41222,4,0),(21477,'47673',41237,41238,4,0),(21478,'47674',40725,40726,4,0),(21479,'47675',41575,41576,4,0),(21480,'47675',40769,40770,4,0),(21481,'47676',41653,41654,4,0),(21482,'47680',41033,41034,4,0),(21483,'47686',41059,41060,4,0),(21484,'47687',41055,41056,4,0),(21485,'47688',41067,41068,4,0),(21486,'47689',41261,41262,4,0),(21487,'47689',40829,40830,4,0),(21488,'47689',40785,40786,4,0),(21489,'47689',41583,41584,4,0),(21490,'47690',41495,41496,4,0),(21491,'47691',41081,41082,4,0),(21492,'47692',40861,40862,4,0),(21493,'47800',41037,41038,4,0),(21494,'47801',41487,41488,4,0),(21495,'47810',41559,41560,4,0),(21496,'47811',41089,41090,4,0),(21497,'47811',41313,41314,4,0),(21498,'47812',41131,41132,4,0),(21499,'47813',40749,40750,4,0),(21500,'47813',41625,41626,4,0),(21501,'47814',40683,40684,4,0),(21502,'47814',41599,41600,4,0),(21503,'47815',41531,41532,4,0),(21504,'47815',41347,41348,4,0),(21505,'47816',41039,41040,4,0),(21506,'47816',41073,41074,4,0),(21507,'47816',41429,41430,4,0),(21508,'47820',41535,41536,4,0),(21509,'47830',41355,41356,4,0),(21510,'47831',41201,41202,4,0),(21511,'47832',40789,40790,4,0),(21512,'47840',41567,41568,4,0),(21513,'47850',41619,41620,4,0),(21514,'47851',41293,41294,4,0),(21515,'47860',41629,41630,4,0),(21516,'47862',41417,41418,4,0),(21517,'47870',41351,41352,4,0),(21518,'47880',40737,40738,4,0),(21519,'47882',40837,40838,4,0),(21520,'47883',41645,41646,4,0),(21521,'48001',41801,41802,4,0),(21522,'48002',41803,41804,4,0),(21523,'48003',41729,41730,4,0),(21524,'48003',41805,41806,4,0),(21525,'48004',41807,41808,4,0),(21526,'48005',41809,41810,4,0),(21527,'48006',41811,41812,4,0),(21528,'48007',41813,41814,4,0),(21529,'48008',41815,41816,4,0),(21530,'48009',41817,41818,4,0),(21531,'48010',41819,41820,4,0),(21532,'48011',41821,41822,4,0),(21533,'48012',41823,41824,4,0),(21534,'48013',41825,41826,4,0),(21535,'48014',41827,41828,4,0),(21536,'48015',41829,41830,4,0),(21537,'48100',42067,42068,4,0),(21538,'48110',41913,41914,4,0),(21539,'48111',41999,42000,4,0),(21540,'48112',42043,42044,4,0),(21541,'48113',41905,41906,4,0),(21542,'48114',41725,41726,4,0),(21543,'48115',42059,42060,4,0),(21544,'48116',41893,41894,4,0),(21545,'48120',42047,42048,4,0),(21546,'48120',42069,42070,4,0),(21547,'48130',41753,41754,4,0),(21548,'48140',41703,41704,4,0),(21549,'48140',41965,41966,4,0),(21550,'48141',41843,41844,4,0),(21551,'48142',41735,41736,4,0),(21552,'48143',41707,41708,4,0),(21553,'48144',42201,42202,4,0),(21554,'48145',42155,42156,4,0),(21555,'48150',42129,42130,4,0),(21556,'48160',42163,42164,4,0),(21557,'48160',41837,41838,4,0),(21558,'48170',42193,42194,4,0),(21559,'48170',41839,41840,4,0),(21560,'48180',42023,42024,4,0),(21561,'48190',42137,42138,4,0),(21562,'48191',41901,41902,4,0),(21563,'48191',42139,42140,4,0),(21564,'48192',41941,41942,4,0),(21565,'48194',41943,41944,4,0),(21566,'48195',41995,41996,4,0),(21567,'48196',42019,42020,4,0),(21568,'48200',41909,41910,4,0),(21569,'48200',41847,41848,4,0),(21570,'48210',42109,42110,4,0),(21571,'48212',42031,42032,4,0),(21572,'48213',41977,41978,4,0),(21573,'48215',41973,41974,4,0),(21574,'48220',41671,41672,4,0),(21575,'48230',41861,41862,4,0),(21576,'48240',41795,41796,4,0),(21577,'48249',41797,41798,4,0),(21578,'48250',42181,42182,4,0),(21579,'48260',41873,41874,4,0),(21580,'48269',42027,42028,4,0),(21581,'48270',42035,42036,4,0),(21582,'48276',42037,42038,4,0),(21583,'48277',41885,41886,4,0),(21584,'48278',42213,42214,4,0),(21585,'48278',42039,42040,4,0),(21586,'48280',42007,42008,4,0),(21587,'48287',41851,41852,4,0),(21588,'48288',41969,41970,4,0),(21589,'48289',41695,41696,4,0),(21590,'48289',42055,42056,4,0),(21591,'48289',41937,41938,4,0),(21592,'48291',41743,41744,4,0),(21593,'48292',41745,41746,4,0),(21594,'48300',41921,41922,4,0),(21595,'48309',41877,41878,4,0),(21596,'48310',41857,41858,4,0),(21597,'48311',41853,41854,4,0),(21598,'48311',41961,41962,4,0),(21599,'48312',42091,42092,4,0),(21600,'48313',41869,41870,4,0),(21601,'48314',41917,41918,4,0),(21602,'48315',41987,41988,4,0),(21603,'48320',41681,41682,4,0),(21604,'48330',42011,42012,4,0),(21605,'48340',41689,41690,4,0),(21606,'48348',41691,41692,4,0),(21607,'48350',41833,41834,4,0),(21608,'48360',42063,42064,4,0),(21609,'48370',41787,41788,4,0),(21610,'48380',41749,41750,4,0),(21611,'48381',42073,42074,4,0),(21612,'48382',42051,42052,4,0),(21613,'48383',41717,41718,4,0),(21614,'48390',41719,41720,4,0),(21615,'48390',41779,41780,4,0),(21616,'48391',41721,41722,4,0),(21617,'48391',42085,42086,4,0),(21618,'48392',42087,42088,4,0),(21619,'48393',41889,41890,4,0),(21620,'48394',42077,42078,4,0),(21621,'48395',42147,42148,4,0),(21622,'48410',42099,42100,4,0),(21623,'48419',42101,42102,4,0),(21624,'48450',41881,41882,4,0),(21625,'48460',42169,42170,4,0),(21626,'48480',42197,42198,4,0),(21627,'48480',41731,41732,4,0),(21628,'48490',42159,42160,4,0),(21629,'48498',41711,41712,4,0),(21630,'48498',41699,41700,4,0),(21631,'48498',42171,42172,4,0),(21632,'48499',41713,41714,4,0),(21633,'48499',42205,42206,4,0),(21634,'48500',41675,41676,4,0),(21635,'48508',42209,42210,4,0),(21636,'48510',42175,42176,4,0),(21637,'48520',42177,42178,4,0),(21638,'48530',42105,42106,4,0),(21639,'48540',41677,41678,4,0),(21640,'48550',42081,42082,4,0),(21641,'48600',42133,42134,4,0),(21642,'48610',42165,42166,4,0),(21643,'48620',42113,42114,4,0),(21644,'48620',41947,41948,4,0),(21645,'48620',42015,42016,4,0),(21646,'48630',41949,41950,4,0),(21647,'48640',41783,41784,4,0),(21648,'48650',41771,41772,4,0),(21649,'48700',42095,42096,4,0),(21650,'48710',41791,41792,4,0),(21651,'48800',41757,41758,4,0),(21652,'48810',41685,41686,4,0),(21653,'48820',41953,41954,4,0),(21654,'48830',41955,41956,4,0),(21655,'48840',41957,41958,4,0),(21656,'48850',42185,42186,4,0),(21657,'48860',42187,42188,4,0),(21658,'48869',42141,42142,4,0),(21659,'48869',42189,42190,4,0),(21660,'48870',42143,42144,4,0),(21661,'48879',41739,41740,4,0),(21662,'48880',42151,42152,4,0),(21663,'48890',41981,41982,4,0),(21664,'48891',41983,41984,4,0),(21665,'48895',41991,41992,4,0),(21666,'48901',41761,41762,4,0),(21667,'48902',41763,41764,4,0),(21668,'48903',41765,41766,4,0),(21669,'48910',42125,42126,4,0),(21670,'48920',42117,42118,4,0),(21671,'48930',41925,41926,4,0),(21672,'48940',42003,42004,4,0),(21673,'48950',41865,41866,4,0),(21674,'48960',41897,41898,4,0),(21675,'48970',41775,41776,4,0),(21676,'48980',42121,42122,4,0),(21677,'48990',41927,41928,4,0),(21678,'48991',41929,41930,4,0),(21679,'48992',41931,41932,4,0),(21680,'48993',41933,41934,4,0),(21681,'49001',43469,43470,4,0),(21682,'49002',43471,43472,4,0),(21683,'49003',43473,43474,4,0),(21684,'49004',43475,43476,4,0),(21685,'49005',43477,43478,4,0),(21686,'49006',43479,43480,4,0),(21687,'49007',43481,43482,4,0),(21688,'49008',43483,43484,4,0),(21689,'49009',43485,43486,4,0),(21690,'49010',43487,43488,4,0),(21691,'49011',43489,43490,4,0),(21692,'49012',43491,43492,4,0),(21693,'49013',43493,43494,4,0),(21694,'49014',43495,43496,4,0),(21695,'49015',43497,43498,4,0),(21696,'49016',43499,43500,4,0),(21697,'49017',43501,43502,4,0),(21698,'49018',43503,43504,4,0),(21699,'49019',43505,43506,4,0),(21700,'49020',43507,43508,4,0),(21701,'49021',43509,43510,4,0),(21702,'49022',43511,43512,4,0),(21703,'49023',43513,43514,4,0),(21704,'49024',43515,43516,4,0),(21705,'49025',43517,43518,4,0),(21706,'49026',43519,43520,4,0),(21707,'49027',43521,43522,4,0),(21708,'49028',43523,43524,4,0),(21709,'49029',43525,43526,4,0),(21710,'49030',43527,43528,4,0),(21711,'49031',43529,43530,4,0),(21712,'49032',43531,43532,4,0),(21713,'49100',43401,43402,4,0),(21714,'49110',42407,42408,4,0),(21715,'49120',42759,42760,4,0),(21716,'49121',42767,42768,4,0),(21717,'49121',42775,42776,4,0),(21718,'49122',43233,43234,4,0),(21719,'49123',42313,42314,4,0),(21720,'49124',42283,42284,4,0),(21721,'49125',42419,42420,4,0),(21722,'49126',43347,43348,4,0),(21723,'49126',42275,42276,4,0),(21724,'49127',42947,42948,4,0),(21725,'49127',42403,42404,4,0),(21726,'49128',42375,42376,4,0),(21727,'49129',43433,43434,4,0),(21728,'49129',43121,43122,4,0),(21729,'49130',42709,42710,4,0),(21730,'49131',43371,43372,4,0),(21731,'49132',43405,43406,4,0),(21732,'49133',43285,43286,4,0),(21733,'49134',43355,43356,4,0),(21734,'49135',43093,43094,4,0),(21735,'49135',43301,43302,4,0),(21736,'49135',43037,43038,4,0),(21737,'49136',43329,43330,4,0),(21738,'49137',43441,43442,4,0),(21739,'49137',43331,43332,4,0),(21740,'49140',43211,43212,4,0),(21741,'49141',42507,42508,4,0),(21742,'49142',42863,42864,4,0),(21743,'49143',42935,42936,4,0),(21744,'49144',43097,43098,4,0),(21745,'49145',42925,42926,4,0),(21746,'49145',43171,43172,4,0),(21747,'49146',42849,42850,4,0),(21748,'49147',42851,42852,4,0),(21749,'49148',42979,42980,4,0),(21750,'49148',42821,42822,4,0),(21751,'49149',42779,42780,4,0),(21752,'49150',42791,42792,4,0),(21753,'49151',42259,42260,4,0),(21754,'49151',42391,42392,4,0),(21755,'49151',42619,42620,4,0),(21756,'49152',43207,43208,4,0),(21757,'49153',43293,43294,4,0),(21758,'49154',42475,42476,4,0),(21759,'49155',42655,42656,4,0),(21760,'49156',42635,42636,4,0),(21761,'49157',42689,42690,4,0),(21762,'49158',43343,43344,4,0),(21763,'49159',43419,43420,4,0),(21764,'49160',42379,42380,4,0),(21765,'49161',43173,43174,4,0),(21766,'49162',42875,42876,4,0),(21767,'49162',42255,42256,4,0),(21768,'49163',42731,42732,4,0),(21769,'49164',42833,42834,4,0),(21770,'49164',43305,43306,4,0),(21771,'49165',42835,42836,4,0),(21772,'49165',43307,43308,4,0),(21773,'49166',43351,43352,4,0),(21774,'49167',42837,42838,4,0),(21775,'49170',42479,42480,4,0),(21776,'49171',42905,42906,4,0),(21777,'49172',42907,42908,4,0),(21778,'49173',42909,42910,4,0),(21779,'49174',42911,42912,4,0),(21780,'49174',42555,42556,4,0),(21781,'49176',42893,42894,4,0),(21782,'49177',42237,42238,4,0),(21783,'49177',42787,42788,4,0),(21784,'49177',42895,42896,4,0),(21785,'49177',42249,42250,4,0),(21786,'49178',42897,42898,4,0),(21787,'49180',42245,42246,4,0),(21788,'49181',43445,43446,4,0),(21789,'49182',43137,43138,4,0),(21790,'49183',43139,43140,4,0),(21791,'49190',42807,42808,4,0),(21792,'49191',42411,42412,4,0),(21793,'49191',42645,42646,4,0),(21794,'49191',42889,42890,4,0),(21795,'49191',42809,42810,4,0),(21796,'49192',42659,42660,4,0),(21797,'49192',43055,43056,4,0),(21798,'49192',43261,43262,4,0),(21799,'49193',43533,43534,4,0),(21800,'49200',42317,42318,4,0),(21801,'49210',42251,42252,4,0),(21802,'49211',42319,42320,4,0),(21803,'49211',42383,42384,4,0),(21804,'49211',43085,43086,4,0),(21805,'49211',43069,43070,4,0),(21806,'49212',42841,42842,4,0),(21807,'49213',42511,42512,4,0),(21808,'49214',42513,42514,4,0),(21809,'49215',42321,42322,4,0),(21810,'49215',42685,42686,4,0),(21811,'49216',42323,42324,4,0),(21812,'49216',42557,42558,4,0),(21813,'49220',42517,42518,4,0),(21814,'49230',43409,43410,4,0),(21815,'49231',43411,43412,4,0),(21816,'49232',43413,43414,4,0),(21817,'49240',43415,43416,4,0),(21818,'49250',43429,43430,4,0),(21819,'49250',43321,43322,4,0),(21820,'49251',42267,42268,4,0),(21821,'49251',42615,42616,4,0),(21822,'49252',43229,43230,4,0),(21823,'49253',42813,42814,4,0),(21824,'49254',42783,42784,4,0),(21825,'49255',42325,42326,4,0),(21826,'49260',42327,42328,4,0),(21827,'49270',42913,42914,4,0),(21828,'49271',42915,42916,4,0),(21829,'49272',42917,42918,4,0),(21830,'49280',42919,42920,4,0),(21831,'49281',42921,42922,4,0),(21832,'49300',42987,42988,4,0),(21833,'49310',42769,42770,4,0),(21834,'49317',42423,42424,4,0),(21835,'49317',42725,42726,4,0),(21836,'49318',42901,42902,4,0),(21837,'49318',43047,43048,4,0),(21838,'49318',42771,42772,4,0),(21839,'49319',42727,42728,4,0),(21840,'49319',42825,42826,4,0),(21841,'49320',42867,42868,4,0),(21842,'49320',43059,43060,4,0),(21843,'49321',42869,42870,4,0),(21844,'49321',43061,43062,4,0),(21845,'49322',43073,43074,4,0),(21846,'49322',42871,42872,4,0),(21847,'49323',43075,43076,4,0),(21848,'49324',42287,42288,4,0),(21849,'49324',43077,43078,4,0),(21850,'49325',42289,42290,4,0),(21851,'49325',42425,42426,4,0),(21852,'49326',43049,43050,4,0),(21853,'49327',42763,42764,4,0),(21854,'49327',42459,42460,4,0),(21855,'49327',43253,43254,4,0),(21856,'49330',43051,43052,4,0),(21857,'49330',43277,43278,4,0),(21858,'49331',42359,42360,4,0),(21859,'49331',43279,43280,4,0),(21860,'49332',42363,42364,4,0),(21861,'49332',43281,43282,4,0),(21862,'49333',43181,43182,4,0),(21863,'49333',42995,42996,4,0),(21864,'49333',43397,43398,4,0),(21865,'49334',42521,42522,4,0),(21866,'49335',42523,42524,4,0),(21867,'49335',42527,42528,4,0),(21868,'49336',42857,42858,4,0),(21869,'49337',42859,42860,4,0),(21870,'49337',42529,42530,4,0),(21871,'49340',42649,42650,4,0),(21872,'49341',42495,42496,4,0),(21873,'49341',42827,42828,4,0),(21874,'49342',42497,42498,4,0),(21875,'49342',43079,43080,4,0),(21876,'49343',42651,42652,4,0),(21877,'49344',42829,42830,4,0),(21878,'49345',42499,42500,4,0),(21879,'49346',42501,42502,4,0),(21880,'49347',42503,42504,4,0),(21881,'49348',42291,42292,4,0),(21882,'49349',43081,43082,4,0),(21883,'49350',42589,42590,4,0),(21884,'49352',42591,42592,4,0),(21885,'49357',43063,43064,4,0),(21886,'49357',43113,43114,4,0),(21887,'49358',43247,43248,4,0),(21888,'49358',43115,43116,4,0),(21889,'49359',43249,43250,4,0),(21890,'49359',43117,43118,4,0),(21891,'49360',42593,42594,4,0),(21892,'49361',42595,42596,4,0),(21893,'49362',42597,42598,4,0),(21894,'49390',43065,43066,4,0),(21895,'49390',42989,42990,4,0),(21896,'49391',42879,42880,4,0),(21897,'49392',42881,42882,4,0),(21898,'49393',42991,42992,4,0),(21899,'49394',42429,42430,4,0),(21900,'49394',43033,43034,4,0),(21901,'49395',42431,42432,4,0),(21902,'49395',42599,42600,4,0),(21903,'49396',42433,42434,4,0),(21904,'49400',42577,42578,4,0),(21905,'49410',42569,42570,4,0),(21906,'49419',42395,42396,4,0),(21907,'49420',43257,43258,4,0),(21908,'49430',43325,43326,4,0),(21909,'49440',42371,42372,4,0),(21910,'49450',43273,43274,4,0),(21911,'49500',42223,42224,4,0),(21912,'49510',37839,37840,4,0),(21913,'49511',37841,37842,4,0),(21914,'49512',37843,37844,4,0),(21915,'49512',42607,42608,4,0),(21916,'49512',43019,43020,4,0),(21917,'49513',37845,37846,4,0),(21918,'49513',43089,43090,4,0),(21919,'49514',37847,37848,4,0),(21920,'49514',42225,42226,4,0),(21921,'49514',42943,42944,4,0),(21922,'49515',43461,43462,4,0),(21923,'49515',43025,43026,4,0),(21924,'49516',43237,43238,4,0),(21925,'49517',43239,43240,4,0),(21926,'49517',43463,43464,4,0),(21927,'49517',42227,42228,4,0),(21928,'49518',42229,42230,4,0),(21929,'49518',43027,43028,4,0),(21930,'49518',43241,43242,4,0),(21931,'49519',43243,43244,4,0),(21932,'49519',43021,43022,4,0),(21933,'49520',42539,42540,4,0),(21934,'49521',42541,42542,4,0),(21935,'49522',42693,42694,4,0),(21936,'49523',43147,43148,4,0),(21937,'49524',43149,43150,4,0),(21938,'49524',43465,43466,4,0),(21939,'49525',43029,43030,4,0),(21940,'49525',43151,43152,4,0),(21941,'49530',42441,42442,4,0),(21942,'49539',42603,42604,4,0),(21943,'49539',43367,43368,4,0),(21944,'49539',42241,42242,4,0),(21945,'49540',42533,42534,4,0),(21946,'49540',42673,42674,4,0),(21947,'49540',42853,42854,4,0),(21948,'49541',42667,42668,4,0),(21949,'49542',43289,43290,4,0),(21950,'49542',42609,42610,4,0),(21951,'49543',42669,42670,4,0),(21952,'49550',42535,42536,4,0),(21953,'49559',42611,42612,4,0),(21954,'49560',42695,42696,4,0),(21955,'49561',42697,42698,4,0),(21956,'49562',43423,43424,4,0),(21957,'49563',43425,43426,4,0),(21958,'49570',42677,42678,4,0),(21959,'49571',42639,42640,4,0),(21960,'49572',42641,42642,4,0),(21961,'49573',42679,42680,4,0),(21962,'49574',42681,42682,4,0),(21963,'49580',42929,42930,4,0),(21964,'49582',42931,42932,4,0),(21965,'49583',42955,42956,4,0),(21966,'49590',42739,42740,4,0),(21967,'49590',42551,42552,4,0),(21968,'49591',43041,43042,4,0),(21969,'49592',43143,43144,4,0),(21970,'49592',43043,43044,4,0),(21971,'49593',42719,42720,4,0),(21972,'49594',42721,42722,4,0),(21973,'49600',42309,42310,4,0),(21974,'49610',43191,43192,4,0),(21975,'49610',42295,42296,4,0),(21976,'49618',42565,42566,4,0),(21977,'49618',43339,43340,4,0),(21978,'49618',43193,43194,4,0),(21979,'49619',42297,42298,4,0),(21980,'49619',43195,43196,4,0),(21981,'49620',43163,43164,4,0),(21982,'49621',42629,42630,4,0),(21983,'49621',43197,43198,4,0),(21984,'49622',43199,43200,4,0),(21985,'49622',43001,43002,4,0),(21986,'49622',43013,43014,4,0),(21987,'49622',42343,42344,4,0),(21988,'49622',42631,42632,4,0),(21989,'49623',43015,43016,4,0),(21990,'49623',43379,43380,4,0),(21991,'49624',43185,43186,4,0),(21992,'49624',42751,42752,4,0),(21993,'49625',43187,43188,4,0),(21994,'49626',42365,42366,4,0),(21995,'49626',43167,43168,4,0),(21996,'49626',42747,42748,4,0),(21997,'49627',42367,42368,4,0),(21998,'49628',43133,43134,4,0),(21999,'49629',42339,42340,4,0),(22000,'49630',43363,43364,4,0),(22001,'49638',43009,43010,4,0),(22002,'49638',42983,42984,4,0),(22003,'49639',42451,42452,4,0),(22004,'49639',43215,43216,4,0),(22005,'49639',43005,43006,4,0),(22006,'49640',42415,42416,4,0),(22007,'49650',43109,43110,4,0),(22008,'49660',43387,43388,4,0),(22009,'49660',42399,42400,4,0),(22010,'49670',42573,42574,4,0),(22011,'49680',43269,43270,4,0),(22012,'49680',43129,43130,4,0),(22013,'49690',43103,43104,4,0),(22014,'49691',43105,43106,4,0),(22015,'49692',42735,42736,4,0),(22016,'49693',42795,42796,4,0),(22017,'49693',42547,42548,4,0),(22018,'49694',42715,42716,4,0),(22019,'49695',43335,43336,4,0),(22020,'49696',42279,42280,4,0),(22021,'49696',42233,42234,4,0),(22022,'49696',43177,43178,4,0),(22023,'49697',43381,43382,4,0),(22024,'49697',42845,42846,4,0),(22025,'49697',42803,42804,4,0),(22026,'49697',43453,43454,4,0),(22027,'49697',42997,42998,4,0),(22028,'49698',42335,42336,4,0),(22029,'49698',42561,42562,4,0),(22030,'49698',43383,43384,4,0),(22031,'49698',42347,42348,4,0),(22032,'49699',42755,42756,4,0),(22033,'49699',43159,43160,4,0),(22034,'49699',43389,43390,4,0),(22035,'49699',42263,42264,4,0),(22036,'49700',42445,42446,4,0),(22037,'49706',42447,42448,4,0),(22038,'49707',43155,43156,4,0),(22039,'49708',42387,42388,4,0),(22040,'49708',43393,43394,4,0),(22041,'49709',42355,42356,4,0),(22042,'49710',42467,42468,4,0),(22043,'49714',42585,42586,4,0),(22044,'49715',42487,42488,4,0),(22045,'49716',42271,42272,4,0),(22046,'49717',43125,43126,4,0),(22047,'49717',42463,42464,4,0),(22048,'49718',42743,42744,4,0),(22049,'49719',43375,43376,4,0),(22050,'49719',42471,42472,4,0),(22051,'49720',42481,42482,4,0),(22052,'49721',42491,42492,4,0),(22053,'49722',42483,42484,4,0),(22054,'49730',42455,42456,4,0),(22055,'49731',42817,42818,4,0),(22056,'49740',42623,42624,4,0),(22057,'49741',42625,42626,4,0),(22058,'49742',42711,42712,4,0),(22059,'49743',43099,43100,4,0),(22060,'49750',43203,43204,4,0),(22061,'49751',42331,42332,4,0),(22062,'49760',42301,42302,4,0),(22063,'49760',43457,43458,4,0),(22064,'49770',43311,43312,4,0),(22065,'49780',42951,42952,4,0),(22066,'49781',42663,42664,4,0),(22067,'49782',43313,43314,4,0),(22068,'49783',42437,42438,4,0),(22069,'49783',42701,42702,4,0),(22070,'49800',43219,43220,4,0),(22071,'49810',42799,42800,4,0),(22072,'49820',43317,43318,4,0),(22073,'49820',43221,43222,4,0),(22074,'49830',42305,42306,4,0),(22075,'49831',42351,42352,4,0),(22076,'49832',42705,42706,4,0),(22077,'49833',42581,42582,4,0),(22078,'49834',42219,42220,4,0),(22079,'49835',42975,42976,4,0),(22080,'49836',43223,43224,4,0),(22081,'49840',43297,43298,4,0),(22082,'49850',42939,42940,4,0),(22083,'49860',43359,43360,4,0),(22084,'49870',43449,43450,4,0),(22085,'49871',43437,43438,4,0),(22086,'49880',42885,42886,4,0),(22087,'49881',43225,43226,4,0),(22088,'49882',43265,43266,4,0),(22089,'50001',44779,44780,4,0),(22090,'50002',44781,44782,4,0),(22091,'50003',44783,44784,4,0),(22092,'50004',44785,44786,4,0),(22093,'50005',44787,44788,4,0),(22094,'50006',44789,44790,4,0),(22095,'50007',44791,44792,4,0),(22096,'50008',44793,44794,4,0),(22097,'50009',44795,44796,4,0),(22098,'50010',44797,44798,4,0),(22099,'50011',44799,44800,4,0),(22100,'50012',44801,44802,4,0),(22101,'50013',44803,44804,4,0),(22102,'50014',44805,44806,4,0),(22103,'50015',44807,44808,4,0),(22104,'50016',44809,44810,4,0),(22105,'50017',44811,44812,4,0),(22106,'50018',44813,44814,4,0),(22107,'50019',44815,44816,4,0),(22108,'50020',44817,44818,4,0),(22109,'50021',44819,44820,4,0),(22110,'50022',44821,44822,4,0),(22111,'50057',44823,44824,4,0),(22112,'50059',44825,44826,4,0),(22113,'50100',44065,44066,4,0),(22114,'50108',43629,43630,4,0),(22115,'50109',43633,43634,4,0),(22116,'50120',44827,44828,4,0),(22117,'50130',43709,43710,4,0),(22118,'50131',44115,44116,4,0),(22119,'50132',43879,43880,4,0),(22120,'50133',43625,43626,4,0),(22121,'50134',44093,44094,4,0),(22122,'50134',44511,44512,4,0),(22123,'50135',44233,44234,4,0),(22124,'50135',43995,43996,4,0),(22125,'50136',44127,44128,4,0),(22126,'50137',44451,44452,4,0),(22127,'50138',44691,44692,4,0),(22128,'50139',44829,44830,4,0),(22129,'50140',43685,43686,4,0),(22130,'50141',44057,44058,4,0),(22131,'50142',43991,43992,4,0),(22132,'50143',44429,44430,4,0),(22133,'50143',44297,44298,4,0),(22134,'50144',44261,44262,4,0),(22135,'50150',44033,44034,4,0),(22136,'50151',44171,44172,4,0),(22137,'50152',44245,44246,4,0),(22138,'50153',44747,44748,4,0),(22139,'50154',44647,44648,4,0),(22140,'50155',43555,43556,4,0),(22141,'50156',44755,44756,4,0),(22142,'50160',44123,44124,4,0),(22143,'50160',44073,44074,4,0),(22144,'50161',44405,44406,4,0),(22145,'50162',44739,44740,4,0),(22146,'50163',43967,43968,4,0),(22147,'50164',44257,44258,4,0),(22148,'50170',44079,44080,4,0),(22149,'50170',44237,44238,4,0),(22150,'50171',44081,44082,4,0),(22151,'50172',43605,43606,4,0),(22152,'50173',44357,44358,4,0),(22153,'50174',44727,44728,4,0),(22154,'50175',44381,44382,4,0),(22155,'50177',43765,43766,4,0),(22156,'50178',44061,44062,4,0),(22157,'50180',44679,44680,4,0),(22158,'50190',44831,44832,4,0),(22159,'50191',44833,44834,4,0),(22160,'50193',44835,44836,4,0),(22161,'50194',44837,44838,4,0),(22162,'50195',44397,44398,4,0),(22163,'50196',44075,44076,4,0),(22164,'50200',43681,43682,4,0),(22165,'50210',44351,44352,4,0),(22166,'50211',43835,43836,4,0),(22167,'50212',43817,43818,4,0),(22168,'50213',44353,44354,4,0),(22169,'50213',43867,43868,4,0),(22170,'50213',44271,44272,4,0),(22171,'50214',43813,43814,4,0),(22172,'50215',44293,44294,4,0),(22173,'50216',44735,44736,4,0),(22174,'50217',44643,44644,4,0),(22175,'50219',44085,44086,4,0),(22176,'50219',44311,44312,4,0),(22177,'50219',44699,44700,4,0),(22178,'50220',43665,43666,4,0),(22179,'50227',44563,44564,4,0),(22180,'50228',43781,43782,4,0),(22181,'50229',43745,43746,4,0),(22182,'50230',43617,43618,4,0),(22183,'50236',44037,44038,4,0),(22184,'50237',44049,44050,4,0),(22185,'50238',44017,44018,4,0),(22186,'50238',43809,43810,4,0),(22187,'50239',43761,43762,4,0),(22188,'50239',43939,43940,4,0),(22189,'50239',43887,43888,4,0),(22190,'50240',44287,44288,4,0),(22191,'50240',43785,43786,4,0),(22192,'50246',43757,43758,4,0),(22193,'50247',44289,44290,4,0),(22194,'50248',44547,44548,4,0),(22195,'50249',44549,44550,4,0),(22196,'50250',44041,44042,4,0),(22197,'50257',44021,44022,4,0),(22198,'50258',44377,44378,4,0),(22199,'50258',44053,44054,4,0),(22200,'50259',43653,43654,4,0),(22201,'50259',44433,44434,4,0),(22202,'50260',44279,44280,4,0),(22203,'50266',43657,43658,4,0),(22204,'50267',44241,44242,4,0),(22205,'50268',44655,44656,4,0),(22206,'50268',43805,43806,4,0),(22207,'50268',44459,44460,4,0),(22208,'50269',44607,44608,4,0),(22209,'50269',43863,43864,4,0),(22210,'50269',44331,44332,4,0),(22211,'50270',44475,44476,4,0),(22212,'50280',43801,43802,4,0),(22213,'50290',43947,43948,4,0),(22214,'50291',44267,44268,4,0),(22215,'50292',43855,43856,4,0),(22216,'50293',44603,44604,4,0),(22217,'50294',44159,44160,4,0),(22218,'50294',44503,44504,4,0),(22219,'50295',44485,44486,4,0),(22220,'50295',44175,44176,4,0),(22221,'50296',43705,43706,4,0),(22222,'50296',44667,44668,4,0),(22223,'50296',44421,44422,4,0),(22224,'50297',44029,44030,4,0),(22225,'50297',44425,44426,4,0),(22226,'50297',43701,43702,4,0),(22227,'50298',44417,44418,4,0),(22228,'50299',44393,44394,4,0),(22229,'50299',43791,43792,4,0),(22230,'50299',44493,44494,4,0),(22231,'50300',43793,43794,4,0),(22232,'50310',44765,44766,4,0),(22233,'50311',44619,44620,4,0),(22234,'50312',43847,43848,4,0),(22235,'50313',43645,43646,4,0),(22236,'50314',43875,43876,4,0),(22237,'50315',44197,44198,4,0),(22238,'50316',44631,44632,4,0),(22239,'50316',43717,43718,4,0),(22240,'50316',43729,43730,4,0),(22241,'50320',43929,43930,4,0),(22242,'50321',43931,43932,4,0),(22243,'50322',43933,43934,4,0),(22244,'50323',43935,43936,4,0),(22245,'50324',44523,44524,4,0),(22246,'50325',44611,44612,4,0),(22247,'50326',43883,43884,4,0),(22248,'50330',44253,44254,4,0),(22249,'50331',44369,44370,4,0),(22250,'50331',44221,44222,4,0),(22251,'50331',44489,44490,4,0),(22252,'50332',43713,43714,4,0),(22253,'50333',44731,44732,4,0),(22254,'50334',44543,44544,4,0),(22255,'50335',43795,43796,4,0),(22256,'50336',43797,43798,4,0),(22257,'50340',44213,44214,4,0),(22258,'50341',44361,44362,4,0),(22259,'50342',44389,44390,4,0),(22260,'50343',44707,44708,4,0),(22261,'50344',44283,44284,4,0),(22262,'50345',43573,43574,4,0),(22263,'50346',43831,43832,4,0),(22264,'50347',43543,43544,4,0),(22265,'50348',43677,43678,4,0),(22266,'50351',43899,43900,4,0),(22267,'50360',43903,43904,4,0),(22268,'50366',44365,44366,4,0),(22269,'50366',44217,44218,4,0),(22270,'50366',43697,43698,4,0),(22271,'50366',44315,44316,4,0),(22272,'50367',44471,44472,4,0),(22273,'50367',44097,44098,4,0),(22274,'50368',43851,43852,4,0),(22275,'50368',44769,44770,4,0),(22276,'50368',44193,44194,4,0),(22277,'50368',44623,44624,4,0),(22278,'50369',44119,44120,4,0),(22279,'50369',43641,43642,4,0),(22280,'50369',44335,44336,4,0),(22281,'50370',44751,44752,4,0),(22282,'50371',44687,44688,4,0),(22283,'50372',44683,44684,4,0),(22284,'50373',44101,44102,4,0),(22285,'50373',44005,44006,4,0),(22286,'50373',44535,44536,4,0),(22287,'50373',43721,43722,4,0),(22288,'50374',44615,44616,4,0),(22289,'50374',43601,43602,4,0),(22290,'50374',44675,44676,4,0),(22291,'50375',43539,43540,4,0),(22292,'50390',44001,44002,4,0),(22293,'50391',44275,44276,4,0),(22294,'50391',44723,44724,4,0),(22295,'50400',43821,43822,4,0),(22296,'50408',43551,43552,4,0),(22297,'50409',43891,43892,4,0),(22298,'50410',43895,43896,4,0),(22299,'50420',43787,43788,4,0),(22300,'50430',44225,44226,4,0),(22301,'50440',44301,44302,4,0),(22302,'50441',43753,43754,4,0),(22303,'50450',44305,44306,4,0),(22304,'50460',44143,44144,4,0),(22305,'50461',43609,43610,4,0),(22306,'50470',43943,43944,4,0),(22307,'50480',44385,44386,4,0),(22308,'50481',43563,43564,4,0),(22309,'50482',44773,44774,4,0),(22310,'50490',44761,44762,4,0),(22311,'50490',44719,44720,4,0),(22312,'50491',43979,43980,4,0),(22313,'50491',43689,43690,4,0),(22314,'50491',44481,44482,4,0),(22315,'50500',44589,44590,4,0),(22316,'50510',44343,44344,4,0),(22317,'50511',44209,44210,4,0),(22318,'50512',44757,44758,4,0),(22319,'50512',44635,44636,4,0),(22320,'50513',44527,44528,4,0),(22321,'50513',44591,44592,4,0),(22322,'50513',44715,44716,4,0),(22323,'50513',44025,44026,4,0),(22324,'50513',44151,44152,4,0),(22325,'50514',44593,44594,4,0),(22326,'50520',44189,44190,4,0),(22327,'50529',43987,43988,4,0),(22328,'50529',44441,44442,4,0),(22329,'50529',43577,43578,4,0),(22330,'50530',44347,44348,4,0),(22331,'50540',44307,44308,4,0),(22332,'50540',43749,43750,4,0),(22333,'50546',44585,44586,4,0),(22334,'50546',43637,43638,4,0),(22335,'50546',43769,43770,4,0),(22336,'50547',43773,43774,4,0),(22337,'50547',44581,44582,4,0),(22338,'50548',43921,43922,4,0),(22339,'50549',44201,44202,4,0),(22340,'50549',43581,43582,4,0),(22341,'50550',44205,44206,4,0),(22342,'50560',43547,43548,4,0),(22343,'50561',43737,43738,4,0),(22344,'50562',43983,43984,4,0),(22345,'50570',43559,43560,4,0),(22346,'50580',44711,44712,4,0),(22347,'50581',44135,44136,4,0),(22348,'50582',44131,44132,4,0),(22349,'50582',44775,44776,4,0),(22350,'50583',44651,44652,4,0),(22351,'50584',44515,44516,4,0),(22352,'50590',43949,43950,4,0),(22353,'50590',43649,43650,4,0),(22354,'50591',43593,43594,4,0),(22355,'50600',43907,43908,4,0),(22356,'50610',44179,44180,4,0),(22357,'50610',44105,44106,4,0),(22358,'50611',43925,43926,4,0),(22359,'50611',43953,43954,4,0),(22360,'50612',44553,44554,4,0),(22361,'50612',44107,44108,4,0),(22362,'50613',43839,43840,4,0),(22363,'50614',43661,43662,4,0),(22364,'50614',44455,44456,4,0),(22365,'50615',44181,44182,4,0),(22366,'50615',44695,44696,4,0),(22367,'50616',44409,44410,4,0),(22368,'50616',44229,44230,4,0),(22369,'50617',43909,43910,4,0),(22370,'50619',43911,43912,4,0),(22371,'50619',43725,43726,4,0),(22372,'50619',44373,44374,4,0),(22373,'50619',44167,44168,4,0),(22374,'50619',43673,43674,4,0),(22375,'50620',44839,44840,4,0),(22376,'50629',44567,44568,4,0),(22377,'50630',43567,43568,4,0),(22378,'50637',44467,44468,4,0),(22379,'50638',43777,43778,4,0),(22380,'50639',43975,43976,4,0),(22381,'50640',44163,44164,4,0),(22382,'50641',43741,43742,4,0),(22383,'50650',44009,44010,4,0),(22384,'50660',44597,44598,4,0),(22385,'50667',44445,44446,4,0),(22386,'50668',44447,44448,4,0),(22387,'50669',44599,44600,4,0),(22388,'50670',44497,44498,4,0),(22389,'50678',44659,44660,4,0),(22390,'50679',44499,44500,4,0),(22391,'50679',44111,44112,4,0),(22392,'50680',44571,44572,4,0),(22393,'50682',44557,44558,4,0),(22394,'50683',43669,43670,4,0),(22395,'50683',44249,44250,4,0),(22396,'50683',44559,44560,4,0),(22397,'50684',44507,44508,4,0),(22398,'50685',44325,44326,4,0),(22399,'50685',44155,44156,4,0),(22400,'50685',43693,43694,4,0),(22401,'50685',44671,44672,4,0),(22402,'50686',29129,29130,4,0),(22403,'50686',44327,44328,4,0),(22404,'50687',44045,44046,4,0),(22405,'50687',44139,44140,4,0),(22406,'50688',44147,44148,4,0),(22407,'50689',44663,44664,4,0),(22408,'50689',44573,44574,4,0),(22409,'50690',44401,44402,4,0),(22410,'50691',43589,43590,4,0),(22411,'50692',44841,44842,4,0),(22412,'50692',44069,44070,4,0),(22413,'50693',44639,44640,4,0),(22414,'50694',43913,43914,4,0),(22415,'50695',43733,43734,4,0),(22416,'50696',43843,43844,4,0),(22417,'50696',44575,44576,4,0),(22418,'50697',44577,44578,4,0),(22419,'50700',43825,43826,4,0),(22420,'50709',43827,43828,4,0),(22421,'50710',44185,44186,4,0),(22422,'50720',44843,44844,4,0),(22423,'50720',44477,44478,4,0),(22424,'50730',43917,43918,4,0),(22425,'50740',43997,43998,4,0),(22426,'50750',44413,44414,4,0),(22427,'50760',44703,44704,4,0),(22428,'50770',44463,44464,4,0),(22429,'50780',44539,44540,4,0),(22430,'50781',43585,43586,4,0),(22431,'50782',43871,43872,4,0),(22432,'50783',43613,43614,4,0),(22433,'50784',44089,44090,4,0),(22434,'50786',44013,44014,4,0),(22435,'50790',43957,43958,4,0),(22436,'50791',43959,43960,4,0),(22437,'50792',43859,43860,4,0),(22438,'50793',43963,43964,4,0),(22439,'50794',44339,44340,4,0),(22440,'50795',43971,43972,4,0),(22441,'50800',44853,44854,4,0),(22442,'50810',44855,44856,4,0),(22443,'50820',44845,44846,4,0),(22444,'50830',44743,44744,4,0),(22445,'50830',43569,43570,4,0),(22446,'50830',44857,44858,4,0),(22447,'50840',44519,44520,4,0),(22448,'50850',44321,44322,4,0),(22449,'50850',44531,44532,4,0),(22461,'73820',36701,36702,4,0),(22462,'90007',44847,44848,4,0),(22463,'España exento',46842,47855,1,506),(22464,'Las Palmas',47441,47854,2,206),(22465,'Santa Cruz de Tenerife',46843,47440,2,298),(22466,'Agaete',47848,47853,3,2),(22467,'Agüimes',47836,47847,3,5),(22468,'Antigua',47824,47835,3,5),(22469,'Arrecife',47820,47823,3,1),(22470,'Artenara',47816,47819,3,1),(22471,'Arucas',47796,47815,3,9),(22472,'Betancuria',47792,47795,3,1),(22473,'Firgas',47782,47791,3,4),(22474,'Gáldar',47766,47781,3,7),(22475,'Haría',47756,47765,3,4),(22476,'Ingenio',47746,47755,3,4),(22477,'La Aldea de San Nicolás',47734,47745,3,5),(22478,'La Oliva',47722,47733,3,5),(22479,'Las Palmas de Gran Canaria',47678,47721,3,21),(22480,'Mogán',47662,47677,3,7),(22481,'Moya',47650,47661,3,5),(22482,'Pájara',47640,47649,3,4),(22483,'Puerto del Rosario',47626,47639,3,6),(22484,'San Bartolomé',47620,47625,3,2),(22485,'San Bartolomé de Tirajana',47594,47619,3,12),(22486,'Santa Brígida',47582,47593,3,5),(22487,'Santa Lucía de Tirajana',47574,47581,3,3),(22488,'Santa María de Guía de Gran Canaria',47564,47573,3,4),(22489,'Teguise',47542,47563,3,10),(22490,'Tejeda',47536,47541,3,2),(22491,'Telde',47510,47535,3,12),(22492,'Teror',47498,47509,3,5),(22493,'Tías',47490,47497,3,3),(22494,'Tinajo',47484,47489,3,2),(22495,'Tuineje',47472,47483,3,5),(22496,'Valleseco',47464,47471,3,3),(22497,'Valsequillo de Gran Canaria',47458,47463,3,2),(22498,'Vega de San Mateo',47450,47457,3,3),(22499,'Yaiza',47442,47449,3,3),(22500,'Adeje',47426,47439,3,6),(22501,'Agulo',47420,47425,3,2),(22502,'Alajeró',47410,47419,3,4),(22503,'Arafo',47404,47409,3,2),(22504,'Arico',47392,47403,3,5),(22505,'Arona',47368,47391,3,11),(22506,'Barlovento',47362,47367,3,2),(22507,'Breña Alta',47354,47361,3,3),(22508,'Breña Baja',47348,47353,3,2),(22509,'Buenavista del Norte',47340,47347,3,3),(22510,'Candelaria',47328,47339,3,5),(22511,'El Paso',47316,47327,3,5),(22512,'El Pinar de El Hierro',47310,47315,3,2),(22513,'El Rosario',47300,47309,3,4),(22514,'El Sauzal',47294,47299,3,2),(22515,'El Tanque',47290,47293,3,1),(22516,'Fasnia',47284,47289,3,2),(22517,'Frontera',47276,47283,3,3),(22518,'Fuencaliente de la Palma',47270,47275,3,2),(22519,'Garachico',47260,47269,3,4),(22520,'Garafía',47252,47259,3,3),(22521,'Granadilla de Abona',47232,47251,3,9),(22522,'Guía de Isora',47218,47231,3,6),(22523,'Güímar',47204,47217,3,6),(22524,'Hermigua',47194,47203,3,4),(22525,'Icod de los Vinos',47184,47193,3,4),(22526,'La Guancha',47176,47183,3,3),(22527,'La Matanza de Acentejo',47170,47175,3,2),(22528,'La Orotava',47154,47169,3,7),(22529,'La Victoria de Acentejo',47148,47153,3,2),(22530,'Los Llanos de Aridane',47136,47147,3,5),(22531,'Los Realejos',47116,47135,3,9),(22532,'Los Silos',47106,47115,3,4),(22533,'Puerto de la Cruz',47102,47105,3,1),(22534,'Puntagorda',47098,47101,3,1),(22535,'Puntallana',47092,47097,3,2),(22536,'San Andrés y Sauces',47086,47091,3,2),(22537,'San Cristóbal de La Laguna',47042,47085,3,21),(22538,'San Juan de la Rambla',47034,47041,3,3),(22539,'San Miguel de Abona',47024,47033,3,4),(22540,'San Sebastián de la Gomera',47016,47023,3,3),(22541,'Santa Cruz de la Palma',47004,47015,3,5),(22542,'Santa Cruz de Tenerife',46952,47003,3,25),(22543,'Santa Úrsula',46944,46951,3,3),(22544,'Santiago del Teide',46936,46943,3,3),(22545,'Tacoronte',46922,46935,3,6),(22546,'Tazacorte',46916,46921,3,2),(22547,'Tegueste',46904,46915,3,5),(22548,'Tijarafe',46898,46903,3,2),(22549,'Valle Gran Rey',46888,46897,3,4),(22550,'Vallehermoso',46872,46887,3,7),(22551,'Valverde',46862,46871,3,4),(22552,'Vilaflor de Chasna',46852,46861,3,4),(22553,'Villa de Mazo',46844,46851,3,3),(22554,'35480',47851,47852,4,0),(22555,'35489',47849,47850,4,0),(22556,'35118',47845,47846,4,0),(22557,'35119',47843,47844,4,0),(22558,'35260',47841,47842,4,0),(22559,'35269',47839,47840,4,0),(22560,'35270',47837,47838,4,0),(22561,'35369',47833,47834,4,0),(22562,'35610',47831,47832,4,0),(22563,'35630',47829,47830,4,0),(22564,'35638',47827,47828,4,0),(22565,'35639',47825,47826,4,0),(22566,'35500',47821,47822,4,0),(22567,'35350',47817,47818,4,0),(22568,'35000',47813,47814,4,0),(22569,'35400',47811,47812,4,0),(22570,'35404',47809,47810,4,0),(22571,'35411',47807,47808,4,0),(22572,'35412',47805,47806,4,0),(22573,'35413',47803,47804,4,0),(22574,'35414',47801,47802,4,0),(22575,'35415',47799,47800,4,0),(22576,'35418',47797,47798,4,0),(22577,'35637',47793,47794,4,0),(22578,'35430',47789,47790,4,0),(22579,'35431',47787,47788,4,0),(22580,'35432',47785,47786,4,0),(22581,'35435',47783,47784,4,0),(22582,'35188',47779,47780,4,0),(22583,'35420',47777,47778,4,0),(22584,'35460',47775,47776,4,0),(22585,'35468',47773,47774,4,0),(22586,'35469',47771,47772,4,0),(22587,'35488',47769,47770,4,0),(22588,'35640',47767,47768,4,0),(22589,'35520',47763,47764,4,0),(22590,'35541',47761,47762,4,0),(22591,'35542',47759,47760,4,0),(22592,'35543',47757,47758,4,0),(22593,'35000',47753,47754,4,0),(22594,'35240',47751,47752,4,0),(22595,'35250',47749,47750,4,0),(22596,'35259',47747,47748,4,0),(22597,'34570',47743,47744,4,0),(22598,'35470',47741,47742,4,0),(22599,'35478',47739,47740,4,0),(22600,'35479',47737,47738,4,0),(22601,'35579',47735,47736,4,0),(22602,'35469',47731,47732,4,0),(22603,'35640',47729,47730,4,0),(22604,'35649',47727,47728,4,0),(22605,'35650',47725,47726,4,0),(22606,'35660',47723,47724,4,0),(22607,'35001',47719,47720,4,0),(22608,'35002',47717,47718,4,0),(22609,'35003',47715,47716,4,0),(22610,'35004',47713,47714,4,0),(22611,'35005',47711,47712,4,0),(22612,'35006',47709,47710,4,0),(22613,'35007',47707,47708,4,0),(22614,'35008',47705,47706,4,0),(22615,'35009',47703,47704,4,0),(22616,'35010',47701,47702,4,0),(22617,'35011',47699,47700,4,0),(22618,'35012',47697,47698,4,0),(22619,'35013',47695,47696,4,0),(22620,'35014',47693,47694,4,0),(22621,'35015',47691,47692,4,0),(22622,'35016',47689,47690,4,0),(22623,'35017',47687,47688,4,0),(22624,'35018',47685,47686,4,0),(22625,'35019',47683,47684,4,0),(22626,'35220',47681,47682,4,0),(22627,'35229',47679,47680,4,0),(22628,'35120',47675,47676,4,0),(22629,'35129',47673,47674,4,0),(22630,'35130',47671,47672,4,0),(22631,'35138',47669,47670,4,0),(22632,'35139',47667,47668,4,0),(22633,'35140',47665,47666,4,0),(22634,'35149',47663,47664,4,0),(22635,'35413',47659,47660,4,0),(22636,'35420',47657,47658,4,0),(22637,'35421',47655,47656,4,0),(22638,'35422',47653,47654,4,0),(22639,'35423',47651,47652,4,0),(22640,'35625',47647,47648,4,0),(22641,'35626',47645,47646,4,0),(22642,'35627',47643,47644,4,0),(22643,'35628',47641,47642,4,0),(22644,'35600',47637,47638,4,0),(22645,'35610',47635,47636,4,0),(22646,'35611',47633,47634,4,0),(22647,'35612',47631,47632,4,0),(22648,'35613',47629,47630,4,0),(22649,'35637',47627,47628,4,0),(22650,'35509',47623,47624,4,0),(22651,'35550',47621,47622,4,0),(22652,'35100',47617,47618,4,0),(22653,'35106',47615,47616,4,0),(22654,'35107',47613,47614,4,0),(22655,'35108',47611,47612,4,0),(22656,'35109',47609,47610,4,0),(22657,'35119',47607,47608,4,0),(22658,'35120',47605,47606,4,0),(22659,'35128',47603,47604,4,0),(22660,'35280',47601,47602,4,0),(22661,'35290',47599,47600,4,0),(22662,'35299',47597,47598,4,0),(22663,'35369',47595,47596,4,0),(22664,'35300',47591,47592,4,0),(22665,'35307',47589,47590,4,0),(22666,'35308',47587,47588,4,0),(22667,'35309',47585,47586,4,0),(22668,'35310',47583,47584,4,0),(22669,'35000',47579,47580,4,0),(22670,'35110',47577,47578,4,0),(22671,'35280',47575,47576,4,0),(22672,'35450',47571,47572,4,0),(22673,'35457',47569,47570,4,0),(22674,'35458',47567,47568,4,0),(22675,'35540',47565,47566,4,0),(22676,'35507',47561,47562,4,0),(22677,'35508',47559,47560,4,0),(22678,'35509',47557,47558,4,0),(22679,'35530',47555,47556,4,0),(22680,'35539',47553,47554,4,0),(22681,'35540',47551,47552,4,0),(22682,'35543',47549,47550,4,0),(22683,'35544',47547,47548,4,0),(22684,'35558',47545,47546,4,0),(22685,'35561',47543,47544,4,0),(22686,'35360',47539,47540,4,0),(22687,'35368',47537,47538,4,0),(22688,'35200',47533,47534,4,0),(22689,'35210',47531,47532,4,0),(22690,'35211',47529,47530,4,0),(22691,'35212',47527,47528,4,0),(22692,'35213',47525,47526,4,0),(22693,'35214',47523,47524,4,0),(22694,'35215',47521,47522,4,0),(22695,'35218',47519,47520,4,0),(22696,'35219',47517,47518,4,0),(22697,'35220',47515,47516,4,0),(22698,'35229',47513,47514,4,0),(22699,'35259',47511,47512,4,0),(22700,'35000',47507,47508,4,0),(22701,'35330',47505,47506,4,0),(22702,'35333',47503,47504,4,0),(22703,'35338',47501,47502,4,0),(22704,'35339',47499,47500,4,0),(22705,'35510',47495,47496,4,0),(22706,'35571',47493,47494,4,0),(22707,'35572',47491,47492,4,0),(22708,'35550',47487,47488,4,0),(22709,'35560',47485,47486,4,0),(22710,'35620',47481,47482,4,0),(22711,'35627',47479,47480,4,0),(22712,'35628',47477,47478,4,0),(22713,'35629',47475,47476,4,0),(22714,'35660',47473,47474,4,0),(22715,'35000',47469,47470,4,0),(22716,'35340',47467,47468,4,0),(22717,'35349',47465,47466,4,0),(22718,'35216',47461,47462,4,0),(22719,'35217',47459,47460,4,0),(22720,'35320',47455,47456,4,0),(22721,'35328',47453,47454,4,0),(22722,'35329',47451,47452,4,0),(22723,'35370',47447,47448,4,0),(22724,'35570',47445,47446,4,0),(22725,'35580',47443,47444,4,0),(22726,'38615',47437,47438,4,0),(22727,'38660',47435,47436,4,0),(22728,'38670',47433,47434,4,0),(22729,'38677',47431,47432,4,0),(22730,'38678',47429,47430,4,0),(22731,'38679',47427,47428,4,0),(22732,'38830',47423,47424,4,0),(22733,'38890',47421,47422,4,0),(22734,'38810',47417,47418,4,0),(22735,'38811',47415,47416,4,0),(22736,'38812',47413,47414,4,0),(22737,'38813',47411,47412,4,0),(22738,'38509',47407,47408,4,0),(22739,'38550',47405,47406,4,0),(22740,'38580',47401,47402,4,0),(22741,'38588',47399,47400,4,0),(22742,'38589',47397,47398,4,0),(22743,'38592',47395,47396,4,0),(22744,'38593',47393,47394,4,0),(22745,'38626',47389,47390,4,0),(22746,'38627',47387,47388,4,0),(22747,'38630',47385,47386,4,0),(22748,'38631',47383,47384,4,0),(22749,'38632',47381,47382,4,0),(22750,'38639',47379,47380,4,0),(22751,'38640',47377,47378,4,0),(22752,'38649',47375,47376,4,0),(22753,'38650',47373,47374,4,0),(22754,'38652',47371,47372,4,0),(22755,'38660',47369,47370,4,0),(22756,'38726',47365,47366,4,0),(22757,'38727',47363,47364,4,0),(22758,'38710',47359,47360,4,0),(22759,'38712',47357,47358,4,0),(22760,'38713',47355,47356,4,0),(22761,'38711',47351,47352,4,0),(22762,'38712',47349,47350,4,0),(22763,'38479',47345,47346,4,0),(22764,'38480',47343,47344,4,0),(22765,'38489',47341,47342,4,0),(22766,'38509',47337,47338,4,0),(22767,'38510',47335,47336,4,0),(22768,'38520',47333,47334,4,0),(22769,'38530',47331,47332,4,0),(22770,'38540',47329,47330,4,0),(22771,'38750',47325,47326,4,0),(22772,'38758',47323,47324,4,0),(22773,'38759',47321,47322,4,0),(22774,'38768',47319,47320,4,0),(22775,'38769',47317,47318,4,0),(22776,'38914',47313,47314,4,0),(22777,'38917',47311,47312,4,0),(22778,'38109',47307,47308,4,0),(22779,'38190',47305,47306,4,0),(22780,'38290',47303,47304,4,0),(22781,'38510',47301,47302,4,0),(22782,'38359',47297,47298,4,0),(22783,'38360',47295,47296,4,0),(22784,'38435',47291,47292,4,0),(22785,'38570',47287,47288,4,0),(22786,'38579',47285,47286,4,0),(22787,'38911',47281,47282,4,0),(22788,'38912',47279,47280,4,0),(22789,'38913',47277,47278,4,0),(22790,'38740',47273,47274,4,0),(22791,'38749',47271,47272,4,0),(22792,'38450',47267,47268,4,0),(22793,'38458',47265,47266,4,0),(22794,'38459',47263,47264,4,0),(22795,'38460',47261,47262,4,0),(22796,'38728',47257,47258,4,0),(22797,'38787',47255,47256,4,0),(22798,'38788',47253,47254,4,0),(22799,'38594',47249,47250,4,0),(22800,'38595',47247,47248,4,0),(22801,'38600',47245,47246,4,0),(22802,'38611',47243,47244,4,0),(22803,'38612',47241,47242,4,0),(22804,'38616',47239,47240,4,0),(22805,'38617',47237,47238,4,0),(22806,'38618',47235,47236,4,0),(22807,'38639',47233,47234,4,0),(22808,'38680',47229,47230,4,0),(22809,'38685',47227,47228,4,0),(22810,'38686',47225,47226,4,0),(22811,'38687',47223,47224,4,0),(22812,'38688',47221,47222,4,0),(22813,'38689',47219,47220,4,0),(22814,'38500',47215,47216,4,0),(22815,'38508',47213,47214,4,0),(22816,'38509',47211,47212,4,0),(22817,'38560',47209,47210,4,0),(22818,'38590',47207,47208,4,0),(22819,'38591',47205,47206,4,0),(22820,'38820',47201,47202,4,0),(22821,'38829',47199,47200,4,0),(22822,'38869',47197,47198,4,0),(22823,'38890',47195,47196,4,0),(22824,'38430',47191,47192,4,0),(22825,'38434',47189,47190,4,0),(22826,'38438',47187,47188,4,0),(22827,'38439',47185,47186,4,0),(22828,'38440',47181,47182,4,0),(22829,'38441',47179,47180,4,0),(22830,'38449',47177,47178,4,0),(22831,'38370',47173,47174,4,0),(22832,'38379',47171,47172,4,0),(22833,'38300',47167,47168,4,0),(22834,'38310',47165,47166,4,0),(22835,'38311',47163,47164,4,0),(22836,'38312',47161,47162,4,0),(22837,'38313',47159,47160,4,0),(22838,'38314',47157,47158,4,0),(22839,'38315',47155,47156,4,0),(22840,'38380',47151,47152,4,0),(22841,'38389',47149,47150,4,0),(22842,'38759',47145,47146,4,0),(22843,'38760',47143,47144,4,0),(22844,'38767',47141,47142,4,0),(22845,'38768',47139,47140,4,0),(22846,'38769',47137,47138,4,0),(22847,'38410',47133,47134,4,0),(22848,'38412',47131,47132,4,0),(22849,'38413',47129,47130,4,0),(22850,'38414',47127,47128,4,0),(22851,'38415',47125,47126,4,0),(22852,'38416',47123,47124,4,0),(22853,'38417',47121,47122,4,0),(22854,'38418',47119,47120,4,0),(22855,'38419',47117,47118,4,0),(22856,'38435',47113,47114,4,0),(22857,'38460',47111,47112,4,0),(22858,'38470',47109,47110,4,0),(22859,'38479',47107,47108,4,0),(22860,'38400',47103,47104,4,0),(22861,'38789',47099,47100,4,0),(22862,'38714',47095,47096,4,0),(22863,'38715',47093,47094,4,0),(22864,'38720',47089,47090,4,0),(22865,'38729',47087,47088,4,0),(22866,'38108',47083,47084,4,0),(22867,'38201',47081,47082,4,0),(22868,'38202',47079,47080,4,0),(22869,'38203',47077,47078,4,0),(22870,'38204',47075,47076,4,0),(22871,'38205',47073,47074,4,0),(22872,'38206',47071,47072,4,0),(22873,'38207',47069,47070,4,0),(22874,'38208',47067,47068,4,0),(22875,'38240',47065,47066,4,0),(22876,'38250',47063,47064,4,0),(22877,'38260',47061,47062,4,0),(22878,'38270',47059,47060,4,0),(22879,'38291',47057,47058,4,0),(22880,'38293',47055,47056,4,0),(22881,'38294',47053,47054,4,0),(22882,'38296',47051,47052,4,0),(22883,'38297',47049,47050,4,0),(22884,'38320',47047,47048,4,0),(22885,'38329',47045,47046,4,0),(22886,'38330',47043,47044,4,0),(22887,'38420',47039,47040,4,0),(22888,'38428',47037,47038,4,0),(22889,'38429',47035,47036,4,0),(22890,'38620',47031,47032,4,0),(22891,'38628',47029,47030,4,0),(22892,'38629',47027,47028,4,0),(22893,'38639',47025,47026,4,0),(22894,'38800',47021,47022,4,0),(22895,'38801',47019,47020,4,0),(22896,'38811',47017,47018,4,0),(22897,'38700',47013,47014,4,0),(22898,'38712',47011,47012,4,0),(22899,'38713',47009,47010,4,0),(22900,'38714',47007,47008,4,0),(22901,'38715',47005,47006,4,0),(22902,'38001',47001,47002,4,0),(22903,'38002',46999,47000,4,0),(22904,'38003',46997,46998,4,0),(22905,'38004',46995,46996,4,0),(22906,'38005',46993,46994,4,0),(22907,'38006',46991,46992,4,0),(22908,'38007',46989,46990,4,0),(22909,'38008',46987,46988,4,0),(22910,'38009',46985,46986,4,0),(22911,'38010',46983,46984,4,0),(22912,'38107',46981,46982,4,0),(22913,'38108',46979,46980,4,0),(22914,'38110',46977,46978,4,0),(22915,'38111',46975,46976,4,0),(22916,'38120',46973,46974,4,0),(22917,'38129',46971,46972,4,0),(22918,'38130',46969,46970,4,0),(22919,'38139',46967,46968,4,0),(22920,'38140',46965,46966,4,0),(22921,'38150',46963,46964,4,0),(22922,'38160',46961,46962,4,0),(22923,'38170',46959,46960,4,0),(22924,'38180',46957,46958,4,0),(22925,'38294',46955,46956,4,0),(22926,'38320',46953,46954,4,0),(22927,'38390',46949,46950,4,0),(22928,'38398',46947,46948,4,0),(22929,'38399',46945,46946,4,0),(22930,'38683',46941,46942,4,0),(22931,'38684',46939,46940,4,0),(22932,'38690',46937,46938,4,0),(22933,'38340',46933,46934,4,0),(22934,'38350',46931,46932,4,0),(22935,'38355',46929,46930,4,0),(22936,'38356',46927,46928,4,0),(22937,'38357',46925,46926,4,0),(22938,'38358',46923,46924,4,0),(22939,'38770',46919,46920,4,0),(22940,'38779',46917,46918,4,0),(22941,'38280',46913,46914,4,0),(22942,'38289',46911,46912,4,0),(22943,'38292',46909,46910,4,0),(22944,'38293',46907,46908,4,0),(22945,'38297',46905,46906,4,0),(22946,'38780',46901,46902,4,0),(22947,'38789',46899,46900,4,0),(22948,'38852',46895,46896,4,0),(22949,'38870',46893,46894,4,0),(22950,'38879',46891,46892,4,0),(22951,'38892',46889,46890,4,0),(22952,'38840',46885,46886,4,0),(22953,'38849',46883,46884,4,0),(22954,'38850',46881,46882,4,0),(22955,'38852',46879,46880,4,0),(22956,'38860',46877,46878,4,0),(22957,'38869',46875,46876,4,0),(22958,'38891',46873,46874,4,0),(22959,'38900',46869,46870,4,0),(22960,'38910',46867,46868,4,0),(22961,'38915',46865,46866,4,0),(22962,'38916',46863,46864,4,0),(22963,'38613',46859,46860,4,0),(22964,'38614',46857,46858,4,0),(22965,'38615',46855,46856,4,0),(22966,'38629',46853,46854,4,0),(22967,'38730',46849,46850,4,0),(22968,'38738',46847,46848,4,0),(22969,'38739',46845,46846,4,0),(22970,'Marigot',44864,44867,3,1),(22971,'Aubignosc',44886,44889,3,1),(22972,'Chateau Arnoux Saint Auba',44882,44885,3,1),(22973,'Manosque',44878,44881,3,1),(22974,'Villeneuve',44874,44877,3,1),(22975,'Rodez',44904,44907,3,1),(22976,'Aix-en-provence',44980,44985,3,2),(22977,'Arles',44974,44979,3,2),(22978,'Bouc Bel-air',44970,44973,3,1),(22979,'Istres',44966,44969,3,1),(22980,'Lançon De Provence',44962,44965,3,1),(22981,'Les Pennes Mirabeau',44958,44961,3,1),(22982,'Marseille',44932,44957,3,12),(22983,'Martigues',44928,44931,3,1),(22984,'Maussane-les-alpilles',44924,44927,3,1),(22985,'Rognonas',44920,44923,3,1),(22986,'Salon-de-provence',44916,44919,3,1),(22987,'Velaux',44912,44915,3,1),(22988,'Villers-bocage',44988,44991,3,1),(22989,'Linars',44996,44999,3,1),(22990,'Dolus-d\'oleron',45002,45005,3,1),(22991,'Lanvollon',45024,45027,3,1),(22992,'Penvénan',45020,45023,3,1),(22993,'Plessala',45016,45019,3,1),(22994,'Pontarlier',45036,45039,3,1),(22995,'Saint Paul Les Romans',45046,45049,3,1),(22996,'Valence',45042,45045,3,1),(22997,'Le Bosc Roger En Roumois',45058,45061,3,1),(22998,'Val-de-reuil',45054,45057,3,1),(22999,'Brest',45098,45101,3,1),(23000,'Combrit',45094,45097,3,1),(23001,'Gouesnou',45090,45093,3,1),(23002,'Guipavas',45086,45089,3,1),(23003,'Landernau',45082,45085,3,1),(23004,'Le Huelgoat',45078,45081,3,1),(23005,'Quimper',45074,45077,3,1),(23006,'Saint Renan',45070,45073,3,1),(23007,'Sizun',45066,45069,3,1),(23008,'Rochefort Du Gard',45112,45115,3,1),(23009,'Saint-quentin-la-poterie',45108,45111,3,1),(23010,'Villeneuve Les Avignon',45104,45107,3,1),(23011,'Bordeaux',45120,45123,3,1),(23012,'Toulouse',45134,45137,3,1),(23013,'Tournefeuille',45130,45133,3,1),(23014,'Bonne',45150,45153,3,1),(23015,'Morzine',45146,45149,3,1),(23016,'Courbevoi',45162,45165,3,1),(23017,'Aigûes Mortes',45180,45183,3,1),(23018,'Beziers',45176,45179,3,1),(23019,'Lunel',45172,45175,3,1),(23020,'Montpellier',45168,45171,3,1),(23021,'Avoine',45194,45197,3,1),(23022,'Tours',45190,45193,3,1),(23023,'Tullins',45200,45203,3,1),(23024,'Biscarrosse',45218,45221,3,1),(23025,'Léon',45216,45217,3,0),(23026,'Soorts-hossegor',45212,45215,3,1),(23027,'Vieux Boucau-les-bains',45208,45211,3,1),(23028,'Nantes',45228,45231,3,1),(23029,'Cholet',45246,45249,3,1),(23030,'Les Ponts De Ce',45242,45245,3,1),(23031,'Saint Hilaire Du Harcouët',45252,45255,3,1),(23032,'Clescles',45258,45261,3,1),(23033,'Caudan',45274,45277,3,1),(23034,'Quéven',45270,45273,3,1),(23035,'Armentieres',45296,45299,3,1),(23036,'Maquette De Lille',45292,45295,3,1),(23037,'Maquette Le Lille',45288,45291,3,1),(23038,'Roubaix',45284,45287,3,1),(23039,'La Croix Saint Ouen',45302,45305,3,1),(23040,'Honore',45320,45323,3,1),(23041,'Paris',45310,45319,3,4),(23042,'Lille',45330,45333,3,1),(23043,'Prenchies',45326,45329,3,1),(23044,'Anglet',45412,45415,3,1),(23045,'Arcangues',45408,45411,3,1),(23046,'Ascain',45404,45407,3,1),(23047,'Bardos',45400,45403,3,1),(23048,'Bayone',45394,45399,3,2),(23049,'Bayonne',45390,45393,3,1),(23050,'Biarritz',45386,45389,3,1),(23051,'Bidache',45382,45385,3,1),(23052,'Bidart',45378,45381,3,1),(23053,'Hendaye',45374,45377,3,1),(23054,'Saint Jean De Luz',45370,45373,3,1),(23055,'Saint Palais',45366,45369,3,1),(23056,'Saint Vincent De Tyrosse',45362,45365,3,1),(23057,'Saint-jean-de-luz',45358,45361,3,1),(23058,'Sare',45354,45357,3,1),(23059,'St Jean De Luz',45350,45353,3,1),(23060,'Urrugne',45346,45349,3,1),(23061,'Urt',45342,45345,3,1),(23062,'Ustaritz',45338,45341,3,1),(23063,'Argeles Sur Mer',45426,45429,3,1),(23064,'Perpignan',45422,45425,3,1),(23065,'Saint Laurent De La Salan',45418,45421,3,1),(23066,'Bron',45438,45441,3,1),(23067,'Lyon',45432,45437,3,2),(23068,'Mâcon',45444,45447,3,1),(23069,'Le Havre',45460,45463,3,1),(23070,'Rouen',45456,45459,3,1),(23071,'Livry-gargan',45470,45473,3,1),(23072,'Villemonble',45466,45469,3,1),(23073,'Albi',45486,45489,3,1),(23074,'Castres',45482,45485,3,1),(23075,'Onet Le Chateau',45478,45481,3,1),(23076,'Montauban',45492,45495,3,1),(23077,'Montmorency',45504,45507,3,1),(23078,'Pontoise',45500,45503,3,1),(23079,'Chevilly Larue',45514,45519,3,2),(23080,'Plessis Trevise',45510,45513,3,1),(23081,'Hyères',45530,45533,3,1),(23082,'Saint Tropez',45526,45529,3,1),(23083,'Sollies Pont',45522,45525,3,1),(23084,'Agvignon',45536,45539,3,1),(23085,'Contrexéville',45554,45557,3,1),(23086,'Neufchâteau',45550,45553,3,1),(23087,'Vittel',45546,45549,3,1),(23088,'40550',22467,22468,4,0),(23089,'97150',44865,44866,4,0),(23090,'04200',44887,44888,4,0),(23091,'04160',44883,44884,4,0),(23092,'04100',44879,44880,4,0),(23093,'04180',44875,44876,4,0),(23094,'12000',44905,44906,4,0),(23095,'13100',44983,44984,4,0),(23096,'13540',44981,44982,4,0),(23097,'13200',44977,44978,4,0),(23098,'13633',44975,44976,4,0),(23099,'13320',44971,44972,4,0),(23100,'13800',44967,44968,4,0),(23101,'13680',44963,44964,4,0),(23102,'13170',44959,44960,4,0),(23103,'13001',44955,44956,4,0),(23104,'13002',44953,44954,4,0),(23105,'13004',44951,44952,4,0),(23106,'13005',44949,44950,4,0),(23107,'13006',44947,44948,4,0),(23108,'13007',44945,44946,4,0),(23109,'13008',44943,44944,4,0),(23110,'13009',44941,44942,4,0),(23111,'13010',44939,44940,4,0),(23112,'13011',44937,44938,4,0),(23113,'13012',44935,44936,4,0),(23114,'13014',44933,44934,4,0),(23115,'13500',44929,44930,4,0),(23116,'13520',44925,44926,4,0),(23117,'13870',44921,44922,4,0),(23118,'13300',44917,44918,4,0),(23119,'13880',44913,44914,4,0),(23120,'14310',44989,44990,4,0),(23121,'16730',44997,44998,4,0),(23122,'17550',45003,45004,4,0),(23123,'22290',45025,45026,4,0),(23124,'22710',45021,45022,4,0),(23125,'22330',45017,45018,4,0),(23126,'25300',45037,45038,4,0),(23127,'26750',45047,45048,4,0),(23128,'26000',45043,45044,4,0),(23129,'27670',45059,45060,4,0),(23130,'27100',45055,45056,4,0),(23131,'29200',45099,45100,4,0),(23132,'29120',45095,45096,4,0),(23133,'29850',45091,45092,4,0),(23134,'29490',45087,45088,4,0),(23135,'29800',45083,45084,4,0),(23136,'29690',45079,45080,4,0),(23137,'29000',45075,45076,4,0),(23138,'29290',45071,45072,4,0),(23139,'29450',45067,45068,4,0),(23140,'30650',45113,45114,4,0),(23141,'30700',45109,45110,4,0),(23142,'30400',45105,45106,4,0),(23143,'33000',45121,45122,4,0),(23144,'31200',45135,45136,4,0),(23145,'31170',45131,45132,4,0),(23146,'74308',45151,45152,4,0),(23147,'74110',45147,45148,4,0),(23148,'92400',45163,45164,4,0),(23149,'30220',45181,45182,4,0),(23150,'34500',45177,45178,4,0),(23151,'34400',45173,45174,4,0),(23152,'34000',45169,45170,4,0),(23153,'37420',45195,45196,4,0),(23154,'37000',45191,45192,4,0),(23155,'38210',45201,45202,4,0),(23156,'40600',45219,45220,4,0),(23157,'40150',45213,45214,4,0),(23158,'40480',45209,45210,4,0),(23159,'44000',45229,45230,4,0),(23160,'49300',45247,45248,4,0),(23161,'49130',45243,45244,4,0),(23162,'50600',45253,45254,4,0),(23163,'51260',45259,45260,4,0),(23164,'56850',45275,45276,4,0),(23165,'56560',45271,45272,4,0),(23166,'59280',45297,45298,4,0),(23167,'59520',45293,45294,4,0),(23168,'59520',45289,45290,4,0),(23169,'59100',45285,45286,4,0),(23170,'60610',45303,45304,4,0),(23171,'75008',45321,45322,4,0),(23172,'75011',45317,45318,4,0),(23173,'75012',45315,45316,4,0),(23174,'75013',45313,45314,4,0),(23175,'75020',45311,45312,4,0),(23176,'59800',45331,45332,4,0),(23177,'59840',45327,45328,4,0),(23178,'64600',45413,45414,4,0),(23179,'64200',45409,45410,4,0),(23180,'64310',45405,45406,4,0),(23181,'64520',45401,45402,4,0),(23182,'64000',45397,45398,4,0),(23183,'64100',45395,45396,4,0),(23184,'64100',45391,45392,4,0),(23185,'64200',45387,45388,4,0),(23186,'64520',45383,45384,4,0),(23187,'64210',45379,45380,4,0),(23188,'64700',45375,45376,4,0),(23189,'64500',45371,45372,4,0),(23190,'64120',45367,45368,4,0),(23191,'40230',45363,45364,4,0),(23192,'64500',45359,45360,4,0),(23193,'64310',45355,45356,4,0),(23194,'64500',45351,45352,4,0),(23195,'64122',45347,45348,4,0),(23196,'64240',45343,45344,4,0),(23197,'64480',45339,45340,4,0),(23198,'66700',45427,45428,4,0),(23199,'66000',45423,45424,4,0),(23200,'66250',45419,45420,4,0),(23201,'69500',45439,45440,4,0),(23202,'69001',45435,45436,4,0),(23203,'69002',45433,45434,4,0),(23204,'71000',45445,45446,4,0),(23205,'76600',45461,45462,4,0),(23206,'76000',45457,45458,4,0),(23207,'93190',45471,45472,4,0),(23208,'93250',45467,45468,4,0),(23209,'81000',45487,45488,4,0),(23210,'81100',45483,45484,4,0),(23211,'12850',45479,45480,4,0),(23212,'82000',45493,45494,4,0),(23213,'95160',45505,45506,4,0),(23214,'95300',45501,45502,4,0),(23215,'94150',45517,45518,4,0),(23216,'94550',45515,45516,4,0),(23217,'94420',45511,45512,4,0),(23218,'83400',45531,45532,4,0),(23219,'83990',45527,45528,4,0),(23220,'83210',45523,45524,4,0),(23221,'84000',45537,45538,4,0),(23222,'88140',45555,45556,4,0),(23223,'88300',45551,45552,4,0),(23224,'88800',45547,45548,4,0),(23225,'Agueda',45692,45697,3,2),(23226,'Arouca',45688,45691,3,1),(23227,'Aveiro',45682,45687,3,2),(23228,'Cacia',45678,45681,3,1),(23229,'Caldas De São Jorge',45674,45677,3,1),(23230,'Esgueira',45670,45673,3,1),(23231,'Horta',45658,45669,3,5),(23232,'Ilhavo',45652,45657,3,2),(23233,'Malveira',45646,45651,3,2),(23234,'Oliveira Azemeis',45642,45645,3,1),(23235,'Oliveira Do Bairro',45638,45641,3,1),(23236,'Santa Maria Da Feira',45632,45637,3,2),(23237,'Santiago De Riba-ul',45628,45631,3,1),(23238,'São João Da Madeira',45620,45627,3,3),(23239,'Server Do Vouga',45616,45619,3,1),(23240,'Terceira',45612,45615,3,1),(23241,'Vagos',45606,45611,3,2),(23242,'Vale De Cambra',45602,45605,3,1),(23243,'Beja',45700,45707,3,3),(23244,'485 Barcelos',45822,45825,3,1),(23245,'Barcelos',45802,45821,3,9),(23246,'Braga',45784,45801,3,8),(23247,'Celorco De Basto',45780,45783,3,1),(23248,'Celorico Basto',45776,45779,3,1),(23249,'Esposende',45768,45775,3,3),(23250,'Fafe',45764,45767,3,1),(23251,'Famalição',45760,45763,3,1),(23252,'Fermil De Basto',45756,45759,3,1),(23253,'Figueiredo',45752,45755,3,1),(23254,'Fraiao',45748,45751,3,1),(23255,'Guiamarães',45744,45747,3,1),(23256,'Guimarães',45736,45743,3,3),(23257,'Povoa De Lanhoso',45732,45735,3,1),(23258,'Vila Nova De Famalicao',45722,45731,3,4),(23259,'Vila Nova Famalicão',45718,45721,3,1),(23260,'Vila Verde',45714,45717,3,1),(23261,'Vila-verde',45710,45713,3,1),(23262,'Paradela-chaves',45828,45831,3,1),(23263,'Alqueria Fundão',45864,45867,3,1),(23264,'Belmonte',45862,45863,3,0),(23265,'Castelo Branco',45854,45861,3,3),(23266,'Covilhã',45850,45853,3,1),(23267,'Proença A Nova',45846,45849,3,1),(23268,'Ceuta',45834,45845,3,5),(23269,'-455 Lavos',45944,45947,3,1),(23270,'Cernache',45940,45943,3,1),(23271,'Coimbra',45910,45939,3,14),(23272,'Penacova',45906,45909,3,1),(23273,'Praia De Quiaios',45900,45905,3,2),(23274,'Santo Antonio Dos Olivais',45896,45899,3,1),(23275,'São Martinho De Arvore',45892,45895,3,1),(23276,'Semide',45888,45891,3,1),(23277,'Tabua',45884,45887,3,1),(23278,'Evora',45950,45955,3,2),(23279,'Albufeira',46038,46041,3,1),(23280,'Algarve',46032,46037,3,2),(23281,'Almancil',46028,46031,3,1),(23282,'Almancil - Loulé',46024,46027,3,1),(23283,'Faro',46010,46023,3,6),(23284,'Lagos',46000,46009,3,4),(23285,'Loulé',45992,45999,3,3),(23286,'Mexilhoeira',45988,45991,3,1),(23287,'Moncarapacho',45984,45987,3,1),(23288,'Monchique',45980,45983,3,1),(23289,'Olhao',45974,45979,3,2),(23290,'São Pedro',45970,45973,3,1),(23291,'Silves',45966,45969,3,1),(23292,'Tavira',45962,45965,3,1),(23293,'Vilamoura Quarteira',45958,45961,3,1),(23294,'Funchal',46044,46047,3,1),(23295,'Aguar Da Beira',46076,46079,3,1),(23296,'Aguiar Da Beira',46072,46075,3,1),(23297,'Guarda',46066,46071,3,2),(23298,'Manteigas',46062,46065,3,1),(23299,'Sebugal',46058,46061,3,1),(23300,'Soito',46054,46057,3,1),(23301,'Vilar Formoso - Almeida',46050,46053,3,1),(23302,'Alcobaça',46158,46163,3,2),(23303,'Barosa',46154,46157,3,1),(23304,'Batalha',46150,46153,3,1),(23305,'Genrinhas',46146,46149,3,1),(23306,'Junceira',46142,46145,3,1),(23307,'Lameira - Ortigosa',46138,46141,3,1),(23308,'Maças De D. Maria',46134,46137,3,1),(23309,'Maceira',46130,46133,3,1),(23310,'Marinha Grande',46124,46129,3,2),(23311,'Marrazes',46120,46123,3,1),(23312,'Meirinhas',46116,46119,3,1),(23313,'Mendiga',46112,46115,3,1),(23314,'Nazaré',46108,46111,3,1),(23315,'Ortigoza',46104,46107,3,1),(23316,'Porto De Mos',46098,46103,3,2),(23317,'Possos S. Pedro',46094,46097,3,1),(23318,'Praia Da Leiria',46090,46093,3,1),(23319,'Rego De Agua',46086,46089,3,1),(23320,'Vieira Do Leiria',46082,46085,3,1),(23321,' Prior Velho',46360,46363,3,1),(23322,'Alenquer',46356,46359,3,1),(23323,'Alvala',46352,46355,3,1),(23324,'Alvarinhos',46348,46351,3,1),(23325,'Alverca Ribatejo',46344,46347,3,1),(23326,'Amadora',46334,46343,3,4),(23327,'Arruda Dos Vinho',46330,46333,3,1),(23328,'Brejos De Azeitão',46324,46329,3,2),(23329,'Carregado',46320,46323,3,1),(23330,'Cascais',46314,46319,3,2),(23331,'Estoril',46310,46313,3,1),(23332,'Lisboa',46280,46309,3,14),(23333,'Loures',46274,46279,3,2),(23334,'Mafra',46270,46273,3,1),(23335,'Montelevar',46266,46269,3,1),(23336,'Oeiras',46236,46265,3,14),(23337,'Portela Sacavém',46232,46235,3,1),(23338,'Queijas',46228,46231,3,1),(23339,'Quinta Do Figo Maduro',46224,46227,3,1),(23340,'Rio De Mouro',46218,46223,3,2),(23341,'Sacavem',46214,46217,3,1),(23342,'Santa Cruz',46208,46213,3,2),(23343,'São João Da Talha',46204,46207,3,1),(23344,'São Julião Do Tojal',46200,46203,3,1),(23345,'Sintra',46196,46199,3,1),(23346,'Venda Do Pinheiro',46192,46195,3,1),(23347,'Vila Franca De Xira',46184,46191,3,3),(23348,'Vila Franca Do Campo',46180,46183,3,1),(23349,'Melilla',46166,46179,3,6),(23350,'Elvas',46390,46393,3,1),(23351,'Portalegre',46386,46389,3,1),(23352,'Santo Antonio Das Areias',46382,46385,3,1),(23353,'Alduar',46618,46621,3,1),(23354,'Amarante',46612,46617,3,2),(23355,'Baião',46602,46611,3,4),(23356,'Baio',46598,46601,3,1),(23357,'Bomfim',46594,46597,3,1),(23358,'Casais',46590,46593,3,1),(23359,'Cedofeita',46586,46589,3,1),(23360,'Ermesinde',46576,46585,3,4),(23361,'Folgosa Maia',46572,46575,3,1),(23362,'Gaia',46570,46571,3,0),(23363,'Gondomar',46568,46569,3,0),(23364,'Lousada',46564,46567,3,1),(23365,'Maia',46540,46563,3,11),(23366,'Marco De Canavesses',46532,46539,3,3),(23367,'Matosinhos',46518,46531,3,6),(23368,'Oporto',46510,46517,3,3),(23369,'Paços De Ferreira',46504,46509,3,2),(23370,'Paços Ferreira',46500,46503,3,1),(23371,'Paranhos',46496,46499,3,1),(23372,'Paredes',46494,46495,3,0),(23373,'Passo De Ferreira',46486,46493,3,3),(23374,'Passo Ferreira',46482,46485,3,1),(23375,'Pedrouços Maia',46478,46481,3,1),(23376,'Penafiel',46476,46477,3,0),(23377,'Perafita Matosinhos',46472,46475,3,1),(23378,'Porto',46468,46471,3,1),(23379,'Povoa De Varzim',46464,46467,3,1),(23380,'Povoa Do Varzim',46458,46463,3,2),(23381,'Ramalde',46454,46457,3,1),(23382,'Rio Tinto',46444,46453,3,4),(23383,'Santo Tirso',46436,46443,3,3),(23384,'São Mamede Infesta',46432,46435,3,1),(23385,'Silvares Lousda',46428,46431,3,1),(23386,'Trofa',46422,46427,3,2),(23387,'Valongo',46418,46421,3,1),(23388,'Vila Do Conde',46414,46417,3,1),(23389,'Vila Nova De Gaia',46396,46413,3,8),(23390,'Alcanena',46648,46651,3,1),(23391,'Cartaxo',46644,46647,3,1),(23392,'Coruche',46640,46643,3,1),(23393,'Mação',46636,46639,3,1),(23394,'Pego',46634,46635,3,0),(23395,'Rio Maior',46630,46633,3,1),(23396,'Santarém',46626,46629,3,1),(23397,'Alcochece',46726,46729,3,1),(23398,'Almada',46718,46725,3,3),(23399,'Azeitão',46712,46717,3,2),(23400,'Charneca Da Caparica',46706,46711,3,2),(23401,'Costa Caparica',46702,46705,3,1),(23402,'Lavradio',46698,46701,3,1),(23403,'Lavradio - Barreiro',46692,46697,3,2),(23404,'Montijo',46690,46691,3,0),(23405,'Seixal',46676,46689,3,6),(23406,'Sesimbra',46670,46675,3,2),(23407,'Setubal',46662,46669,3,3),(23408,'Trafaria',46658,46661,3,1),(23409,'Vila Nogueira',46654,46657,3,1),(23410,'Monção',46750,46755,3,2),(23411,'Ponte De Lima',46746,46749,3,1),(23412,'S. Romão De Neiva',46742,46745,3,1),(23413,'Viana Do Castelo',46732,46741,3,4),(23414,'Chaves',46766,46777,3,5),(23415,'Sabrosa',46762,46765,3,1),(23416,'Santa Marta De Penaguiao',46758,46761,3,1),(23417,'Abraveses',46836,46839,3,1),(23418,'Ameixas',46832,46835,3,1),(23419,'Cinfaes',46828,46831,3,1),(23420,'Coração De Jesus',46824,46827,3,1),(23421,'Lamego',46818,46823,3,2),(23422,'Mamouros',46814,46817,3,1),(23423,'Olivares De Frades',46810,46813,3,1),(23424,'Sernancelhe',46802,46809,3,3),(23425,'Viseu',46784,46801,3,8),(23426,'Vouzela',46780,46783,3,1),(23427,'6250-076',13047,13048,4,0),(23428,'4410',6285,6286,4,0),(23429,'4415-039',6283,6284,4,0),(23430,'4420-382',31707,31708,4,0),(23431,'4510',31705,31706,4,0),(23432,'4510-649',31703,31704,4,0),(23433,'4515',31701,31702,4,0),(23434,'2870',4961,4962,4,0),(23435,'2870-500',4959,4960,4,0),(23436,'4585',13597,13598,4,0),(23437,'2205',1509,1510,4,0),(23438,'4560',41161,41162,4,0),(23439,'4560-568',41159,41160,4,0),(23440,'4560-750',41157,41158,4,0),(23441,'4575',41155,41156,4,0),(23442,'4575-367',41153,41154,4,0),(23443,'4575-503',41151,41152,4,0),(23444,'4000-075',42967,42968,4,0),(23445,'4000-217',42965,42966,4,0),(23446,'4150',42963,42964,4,0),(23447,'4200',42961,42962,4,0),(23448,'4250',42959,42960,4,0),(23449,'4300-198',42957,42958,4,0),(23450,'3750-103',45695,45696,4,0),(23451,'3750-791',45693,45694,4,0),(23452,'4540',45689,45690,4,0),(23453,'3800',45685,45686,4,0),(23454,'3810',45683,45684,4,0),(23455,'3800-533',45679,45680,4,0),(23456,'4505',45675,45676,4,0),(23457,'3800-149',45671,45672,4,0),(23458,'3830',45655,45656,4,0),(23459,'3830-142',45653,45654,4,0),(23460,'2665-185',45647,45648,4,0),(23461,'3700',45643,45644,4,0),(23462,'3770',45639,45640,4,0),(23463,'3700-839',45635,45636,4,0),(23464,'4535-346',45633,45634,4,0),(23465,'3720',45629,45630,4,0),(23466,'3700',45625,45626,4,0),(23467,'3700-091',45623,45624,4,0),(23468,'3700304',45621,45622,4,0),(23469,'3740-255',45617,45618,4,0),(23470,'9760',45613,45614,4,0),(23471,'3840',45609,45610,4,0),(23472,'3840449',45607,45608,4,0),(23473,'3730-220',45603,45604,4,0),(23474,'7800-496',45701,45702,4,0),(23475,'4755-',45823,45824,4,0),(23476,'4750',45813,45814,4,0),(23477,'4750-262',45811,45812,4,0),(23478,'4750-413',45809,45810,4,0),(23479,'4755',45807,45808,4,0),(23480,'4755-006',45805,45806,4,0),(23481,'4755-564',45803,45804,4,0),(23482,'4700',45793,45794,4,0),(23483,'4700-030',45791,45792,4,0),(23484,'4700-031',45789,45790,4,0),(23485,'4700-565',45787,45788,4,0),(23486,'4710',45785,45786,4,0),(23487,'4890-',45781,45782,4,0),(23488,'4890-264',45777,45778,4,0),(23489,'4740',45773,45774,4,0),(23490,'4740-291',45771,45772,4,0),(23491,'4740-576',45769,45770,4,0),(23492,'4820',45765,45766,4,0),(23493,'4765-220',45761,45762,4,0),(23494,'4890',45757,45758,4,0),(23495,'4705',45753,45754,4,0),(23496,'4715-400',45749,45750,4,0),(23497,'4805',45745,45746,4,0),(23498,'4810',45741,45742,4,0),(23499,'4810-106',45739,45740,4,0),(23500,'4835-324',45737,45738,4,0),(23501,'4830',45733,45734,4,0),(23502,'4760',45727,45728,4,0),(23503,'4770',45725,45726,4,0),(23504,'4770-160',45723,45724,4,0),(23505,'4770-060',45719,45720,4,0),(23506,'4730',45715,45716,4,0),(23507,'4730',45711,45712,4,0),(23508,'5400',45829,45830,4,0),(23509,'6230',45865,45866,4,0),(23510,'2600-068',45859,45860,4,0),(23511,'6000',45857,45858,4,0),(23512,'6000459',45855,45856,4,0),(23513,'6200-502',45851,45852,4,0),(23514,'6150',45847,45848,4,0),(23515,'51001',45843,45844,4,0),(23516,'51002',45841,45842,4,0),(23517,'51003',45839,45840,4,0),(23518,'51004',45837,45838,4,0),(23519,'51005',45835,45836,4,0),(23520,'03090',45945,45946,4,0),(23521,'3040-757',45941,45942,4,0),(23522,'3000',45929,45930,4,0),(23523,'3000-251',45927,45928,4,0),(23524,'3020171',45925,45926,4,0),(23525,'3025',45923,45924,4,0),(23526,'3025-106',45921,45922,4,0),(23527,'3030',45919,45920,4,0),(23528,'3030-181',45917,45918,4,0),(23529,'3030181',45915,45916,4,0),(23530,'3040-252',45913,45914,4,0),(23531,'3040-756',45911,45912,4,0),(23532,'3360',45907,45908,4,0),(23533,'3080',45903,45904,4,0),(23534,'3080515',45901,45902,4,0),(23535,'3030',45897,45898,4,0),(23536,'3025-474',45893,45894,4,0),(23537,'3220',45889,45890,4,0),(23538,'3420-324',45885,45886,4,0),(23539,'7000-651',45953,45954,4,0),(23540,'7005-370',45951,45952,4,0),(23541,'8200',46039,46040,4,0),(23542,'8125-017',46035,46036,4,0),(23543,'8701-906',46033,46034,4,0),(23544,'8135-159',46029,46030,4,0),(23545,'8135-100',46025,46026,4,0),(23546,'8000',46021,46022,4,0),(23547,'8000292',46019,46020,4,0),(23548,'8000434',46017,46018,4,0),(23549,'8005',46015,46016,4,0),(23550,'8005-135',46013,46014,4,0),(23551,'8005491',46011,46012,4,0),(23552,'8600',46007,46008,4,0),(23553,'8600-546',46005,46006,4,0),(23554,'8600546',46003,46004,4,0),(23555,'8600681',46001,46002,4,0),(23556,'8100-170',45997,45998,4,0),(23557,'8100-297',45995,45996,4,0),(23558,'8100-500',45993,45994,4,0),(23559,'8500-132',45989,45990,4,0),(23560,'8700-061',45985,45986,4,0),(23561,'8550-431',45981,45982,4,0),(23562,'8700',45977,45978,4,0),(23563,'8700-213',45975,45976,4,0),(23564,'8000-081',45971,45972,4,0),(23565,'8300-154',45967,45968,4,0),(23566,'8800-439',45963,45964,4,0),(23567,'8125-478',45959,45960,4,0),(23568,'9000-273',46045,46046,4,0),(23569,'3570',46077,46078,4,0),(23570,'3570',46073,46074,4,0),(23571,'6300',46067,46068,4,0),(23572,'6260-034',46063,46064,4,0),(23573,'6320-344',46059,46060,4,0),(23574,'6320',46055,46056,4,0),(23575,'6355-286',46051,46052,4,0),(23576,'2460-197',46161,46162,4,0),(23577,'2460197',46159,46160,4,0),(23578,'2400-489',46155,46156,4,0),(23579,'2440-462',46151,46152,4,0),(23580,'2480-078',46147,46148,4,0),(23581,'2460',46143,46144,4,0),(23582,'2425-718',46139,46140,4,0),(23583,'3250',46135,46136,4,0),(23584,'2405-022',46131,46132,4,0),(23585,'2430',46127,46128,4,0),(23586,'2430081',46125,46126,4,0),(23587,'2415',46121,46122,4,0),(23588,'3105',46117,46118,4,0),(23589,'2480-215',46113,46114,4,0),(23590,'2450-065',46109,46110,4,0),(23591,'2425',46105,46106,4,0),(23592,'2480',46101,46102,4,0),(23593,'2480300',46099,46100,4,0),(23594,'3250-350',46095,46096,4,0),(23595,'2430',46091,46092,4,0),(23596,'2400-406',46087,46088,4,0),(23597,'2430',46083,46084,4,0),(23598,'2685-394',46361,46362,4,0),(23599,'2580',46357,46358,4,0),(23600,'1700',46353,46354,4,0),(23601,'2705-430',46349,46350,4,0),(23602,'2615',46345,46346,4,0),(23603,'2650',46341,46342,4,0),(23604,'2650-436',46339,46340,4,0),(23605,'2700-072',46337,46338,4,0),(23606,'2720-119',46335,46336,4,0),(23607,'2630-095',46331,46332,4,0),(23608,'2925',46327,46328,4,0),(23609,'2925-566',46325,46326,4,0),(23610,'2580-487',46321,46322,4,0),(23611,'2750-461',46317,46318,4,0),(23612,'2750-830',46315,46316,4,0),(23613,'2765-218',46311,46312,4,0),(23614,'1100',46301,46302,4,0),(23615,'1100-467',46299,46300,4,0),(23616,'1200',46297,46298,4,0),(23617,'1300',46295,46296,4,0),(23618,'1300-598',46293,46294,4,0),(23619,'1500',46291,46292,4,0),(23620,'1600',46289,46290,4,0),(23621,'1700-151',46287,46288,4,0),(23622,'1750-364',46285,46286,4,0),(23623,'1900',46283,46284,4,0),(23624,'2735',46281,46282,4,0),(23625,'2690',46275,46276,4,0),(23626,'2644',46271,46272,4,0),(23627,'2715-673',46267,46268,4,0),(23628,'2790',46237,46238,4,0),(23629,'2685-223',46233,46234,4,0),(23630,'2790-444',46229,46230,4,0),(23631,'2685-329',46225,46226,4,0),(23632,'2635',46221,46222,4,0),(23633,'2635-003',46219,46220,4,0),(23634,'2685-332',46215,46216,4,0),(23635,'2560',46211,46212,4,0),(23636,'2560565',46209,46210,4,0),(23637,'2695-620',46205,46206,4,0),(23638,'2660',46201,46202,4,0),(23639,'2725-403',46197,46198,4,0),(23640,'2665',46193,46194,4,0),(23641,'2600-278',46187,46188,4,0),(23642,'2625',46185,46186,4,0),(23643,'9680',46181,46182,4,0),(23644,'52001',46177,46178,4,0),(23645,'52002',46175,46176,4,0),(23646,'52003',46173,46174,4,0),(23647,'52004',46171,46172,4,0),(23648,'52005',46169,46170,4,0),(23649,'52006',46167,46168,4,0),(23650,'07350',46391,46392,4,0),(23651,'7300-526',46387,46388,4,0),(23652,'7330-254',46383,46384,4,0),(23653,'4100',46619,46620,4,0),(23654,'4600',46615,46616,4,0),(23655,'4600-078',46613,46614,4,0),(23656,'4640',46609,46610,4,0),(23657,'4640-014',46607,46608,4,0),(23658,'4640-147',46605,46606,4,0),(23659,'4640-597',46603,46604,4,0),(23660,'4640-036',46599,46600,4,0),(23661,'4000',46595,46596,4,0),(23662,'4620-091',46591,46592,4,0),(23663,'4050-257',46587,46588,4,0),(23664,'4425-095',46583,46584,4,0),(23665,'4445',46581,46582,4,0),(23666,'4445-324',46579,46580,4,0),(23667,'4445-655',46577,46578,4,0),(23668,'4425',46573,46574,4,0),(23669,'4620-523',46565,46566,4,0),(23670,'4425',46555,46556,4,0),(23671,'4425-111',46553,46554,4,0),(23672,'4425-122',46551,46552,4,0),(23673,'4470-005',46549,46550,4,0),(23674,'4470-558',46547,46548,4,0),(23675,'4470-768',46545,46546,4,0),(23676,'4475',46543,46544,4,0),(23677,'4475-451',46541,46542,4,0),(23678,'4575',46537,46538,4,0),(23679,'4630',46535,46536,4,0),(23680,'4634',46533,46534,4,0),(23681,'4450',46529,46530,4,0),(23682,'4450-009',46527,46528,4,0),(23683,'4455',46525,46526,4,0),(23684,'4455-127',46523,46524,4,0),(23685,'4460-421',46521,46522,4,0),(23686,'4465',46519,46520,4,0),(23687,'4200',46513,46514,4,0),(23688,'4200026',46511,46512,4,0),(23689,'4590',46507,46508,4,0),(23690,'4590-578',46505,46506,4,0),(23691,'4950-550',46501,46502,4,0),(23692,'4200-210',46497,46498,4,0),(23693,'4590-478',46491,46492,4,0),(23694,'4595-391',46489,46490,4,0),(23695,'4595-463',46487,46488,4,0),(23696,'4590-550',46483,46484,4,0),(23697,'4425',46479,46480,4,0),(23698,'4455',46473,46474,4,0),(23699,'4495',46465,46466,4,0),(23700,'4490',46459,46460,4,0),(23701,'4250',46455,46456,4,0),(23702,'4435-005',46447,46448,4,0),(23703,'4435-057',46445,46446,4,0),(23704,'4780',46441,46442,4,0),(23705,'4780-546',46439,46440,4,0),(23706,'4795',46437,46438,4,0),(23707,'4465-083',46433,46434,4,0),(23708,'4620-523',46429,46430,4,0),(23709,'4745-030',46425,46426,4,0),(23710,'4785',46423,46424,4,0),(23711,'4440',46419,46420,4,0),(23712,'4480',46415,46416,4,0),(23713,'4400',46411,46412,4,0),(23714,'4400-209',46409,46410,4,0),(23715,'4400-312',46407,46408,4,0),(23716,'4405-528',46405,46406,4,0),(23717,'4405-625',46403,46404,4,0),(23718,'4405819',46401,46402,4,0),(23719,'4410-353',46399,46400,4,0),(23720,'4410001',46397,46398,4,0),(23721,'2380',46649,46650,4,0),(23722,'2070',46645,46646,4,0),(23723,'2100-039',46641,46642,4,0),(23724,'6120-663',46637,46638,4,0),(23725,'2040',46631,46632,4,0),(23726,'2000',46627,46628,4,0),(23727,'2890-047',46727,46728,4,0),(23728,'2805',46721,46722,4,0),(23729,'2815-653',46719,46720,4,0),(23730,'2925-589',46715,46716,4,0),(23731,'2925-734',46713,46714,4,0),(23732,'2820',46709,46710,4,0),(23733,'2820599',46707,46708,4,0),(23734,'2825',46703,46704,4,0),(23735,'2835-440',46699,46700,4,0),(23736,'2835',46695,46696,4,0),(23737,'2835-415',46693,46694,4,0),(23738,'2840-068',46681,46682,4,0),(23739,'2840068',46679,46680,4,0),(23740,'2865-572',46677,46678,4,0),(23741,'2970-088',46671,46672,4,0),(23742,'2910',46663,46664,4,0),(23743,'2825-832',46659,46660,4,0),(23744,'2925542',46655,46656,4,0),(23745,'4950',46753,46754,4,0),(23746,'4950474',46751,46752,4,0),(23747,'4990',46747,46748,4,0),(23748,'4935-546',46743,46744,4,0),(23749,'4900',46737,46738,4,0),(23750,'4900-317',46735,46736,4,0),(23751,'4925',46733,46734,4,0),(23752,'5400',46775,46776,4,0),(23753,'5400-121',46773,46774,4,0),(23754,'5400-311',46771,46772,4,0),(23755,'5400-435',46769,46770,4,0),(23756,'5425',46767,46768,4,0),(23757,'5060',46763,46764,4,0),(23758,'5030',46759,46760,4,0),(23759,'3515-146',46837,46838,4,0),(23760,'3670-150',46833,46834,4,0),(23761,'4690-363',46829,46830,4,0),(23762,'3510-123',46825,46826,4,0),(23763,'5100',46821,46822,4,0),(23764,'5100-139',46819,46820,4,0),(23765,'3600-392',46815,46816,4,0),(23766,'3680-123',46811,46812,4,0),(23767,'3640',46807,46808,4,0),(23768,'3640-225',46805,46806,4,0),(23769,'3640225',46803,46804,4,0),(23770,'3500',46797,46798,4,0),(23771,'3500-703',46795,46796,4,0),(23772,'3500209',46793,46794,4,0),(23773,'3500703',46791,46792,4,0),(23774,'3510',46789,46790,4,0),(23775,'3510-720',46787,46788,4,0),(23776,'3515-150',46785,46786,4,0),(23777,'3670',46781,46782,4,0),(23778,'Aalsmeer',45592,45595,3,1),(23779,'Alphen Aan Den Rijn',45588,45591,3,1),(23780,'Bergeijk',45584,45587,3,1),(23781,'Dirksland',45580,45583,3,1),(23782,'Honselersdijk',45576,45579,3,1),(23783,'Legmeerdijk',45574,45575,3,0),(23784,'Maasdijk',45572,45573,3,0),(23785,'Uithoorn',45568,45571,3,1),(23786,'01431',45593,45594,4,0),(23787,'2403',45589,45590,4,0),(23788,'5571CB',45585,45586,4,0),(23789,'03247',45581,45582,4,0),(23790,'02675',45577,45578,4,0),(23791,'01421',45569,45570,4,0),(23792,'28341',26831,26832,4,0),(23793,'28342',26829,26830,4,0),(23794,'28343',26827,26828,4,0),(23795,'29600',27325,27326,4,0),(23796,'46700',39991,39992,4,0),(23797,'1700-236',46303,46304,4,0),(23798,'46649',39693,39694,4,0),(23799,'4760-105',45795,45796,4,0),(23800,'4000-217',46622,46623,3,0),(23801,'2894-001',46665,46666,4,0),(23803,'4470-640',46557,46558,4,0),(23804,'33400',2395,2396,4,0),(23805,'02007',411,412,4,0),(23806,'03080',1003,1004,4,0),(23807,'03200',1293,1294,4,0),(23808,'03500',1075,1076,4,0),(23809,'04721',2311,2312,4,0),(23810,'07070',5581,5582,4,0),(23811,'08080',5965,5966,4,0),(23812,'46900',40511,40512,4,0),(23813,'46480',40519,40520,4,0),(23814,'46901',40517,40518,4,0),(23815,'46185',40515,40516,4,0),(23816,'46840',40513,40514,4,0),(23817,'20579',17475,17476,4,0),(23818,'48900',41767,41768,4,0),(23819,'36949',31573,31574,4,0),(23820,'30530',27717,27718,4,0),(23821,'33200',2699,2700,4,0),(23822,'46080',40029,40030,4,0),(23823,'33597',2871,2872,4,0),(23824,'46225',40273,40274,4,0),(23825,'46394',40369,40370,4,0),(23826,'33969',3215,3216,4,0),(23827,'46116',40611,40612,4,0),(23828,'50197',44849,44850,4,0),(23829,'46902',40521,40522,4,0),(23830,'2870-363',4963,4964,4,0),(23831,'9900-302',45667,45668,4,0),(23832,'9900-305',45665,45666,4,0),(23833,'9900-303',45663,45664,4,0),(23834,'9900-301',45661,45662,4,0),(23835,'9900-304',45659,45660,4,0),(23836,'4905-130',45815,45816,4,0),(23837,'4760-105',45729,45730,4,0),(23838,'4490-592',46461,46462,4,0),(23839,'4900-432',46739,46740,4,0),(23840,'4150-163',42969,42970,4,0),(23841,'2665-183',45649,45650,4,0),(23842,'4755-485',45817,45818,4,0),(23843,'4700-855',45797,45798,4,0),(23844,'3020-832',45935,45936,4,0),(23845,'3000-045',45933,45934,4,0),(23846,'3040-584',45931,45932,4,0),(23847,'2685-410',46277,46278,4,0),(23848,'2730-004',46263,46264,4,0),(23849,'2730-009',46261,46262,4,0),(23850,'2730-002',46259,46260,4,0),(23851,'2730-007',46257,46258,4,0),(23852,'2730-012',46255,46256,4,0),(23853,'2730-005',46253,46254,4,0),(23854,'2730-010',46251,46252,4,0),(23855,'2730-003',46249,46250,4,0),(23856,'2730-008',46247,46248,4,0),(23857,'2730-013',46245,46246,4,0),(23858,'2730-001',46243,46244,4,0),(23859,'2730-006',46241,46242,4,0),(23860,'2730-011',46239,46240,4,0),(23861,'4470-640',46561,46562,4,0),(23862,'4470-573',46559,46560,4,0),(23863,'4100-483',46515,46516,4,0),(23864,'2894-002',46667,46668,4,0),(23865,'08910',5857,5858,4,0),(23866,'28669',25971,25972,4,0),(23867,'11110',10283,10284,4,0),(23868,'21650',17989,17990,4,0),(23869,'28940',26177,26178,4,0),(23870,'18071',15503,15504,4,0),(23871,'08400',6319,6320,4,0),(23872,'28230',26291,26292,4,0),(23873,'28070',26455,26456,4,0),(23874,'29678',27327,27328,4,0),(23875,'28080',26693,26694,4,0),(23876,'15780',20959,20960,4,0),(23877,'28668',25973,25974,4,0),(23878,'4755-469',45819,45820,4,0),(23879,'2810-037',46723,46724,4,0),(23880,'Italia',47856,47865,1,4),(23881,'Milan',47863,47864,2,0),(23882,'Salerno',47857,47862,2,2),(23883,'Scafati',47858,47861,3,1),(23884,'84018',47859,47860,4,0),(23885,'1069-413',46305,46306,4,0),(23890,'33616',14531,14532,4,0),(23902,'33683',2905,2906,4,0),(23903,'33611',2903,2904,4,0),(23904,'33616',2901,2902,4,0),(23905,'33650',2899,2900,4,0),(23906,'33600',2897,2898,4,0),(23907,'33614',2895,2896,4,0),(23908,'33619',2893,2894,4,0),(23909,'33912',2891,2892,4,0),(23910,'33612',2889,2890,4,0),(23911,'33617',2887,2888,4,0),(23912,'33682',2885,2886,4,0),(23913,'33610',2883,2884,4,0),(23914,'33615',2881,2882,4,0),(23915,'33640',2879,2880,4,0),(23916,'33613',2877,2878,4,0),(23917,'33618',2875,2876,4,0),(23918,'1600-120',46307,46308,4,0),(23919,'2845-909',46687,46688,4,0),(23920,'2845-554',46685,46686,4,0),(23921,'2840-403',46683,46684,4,0),(23922,'3350-153',45937,45938,4,0),(23923,'6320-400',46069,46070,4,0),(23924,'3500-885',46799,46800,4,0),(23925,'7800-148',45705,45706,4,0),(23926,'7800-148',45703,45704,4,0),(23927,'4435-180',46449,46450,4,0),(23928,'4435-190',46451,46452,4,0),(23929,'4970-500',45799,45800,4,0),(23931,'4650-312',46469,46470,4,0),(23932,'2625-644',46189,46190,4,0),(23933,'2975-309',46673,46674,4,0); /*!40000 ALTER TABLE `zoneGeo` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -250,7 +250,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:09 +-- Dump completed on 2019-07-04 11:10:35 USE `vn2008`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -355,7 +355,7 @@ UNLOCK TABLES; LOCK TABLES `department` WRITE; /*!40000 ALTER TABLE `department` DISABLE KEYS */; -INSERT INTO `department` VALUES (1,'VERDNATURA',1,52,1,0,NULL,NULL,NULL,NULL,0,0,0,0),(22,'COMPRAS',29,30,NULL,72,49,596,2,5,0,0,0,0),(23,'CAMARA',23,23,NULL,72,49,604,2,6,1,0,0,0),(31,'INFORMATICA',40,41,NULL,72,44,127,3,9,0,0,0,0),(34,'CONTABILIDAD',35,36,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(35,'FINANZAS',33,34,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(36,'LABORAL',37,38,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(37,'PRODUCCION',42,49,NULL,72,44,230,3,11,0,0,0,0),(38,'SACADO',47,48,NULL,72,37,230,4,14,1,0,0,0),(39,'ENCAJADO',45,46,NULL,72,37,230,4,12,1,0,0,0),(40,'CONTROLADORES',43,44,NULL,72,37,619,4,13,0,0,0,0),(41,'ADMINISTRACION',32,39,NULL,72,44,599,3,8,0,0,0,0),(42,'COMERCIAL',26,31,NULL,72,49,1002,2,3,0,0,0,0),(43,'VENTAS',27,28,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(44,'GERENCIA',24,25,NULL,72,49,300,2,7,0,0,0,0),(45,'LOGISTICA',18,45,NULL,72,44,596,3,19,0,0,0,0),(46,'REPARTO',21,22,NULL,72,44,659,3,10,0,0,0,0),(47,'CARGA',15,16,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(48,'ALMACENAJE',12,17,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(49,'PROPIEDAD',10,11,NULL,72,NULL,1008,1,1,0,0,0,0),(51,'DESCARGA',13,14,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(52,'CARGA AEREA',19,20,NULL,72,66,163,4,28,0,0,0,0),(53,'MARKETING Y COMUNICACIÓN',50,51,NULL,72,44,1238,0,0,0,0,0,0),(54,'ORNAMENTALES',54,54,NULL,72,44,433,3,21,0,2,0,0),(55,'TALLER Y CONFECCION',4,9,NULL,72,49,695,2,23,0,0,0,0),(56,'TALLER ARTIFICIAL',7,8,NULL,72,49,1780,2,24,0,0,0,0),(57,'SECO',5,6,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(58,'CAMPOS',2,3,NULL,72,49,225,2,2,0,0,0,0),(59,'MANTENIMIENTO',52,53,NULL,72,37,1907,4,16,0,1,0,0),(60,'RECLAMACIONES',60,60,NULL,72,42,563,3,20,0,2,0,0),(61,'VNH',61,61,NULL,73,44,1297,3,17,0,2,0,0),(63,'VENTAS FRANCIA',63,63,NULL,72,49,277,2,27,0,2,0,0),(64,'PLANTAS',64,64,NULL,72,49,617,2,25,0,2,0,0),(66,'VERDNAMADRID',66,66,NULL,72,44,163,3,18,0,0,0,0),(68,'COMPLEMENTOS',68,68,NULL,72,64,617,3,26,1,0,0,0),(69,'VERDNABARNA',69,69,NULL,74,44,432,3,22,0,0,0,0),(77,'PALETIZADO',77,77,NULL,72,37,230,4,15,1,0,0,0),(80,'EQUIPO J VALLES',80,80,NULL,72,42,693,3,4,0,0,0,0),(86,'LIMPIEZA',86,86,NULL,72,44,599,0,0,0,0,0,0),(88,'CONTROL',88,88,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0),(89,'COORDINACION',89,89,NULL,0,NULL,NULL,NULL,NULL,1,0,0,0),(90,'TRAILER',90,90,NULL,0,NULL,NULL,NULL,NULL,0,0,0,0); +INSERT INTO `department` VALUES (1,'VERDNATURA',1,76,1,0,NULL,NULL,NULL,0,0,0,0),(22,'COMPRAS',63,64,NULL,72,596,2,5,0,0,1,0),(23,'CAMARA',41,42,NULL,72,604,2,6,1,0,0,0),(31,'INFORMATICA',11,12,NULL,72,127,3,9,0,0,0,0),(34,'CONTABILIDAD',4,5,NULL,0,NULL,NULL,NULL,0,0,0,0),(35,'FINANZAS',6,7,NULL,0,NULL,NULL,NULL,0,0,0,0),(36,'LABORAL',8,9,NULL,0,NULL,NULL,NULL,0,0,0,0),(37,'PRODUCCION',15,24,NULL,72,230,3,11,0,0,0,0),(38,'SACADO',20,21,NULL,72,230,4,14,1,0,0,0),(39,'ENCAJADO',22,23,NULL,72,230,4,12,1,0,0,0),(41,'ADMINISTRACION',3,10,NULL,72,599,3,8,0,0,0,0),(43,'VENTAS',51,62,NULL,0,NULL,NULL,NULL,0,0,0,0),(44,'GERENCIA',2,25,NULL,72,300,2,7,0,0,0,0),(45,'LOGISTICA',26,37,NULL,72,596,3,19,0,0,0,0),(46,'REPARTO',38,39,NULL,72,659,3,10,0,0,0,0),(48,'ALMACENAJE',40,47,NULL,0,NULL,NULL,NULL,0,0,0,0),(49,'PROPIEDAD',48,73,NULL,72,1008,1,1,0,0,0,0),(52,'CARGA AEREA',27,28,NULL,72,163,4,28,0,0,0,0),(53,'MARKETING Y COMUNICACIÓN',58,59,NULL,72,1238,0,0,0,0,0,0),(54,'ORNAMENTALES',74,75,NULL,72,433,3,21,0,0,0,0),(55,'TALLER NATURAL',66,67,NULL,72,695,2,23,0,0,0,0),(56,'TALLER ARTIFICIAL',68,69,NULL,72,1780,2,24,0,0,0,0),(58,'CAMPOS',71,72,NULL,72,225,2,2,0,0,0,0),(59,'MANTENIMIENTO',49,50,NULL,72,1907,4,16,0,0,0,0),(60,'RECLAMACIONES',56,57,NULL,72,563,3,20,0,0,0,0),(61,'VNH',35,36,NULL,73,1297,3,17,0,0,0,0),(63,'VENTAS FRANCIA',60,61,NULL,72,277,2,27,0,0,0,0),(66,'VERDNAMADRID',31,32,NULL,72,163,3,18,0,0,0,0),(68,'COMPLEMENTOS',43,44,NULL,72,617,3,26,1,0,0,0),(69,'VERDNABARNA',33,34,NULL,74,432,3,22,0,0,0,0),(77,'PALETIZADO',18,19,NULL,72,230,4,15,1,0,0,0),(80,'EQUIPO J VALLES',54,55,NULL,72,693,3,4,0,0,0,0),(86,'LIMPIEZA',13,14,NULL,72,599,0,0,0,0,0,0),(89,'COORDINACION',16,17,NULL,0,NULL,NULL,NULL,1,0,0,0),(90,'TRAILER',29,30,NULL,0,NULL,NULL,NULL,0,0,0,0),(91,'ARTIFICIAL',45,46,NULL,0,NULL,NULL,NULL,1,0,0,0),(92,'EQUIPO SILVERIO',52,53,NULL,0,NULL,NULL,NULL,0,0,0,0),(93,'CONFECCION',65,70,NULL,0,NULL,NULL,NULL,0,0,0,0); /*!40000 ALTER TABLE `department` ENABLE KEYS */; UNLOCK TABLES; @@ -375,7 +375,7 @@ UNLOCK TABLES; LOCK TABLES `Gastos` WRITE; /*!40000 ALTER TABLE `Gastos` DISABLE KEYS */; -INSERT INTO `Gastos` VALUES ('2000000000',1,'Inmovilizado pendiente',1,0,0),('2000000000',3,'Compra de bienes de inmovilizado',1,0,0),('2600000000',1,'Fianzas',0,0,0),('4600000000',1,'Anticipos de remuneraciones',1,0,0),('4600000001',1,'Anticpos de remuneración',1,0,0),('4751000000',0,'Retenciones',0,1,0),('4751000000',1,'Retenciones',0,1,0),('4751000000',6,'Retencion',0,0,0),('4759000000',1,'Embargos salariales',1,0,0),('5200000006',1,'Deudas a c/p CRA',1,0,0),('5200000008',0,'Prestamo CP Transolver IVECO 269',1,0,0),('5200000008',1,'Prestamo Transolver 201600269',1,0,0),('5200000009',0,'Prestamo CP Transolver IVECO 270',1,0,0),('5200000009',1,'Prestamo Transolver 201600270',1,0,0),('5200000010',0,'Prestamo CP Transolver IVECO 271',1,0,0),('5200000010',1,'Prestamo Transolver 201600271',1,0,0),('5200000011',1,'Prestamo Transolver 339',0,0,0),('5200000012',1,'Prestamo Transolver 340',1,0,0),('5200000013',1,'Prestamo Transolver 341',1,0,0),('5200000014',1,'Prestamo a c/p BBVA 600.000€',1,0,0),('5200000022',1,'Linea comercio exterior',1,0,0),('5240000001',1,'Leasing BBVA',1,0,0),('5240000002',1,'Leasing c/p 0265670-03',1,0,0),('5240000003',1,'Leasing La Caixa 0265878-21',0,0,0),('5240002032',1,'Leasing Iveco',1,0,0),('5240002066',1,'Leasing c/p Man',1,0,0),('5240002104',1,'Leasing c/p La caixa 3 vehículos',1,0,0),('5325000003',6,'Prestamo a partes vinculadas',0,0,0),('5420000001',1,'Prestamo concedido',1,0,0),('5650000001',1,'Fianza c/p vehiculo',0,0,0),('5660000001',1,'Suplidos',0,0,0),('5660000001',20,'Suplidos',1,0,0),('5660000002',0,'Suplidos',0,0,0),('5660000002',1,'Suplidos Transitarios nacionales',1,0,0),('5660000003',1,'Deposito c/p Ebury',1,0,0),('5660000003',4,'Deposito Ebury',0,0,0),('5660000004',4,'Deposito Global Reach',0,0,0),('6001000000',1,'Compras a terceros nacional',1,0,0),('6001000000',18,'Compras a terceros nacional',1,0,0),('6001000000',19,'Compras a terceros nacional',1,0,0),('6001000001',1,'Adquisiones en Europa',0,0,0),('6001000001',3,'Adquisición en Europa',1,0,0),('6002000000',1,'Transportes de compras',1,0,0),('6002000001',1,'Tranportes de compra Europa',1,0,0),('6002000001',4,'Transportes de compras Europa',1,0,0),('6002000567',0,'Transporte de compras VNH',1,0,0),('6003000000',1,'Adquisición mercancia Extracomunitaria',1,0,0),('6003000000',5,'Adquisición mercancia Extracomunitaria',1,0,0),('6003000000',6,'Adquisición mercancia Extracomunitaria',1,0,0),('6003000567',0,'Compra de mercancia extracomunitaria VNH',1,0,0),('6004000000',1,'Transporte compras Sudamérica',1,0,0),('6004000000',4,'Transporte compras Sudamérica',1,0,0),('6004000000',6,'Transporte compras Sudamérica',1,0,0),('6010000000',1,'Materias primas',1,0,0),('6020000000',1,'Otros aprovisionamientos',1,0,0),('6020000001',1,'Embalajes',1,0,0),('6020000002',1,'Otros aprov. Taller artíficial',1,0,0),('6070000000',1,'Trabajos de produccion encargados a terceros',1,0,0),('6090000000',6,'Rappels por compras',1,0,0),('6100000000',0,'Variacion existencias',1,0,0),('6210000000',1,'Arrendamientos',1,0,0),('6210000001',1,'Arrendamiento vehículo',1,0,0),('6210000001',4,'Gastos de arrendamiento vehículos',1,0,0),('6210000002',1,'Arrendamiento nave',1,0,0),('6210000003',1,'Arrendamiento espacio virtual-informatic',1,0,0),('6210000004',1,'Arrendamiento elementos para el proceso de informa',1,0,0),('6210000005',1,'Arrendamiento CC y banddejas',1,0,0),('6210000567',0,'Alquiler VNH',1,0,0),('6220000000',1,'Reparaciones y conservacion',1,0,0),('6220000001',1,'Reparación-Informatica',1,0,0),('6220000001',4,'Reparacion y mantenimiento informatica',1,0,0),('6220000003',1,'Reparación-Vehiculos',1,0,0),('6220000004',1,'Reparación-Instalaciones',1,0,0),('6220000005',1,'Reparación y mantenimineto CCs',1,0,0),('6220000006',1,'Repracion y conser maquinaria',1,0,0),('6230000000',1,'Servicios de profesionales independientes',1,0,0),('6230000000',4,'Servicio de profesionales',0,0,0),('6230000000',6,'Servicios de profesionales',1,0,0),('6230000001',1,'Servicios por gestión de ventas',1,0,0),('6230000001',4,'Servicios por gestión de ventas',1,0,0),('6240000000',1,'Transportes de ventas rutas',1,0,0),('6240000000',4,'Transportes de ventas',1,0,0),('6240000001',1,'Transporte ventas agencias',1,0,0),('6240000002',1,'Transporte ventas reclamaciones',1,0,0),('6240000567',1,'Transporte ventas VNH',1,0,0),('6250000000',1,'Primas de seguros',1,0,0),('6250000000',4,'Prima de Seguros',1,0,0),('6250000001',1,'Primas de seguros-Personales',1,0,0),('6250000002',1,'Primas de seguros-Colectivos',1,0,0),('6250000003',1,'Primas de seguros-Vehiculos',1,0,0),('6250000004',1,'Primas de seguros-Inmuebles',1,0,0),('6250000567',0,'Seguros VNH',1,0,0),('6260000000',1,'Gastos bancarios',1,0,0),('6260000000',4,'Gastos bancarios',0,0,0),('6260000000',6,'Gastos bancarios',1,0,0),('6260000001',1,'Gastos bancarios datafono',1,0,0),('6260000002',1,'Gastos bancarios transferencia nacional',1,0,0),('6260000003',1,'Gastos bancarios transferencia Europa',1,0,0),('6260000004',1,'Gastos bancarios transferencia divisas',1,0,0),('6260000567',0,'Gastos bancarios VNH',1,0,0),('6270000000',1,'Publicidad y RRPP',1,0,0),('6270000000',3,'Publicidad, propaganda y RR PP',1,0,0),('6270000000',6,'Publicidad',1,0,0),('6270000000',14,'Publicidad, propaganda RRPP',1,0,0),('6270000001',1,'Patrocinio',0,0,0),('6280000000',1,'Suministros',1,0,0),('6280000001',1,'Telefonos',1,0,0),('6280000002',1,'Gasoil',1,0,0),('6280000003',1,'Suministros-Electricidad',1,0,0),('6280000004',1,'Internet',1,0,0),('6280000567',0,'Suministros VNH',1,0,0),('6280001567',0,'Suministros telefono VNH',1,0,0),('6280003567',0,'Suministro luz VNH',1,0,0),('6290000000',1,'Otros servicios',1,0,0),('6290000000',6,'Otros gastos varios',1,0,0),('6290000001',1,'Material de oficina',1,0,0),('6290000002',1,'Gastos en formacion',1,0,0),('6290000003',1,'Asesoria juridica',1,0,0),('6290000004',4,'Otros servicios UE',1,0,0),('6290000005',1,'Gastos varios-Correos',1,0,0),('6290000006',1,'Otros servicios extranjero',1,0,0),('6290000006',5,'Otros servicios extranjero',1,0,0),('6290000006',6,'Otros servicios extranjero',1,0,0),('6290000007',1,'Gastos pequeño material',1,0,0),('6290000007',3,'Compras pequeño material',1,0,0),('6290000007',6,'Pequeño material',1,0,0),('6290000008',1,'Gastos varios-uniformes personal',1,0,0),('6290000008',3,'Compra uniformes',1,0,0),('6290000009',1,'Gastos-CC Container',1,0,0),('6290000010',1,'Gastos formación clientes',1,0,0),('6290000012',1,'Gastos gestión contra-reembolsos',1,0,0),('6290000013',1,'Arrendamiento Vilassar',1,0,0),('6290000014',1,'Gasto laboral espresas ETT',1,0,0),('6290000015',1,'Gasto compra terminales moviles y similares',1,0,0),('6290000015',3,'Gasto compra terminales moviles y similares',1,0,0),('6290000015',6,'Gasto compra terminales moviles y similares',1,0,0),('6290000016',1,'Gasto gestión cobro ventas',1,0,0),('6290000553',1,'Gastos viaje administrador',1,0,0),('6290000553',4,'Gastos viaje administrador-gerente',1,0,0),('6290000553',6,'Gastos viaje administrador',1,0,0),('6290001000',1,'Gastos de viaje',1,0,0),('6290001000',4,'Gastos viajes otros departamentos',1,0,0),('6290001000',6,'Gastos viaje personal otros departamentos',1,0,0),('6290001001',1,'Gastos R.R.P.P. Gerente',1,0,0),('6290001002',1,'Gastos R.R.P.P. Comerciales',1,0,0),('6290001567',0,'Gastos material oficina',1,0,0),('6300000000',1,'Impuesto de sociedades',1,0,0),('6310000000',1,'Otros tributos',1,0,0),('6380000000',1,'Ajustes positivos s/b Bº',1,0,0),('6400000000',0,'Sueldos y salarios',1,0,0),('6400000000',1,'Salarios',0,0,0),('6400000001',0,'Productividad',1,0,0),('6400000567',0,'Salarios VNH',1,0,0),('6410000001',1,'Indemnizaciones',1,0,0),('6420000000',0,'Seguridad Social a cargo de la empresa',1,0,0),('6420000000',1,'Seguridad Social',0,0,0),('6490000000',1,'Otros gastos sociales',1,0,0),('6500000000',1,'Impagados definitivos',1,0,0),('6620000000',0,'Intereses Bancarios',1,0,0),('6620000001',1,'Intereses deudas a l/p',1,0,0),('6620000002',1,'Intereses Leasing La caixa 0265670-03',1,0,0),('6620000003',1,'Interses Leasing La caixa 0265878-21',1,0,0),('6620000006',1,'Intereses deuda prestamo CRA',1,0,0),('6620000007',1,'Intereses La Caixa linea comercio exterior',1,0,0),('6620000007',16,'Intereses La Caixa Linea Comercio Exterior',0,0,0),('6620000008',1,'Intereses Prestamos Transolver 2016',1,0,0),('6620000011',1,'Intereses BBVA linea comercio exterior',1,0,0),('6620000014',1,'Intereses Prestamo BBVA',1,0,0),('6620000015',1,'Interés Póliza Deutsche Bank Comercio Exterior',0,0,0),('6620000023',1,'Intereses Bankinter Póliza Comercio Exterior',0,0,0),('6620002032',1,'Intereses Leaing Iveco',1,0,0),('6620002066',1,'Leasing Intereses Man',1,0,0),('6620002104',1,'Intereses Leasing La caixa 3 vehículos',1,0,0),('6622000000',20,'Intereses deudas otras partes vinculadas',1,0,0),('6660000000',1,'Perdidas en valores representativos de deuda a l/p',0,0,0),('6681000000',1,'Diferencia negativa tipo de cambio',1,0,0),('6681000000',4,'Diferencia negativa tipo de cambio',0,0,0),('6681000000',6,'Diferencia negativa tipo de cambio',1,0,0),('6681000567',0,'Diferencias de cambio VNH',1,0,0),('6690000000',1,'Otros gastos financieros',1,0,0),('6690000000',6,'Gastos financieros',1,0,0),('6720000000',16,'Perdidas procedentes de inversiones',0,0,0),('6780000000',1,'Gastos extraordinarios',1,0,0),('6780000001',1,'Gastos no deducibles',1,0,0),('6780000001',16,'Gasto no deducible',0,0,0),('6800000000',1,'Amortización inmovilizado intangible',1,0,0),('6800000001',0,'Amortizacion inmovilizado material',1,0,0),('6800000001',1,'Amortización del inmovilizado material',1,0,0),('6810000000',0,'Amortizaciones inmovilizado',1,0,0),('6810000000',1,'Amortizacion inmovilizado material',1,0,0),('7000000000',0,'Ventas',1,0,0),('7000000001',1,'Venta entre empresas',1,0,0),('7000010000',0,'Terceros Flor',1,0,0),('7000020000',0,'Terceros Planta',1,0,0),('7000030000',0,'Terceros Complementos',1,0,0),('7000040000',0,'Terceros Artificial',1,0,0),('7000050000',0,'Terceros Verdes',1,0,0),('7000060000',0,'Terceros Otros',1,0,0),('7000070000',0,'Terceros Confección',1,0,0),('7000080000',1,'Terceros Logística',1,0,0),('7001000000',1,'Mercaderia',1,0,1),('7001010000',0,'Grupo Flor',1,0,0),('7001020000',0,'Grupo Planta',1,0,0),('7001030000',0,'Grupo Complementos',1,0,0),('7001040000',0,'Grupo Artificial',1,0,0),('7001050000',0,'Grupo Verdes',1,0,0),('7001060000',0,'Grupo Otros',1,0,0),('7001070000',0,'Grupo Confección',1,0,0),('7001080000',1,'Grupo Logística',1,0,0),('7002010000',0,'Asociados Flor',1,0,0),('7002020000',0,'Asociados Planta',1,0,0),('7002030000',0,'Asociados Complementos',1,0,0),('7002040000',0,'Asociados Artificial',1,0,0),('7002050000',0,'Asociados Verdes',1,0,0),('7002060000',0,'Asociados Otros',1,0,0),('7002070000',0,'Asociados Confección',1,0,0),('7002080000',1,'Asociados Logística',1,0,0),('7040000000',1,'Embalajes',1,0,1),('7050000000',1,'Prestacion de servicios',1,0,1),('7400000000',1,'Subvenciones, donaciones a la explotacion',1,0,0),('7550000000',0,'Ingresos por serivicios al personal',1,0,0),('7620000000',16,'Intereses de créditos a l/p',1,0,0),('768,0',0,NULL,1,0,0),('7680000000',0,'Diferencias positivas de cambio',1,0,0),('7680000000',1,'Diferenica positiva tipo de cambio',1,0,0),('7680000000',4,'Diferenica positiva tipo de cambio',0,0,0),('7680000000',6,'Diferenica positiva tipo de cambio',1,0,0),('7690000000',1,'Otros ingresos financieros',1,0,0),('7710000000',20,'Beneficio procendente vta inm',1,0,0),('7780000000',1,'Ingresos excepcionales',1,0,0),('7780000000',16,'Ingreso extraordinario',0,0,0),('7780000001',1,'Indemnizaciones transporte',1,0,0),('7780000001',4,'Indemnizaciones agencias transporte',1,0,0),('7780000001',5,'Indemnizaciones agencias transporte',1,0,0),('7780000001',6,'Indemnizaciones transporte',1,0,0),('7940000000',1,'Reversión impagos',1,0,0),('7940000000',16,'Reversión impagos',0,0,0); +INSERT INTO `Gastos` VALUES ('2000000000',1,'Inmovilizado pendiente',1,0,0),('2000000000',3,'Compra de bienes de inmovilizado',1,0,0),('2600000000',1,'Fianzas',0,0,0),('4600000000',1,'Anticipos de remuneraciones',1,0,0),('4600000001',1,'Anticpos de remuneración',1,0,0),('4751000000',0,'Retenciones',0,1,0),('4751000000',1,'Retenciones',0,1,0),('4751000000',6,'Retencion',0,0,0),('4759000000',1,'Embargos salariales',1,0,0),('5200000006',1,'Deudas a c/p CRA',1,0,0),('5200000008',0,'Prestamo CP Transolver IVECO 269',1,0,0),('5200000008',1,'Prestamo Transolver 201600269',1,0,0),('5200000009',0,'Prestamo CP Transolver IVECO 270',1,0,0),('5200000009',1,'Prestamo Transolver 201600270',1,0,0),('5200000010',0,'Prestamo CP Transolver IVECO 271',1,0,0),('5200000010',1,'Prestamo Transolver 201600271',1,0,0),('5200000011',1,'Prestamo Transolver 339',0,0,0),('5200000012',1,'Prestamo Transolver 340',1,0,0),('5200000013',1,'Prestamo Transolver 341',1,0,0),('5200000014',1,'Prestamo a c/p BBVA 600.000€',1,0,0),('5200000022',1,'Linea comercio exterior',1,0,0),('5240000001',1,'Leasing BBVA',1,0,0),('5240000517',1,'Leasing c/p 0265670-03',1,0,0),('5240000518',1,'Leasing La Caixa 0265878-21',1,0,0),('5240000520',1,'Leasing Caixabank 0265669-09',1,0,0),('5240002032',1,'Leasing Iveco',1,0,0),('5240002066',1,'Leasing c/p Man',1,0,0),('5240002104',1,'Leasing c/p La caixa 3 vehículos',1,0,0),('5325000003',6,'Prestamo a partes vinculadas',0,0,0),('5420000001',1,'Prestamo concedido',1,0,0),('5650000001',1,'Fianza c/p vehiculo',0,0,0),('5660000001',1,'Suplidos',0,0,0),('5660000001',20,'Suplidos',1,0,0),('5660000002',0,'Suplidos',0,0,0),('5660000002',1,'Suplidos Transitarios nacionales',1,0,0),('5660000003',1,'Deposito c/p Ebury',1,0,0),('5660000003',4,'Deposito Ebury',0,0,0),('5660000004',4,'Deposito Global Reach',0,0,0),('6001000000',1,'Compras a terceros nacional',1,0,0),('6001000000',18,'Compras a terceros nacional',1,0,0),('6001000000',19,'Compras a terceros nacional',1,0,0),('6001000001',1,'Adquisiones en Europa',0,0,0),('6001000001',3,'Adquisición en Europa',1,0,0),('6002000000',1,'Transportes de compras',1,0,0),('6002000001',1,'Tranportes de compra Europa',1,0,0),('6002000001',4,'Transportes de compras Europa',1,0,0),('6002000567',0,'Transporte de compras VNH',1,0,0),('6003000000',1,'Adquisición mercancia Extracomunitaria',1,0,0),('6003000000',5,'Adquisición mercancia Extracomunitaria',1,0,0),('6003000000',6,'Adquisición mercancia Extracomunitaria',1,0,0),('6003000567',0,'Compra de mercancia extracomunitaria VNH',1,0,0),('6004000000',1,'Transporte compras Sudamérica',1,0,0),('6004000000',4,'Transporte compras Sudamérica',1,0,0),('6004000000',6,'Transporte compras Sudamérica',1,0,0),('6010000000',1,'Materias primas',1,0,0),('6020000000',1,'Otros aprovisionamientos',1,0,0),('6020000001',1,'Embalajes',1,0,0),('6020000002',1,'Otros aprov. Taller artíficial',1,0,0),('6070000000',1,'Trabajos de produccion encargados a terceros',1,0,0),('6090000000',6,'Rappels por compras',1,0,0),('6100000000',0,'Variacion existencias',1,0,0),('6210000000',1,'Arrendamientos',1,0,0),('6210000001',1,'Arrendamiento vehículo',1,0,0),('6210000001',4,'Gastos de arrendamiento vehículos',1,0,0),('6210000002',1,'Arrendamiento nave',1,0,0),('6210000003',1,'Arrendamiento espacio virtual-informatic',1,0,0),('6210000004',1,'Arrendamiento elementos para el proceso de informa',1,0,0),('6210000005',1,'Arrendamiento CC y banddejas',1,0,0),('6210000567',0,'Alquiler VNH',1,0,0),('6220000000',1,'Reparaciones y conservacion',1,0,0),('6220000001',1,'Reparación-Informatica',1,0,0),('6220000001',4,'Reparacion y mantenimiento informatica',1,0,0),('6220000003',1,'Reparación-Vehiculos',1,0,0),('6220000004',1,'Reparación-Instalaciones',1,0,0),('6220000005',1,'Reparación y mantenimineto CCs',1,0,0),('6220000006',1,'Repracion y conser maquinaria',1,0,0),('6230000000',1,'Servicios de profesionales independientes',1,0,0),('6230000000',4,'Servicio de profesionales',0,0,0),('6230000000',6,'Servicios de profesionales',1,0,0),('6230000001',1,'Servicios por gestión de ventas',1,0,0),('6230000001',4,'Servicios por gestión de ventas',1,0,0),('6240000000',1,'Transportes de ventas rutas',1,0,0),('6240000000',4,'Transportes de ventas',1,0,0),('6240000001',1,'Transporte ventas agencias',1,0,0),('6240000002',1,'Transporte ventas reclamaciones',1,0,0),('6240000567',1,'Transporte ventas VNH',1,0,0),('6250000000',1,'Primas de seguros',1,0,0),('6250000000',4,'Prima de Seguros',1,0,0),('6250000001',1,'Primas de seguros-Personales',1,0,0),('6250000002',1,'Primas de seguros-Colectivos',1,0,0),('6250000003',1,'Primas de seguros-Vehiculos',1,0,0),('6250000004',1,'Primas de seguros-Inmuebles',1,0,0),('6250000567',0,'Seguros VNH',1,0,0),('6260000000',1,'Gastos bancarios',1,0,0),('6260000000',4,'Gastos bancarios',0,0,0),('6260000000',6,'Gastos bancarios',1,0,0),('6260000001',1,'Gastos bancarios datafono',1,0,0),('6260000002',1,'Gastos bancarios transferencia nacional',1,0,0),('6260000003',1,'Gastos bancarios transferencia Europa',1,0,0),('6260000004',1,'Gastos bancarios transferencia divisas',1,0,0),('6260000567',0,'Gastos bancarios VNH',1,0,0),('6270000000',1,'Publicidad y RRPP',1,0,0),('6270000000',3,'Publicidad, propaganda y RR PP',1,0,0),('6270000000',6,'Publicidad',1,0,0),('6270000000',14,'Publicidad, propaganda RRPP',1,0,0),('6270000001',1,'Patrocinio',0,0,0),('6280000000',1,'Suministros',1,0,0),('6280000001',1,'Telefonos',1,0,0),('6280000002',1,'Gasoil',1,0,0),('6280000003',1,'Suministros-Electricidad',1,0,0),('6280000004',1,'Internet',1,0,0),('6280000567',0,'Suministros VNH',1,0,0),('6280001567',0,'Suministros telefono VNH',1,0,0),('6280003567',0,'Suministro luz VNH',1,0,0),('6290000000',1,'Otros servicios',1,0,0),('6290000000',6,'Otros gastos varios',1,0,0),('6290000001',1,'Material de oficina',1,0,0),('6290000002',1,'Gastos en formacion',1,0,0),('6290000003',1,'Asesoria juridica',1,0,0),('6290000004',4,'Otros servicios UE',1,0,0),('6290000005',1,'Gastos varios-Correos',1,0,0),('6290000006',1,'Otros servicios extranjero',1,0,0),('6290000006',5,'Otros servicios extranjero',1,0,0),('6290000006',6,'Otros servicios extranjero',1,0,0),('6290000007',1,'Gastos pequeño material',1,0,0),('6290000007',3,'Compras pequeño material',1,0,0),('6290000007',6,'Pequeño material',1,0,0),('6290000008',1,'Gastos varios-uniformes personal',1,0,0),('6290000008',3,'Compra uniformes',1,0,0),('6290000009',1,'Gastos-CC Container',1,0,0),('6290000010',1,'Gastos formación clientes',1,0,0),('6290000012',1,'Gastos gestión contra-reembolsos',1,0,0),('6290000013',1,'Arrendamiento Vilassar',1,0,0),('6290000014',1,'Gasto laboral espresas ETT',1,0,0),('6290000015',1,'Gasto compra terminales moviles y similares',1,0,0),('6290000015',3,'Gasto compra terminales moviles y similares',1,0,0),('6290000015',6,'Gasto compra terminales moviles y similares',1,0,0),('6290000016',1,'Gasto gestión cobro ventas',1,0,0),('6290000553',1,'Gastos viaje administrador',1,0,0),('6290000553',4,'Gastos viaje administrador-gerente',1,0,0),('6290000553',6,'Gastos viaje administrador',1,0,0),('6290001000',1,'Gastos de viaje',1,0,0),('6290001000',4,'Gastos viajes otros departamentos',1,0,0),('6290001000',6,'Gastos viaje personal otros departamentos',1,0,0),('6290001001',1,'Gastos R.R.P.P. Gerente',1,0,0),('6290001002',1,'Gastos R.R.P.P. Comerciales',1,0,0),('6290001567',0,'Gastos material oficina',1,0,0),('6300000000',1,'Impuesto de sociedades',1,0,0),('6310000000',1,'Otros tributos',1,0,0),('6380000000',1,'Ajustes positivos s/b Bº',1,0,0),('6400000000',0,'Sueldos y salarios',1,0,0),('6400000000',1,'Salarios',0,0,0),('6400000001',0,'Productividad',1,0,0),('6400000567',0,'Salarios VNH',1,0,0),('6410000001',1,'Indemnizaciones',1,0,0),('6420000000',0,'Seguridad Social a cargo de la empresa',1,0,0),('6420000000',1,'Seguridad Social',0,0,0),('6490000000',1,'Otros gastos sociales',1,0,0),('6500000000',1,'Impagados definitivos',1,0,0),('6620000000',0,'Intereses Bancarios',1,0,0),('6620000001',1,'Intereses deudas a l/p',1,0,0),('6620000006',1,'Intereses deuda prestamo CRA',1,0,0),('6620000007',1,'Intereses La Caixa linea comercio exterior',1,0,0),('6620000007',16,'Intereses La Caixa Linea Comercio Exterior',0,0,0),('6620000008',1,'Intereses Prestamos Transolver 2016',1,0,0),('6620000011',1,'Intereses BBVA linea comercio exterior',1,0,0),('6620000014',1,'Intereses Prestamo BBVA',1,0,0),('6620000015',1,'Interés Póliza Deutsche Bank Comercio Exterior',0,0,0),('6620000023',1,'Intereses Bankinter Póliza Comercio Exterior',0,0,0),('6620000517',1,'Intereses Leasing La caixa 0265670-03',1,0,0),('6620000518',1,'Interses Leasing La caixa 0265878-21',1,0,0),('6620000520',1,'Intereses Caixabank leasing 265669-09',1,0,0),('6620002032',1,'Intereses Leaing Iveco',1,0,0),('6620002066',1,'Leasing Intereses Man',1,0,0),('6620002104',1,'Intereses Leasing La caixa 3 vehículos',1,0,0),('6622000000',20,'Intereses deudas otras partes vinculadas',1,0,0),('6660000000',1,'Perdidas en valores representativos de deuda a l/p',0,0,0),('6681000000',1,'Diferencia negativa tipo de cambio',1,0,0),('6681000000',4,'Diferencia negativa tipo de cambio',0,0,0),('6681000000',6,'Diferencia negativa tipo de cambio',1,0,0),('6681000567',0,'Diferencias de cambio VNH',1,0,0),('6690000000',1,'Otros gastos financieros',1,0,0),('6690000000',6,'Gastos financieros',1,0,0),('6720000000',16,'Perdidas procedentes de inversiones',0,0,0),('6780000000',1,'Gastos extraordinarios',1,0,0),('6780000001',1,'Gastos no deducibles',1,0,0),('6780000001',16,'Gasto no deducible',0,0,0),('6800000000',1,'Amortización inmovilizado intangible',1,0,0),('6800000001',0,'Amortizacion inmovilizado material',1,0,0),('6800000001',1,'Amortización del inmovilizado material',1,0,0),('6810000000',0,'Amortizaciones inmovilizado',1,0,0),('6810000000',1,'Amortizacion inmovilizado material',1,0,0),('7000000000',0,'Ventas',1,0,0),('7000000001',1,'Venta entre empresas',1,0,0),('7000010000',0,'Terceros Flor',1,0,0),('7000020000',0,'Terceros Planta',1,0,0),('7000030000',0,'Terceros Complementos',1,0,0),('7000040000',0,'Terceros Artificial',1,0,0),('7000050000',0,'Terceros Verdes',1,0,0),('7000060000',0,'Terceros Otros',1,0,0),('7000070000',0,'Terceros Confección',1,0,0),('7000080000',1,'Terceros Logística',1,0,0),('7000090000',1,'Terceros Mascotas',1,0,0),('7000100000',1,'Terceros Confeccion Artificial',1,0,0),('7001000000',1,'Mercaderia',1,0,1),('7001009000',1,'Grupo Mascotas',1,0,0),('7001010000',0,'Grupo Flor',1,0,0),('7001020000',0,'Grupo Planta',1,0,0),('7001030000',0,'Grupo Complementos',1,0,0),('7001040000',0,'Grupo Artificial',1,0,0),('7001050000',0,'Grupo Verdes',1,0,0),('7001060000',0,'Grupo Otros',1,0,0),('7001070000',0,'Grupo Confección',1,0,0),('7001080000',1,'Grupo Logística',1,0,0),('7001100000',1,'Grupo Confeccion Artificial',1,0,0),('7002009000',1,'Asociados Mascotas',1,0,0),('7002010000',0,'Asociados Flor',1,0,0),('7002020000',0,'Asociados Planta',1,0,0),('7002030000',0,'Asociados Complementos',1,0,0),('7002040000',0,'Asociados Artificial',1,0,0),('7002050000',0,'Asociados Verdes',1,0,0),('7002060000',0,'Asociados Otros',1,0,0),('7002070000',0,'Asociados Confección',1,0,0),('7002080000',1,'Asociados Logística',1,0,0),('7002100000',1,'Asociados Confeccion Artificial',1,0,0),('7040000000',1,'Embalajes',1,0,1),('7050000000',1,'Prestacion de servicios',1,0,1),('7400000000',1,'Subvenciones, donaciones a la explotacion',1,0,0),('7550000000',0,'Ingresos por serivicios al personal',1,0,0),('7620000000',16,'Intereses de créditos a l/p',1,0,0),('768,0',0,NULL,1,0,0),('7680000000',0,'Diferencias positivas de cambio',1,0,0),('7680000000',1,'Diferenica positiva tipo de cambio',1,0,0),('7680000000',4,'Diferenica positiva tipo de cambio',0,0,0),('7680000000',6,'Diferenica positiva tipo de cambio',1,0,0),('7690000000',1,'Otros ingresos financieros',1,0,0),('7710000000',20,'Beneficio procendente vta inm',1,0,0),('7780000000',1,'Ingresos excepcionales',1,0,0),('7780000000',16,'Ingreso extraordinario',0,0,0),('7780000001',1,'Indemnizaciones transporte',1,0,0),('7780000001',4,'Indemnizaciones agencias transporte',1,0,0),('7780000001',5,'Indemnizaciones agencias transporte',1,0,0),('7780000001',6,'Indemnizaciones transporte',1,0,0),('7940000000',1,'Reversión impagos',1,0,0),('7940000000',16,'Reversión impagos',0,0,0); /*!40000 ALTER TABLE `Gastos` ENABLE KEYS */; UNLOCK TABLES; @@ -438,7 +438,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:10 +-- Dump completed on 2019-07-04 11:10:35 USE `bi`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -486,7 +486,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:10 +-- Dump completed on 2019-07-04 11:10:35 USE `cache`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -524,7 +524,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:10 +-- Dump completed on 2019-07-04 11:10:35 USE `hedera`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -592,7 +592,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:10 +-- Dump completed on 2019-07-04 11:10:35 USE `postgresql`; -- MySQL dump 10.13 Distrib 5.7.26, for Linux (x86_64) -- @@ -667,7 +667,7 @@ UNLOCK TABLES; LOCK TABLES `workcenter` WRITE; /*!40000 ALTER TABLE `workcenter` DISABLE KEYS */; -INSERT INTO `workcenter` VALUES (1,'Silla',20,906,1),(2,'Mercaflor',19,NULL,NULL),(3,'Marjales',26,20006,NULL),(4,'VNH',NULL,NULL,3),(5,'Madrid',28,2846,5),(6,'Vilassar',88,88014,2),(7,'Tenerife',NULL,NULL,10),(8,'Silla-Agrario',26,NULL,NULL); +INSERT INTO `workcenter` VALUES (1,'Silla',20,935,1),(2,'Mercaflor',19,NULL,NULL),(3,'Marjales',26,20006,NULL),(4,'VNH',NULL,NULL,3),(5,'Madrid',28,2847,5),(6,'Vilassar',88,88016,2),(7,'Tenerife',NULL,NULL,10),(8,'Silla-Agrario',26,NULL,NULL); /*!40000 ALTER TABLE `workcenter` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; @@ -680,4 +680,4 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-10 14:45:10 +-- Dump completed on 2019-07-04 11:10:35 diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql index eb44a0f75..5af72a24a 100644 --- a/db/dump/fixtures.sql +++ b/db/dump/fixtures.sql @@ -58,11 +58,11 @@ INSERT INTO `vn`.`country`(`id`, `country`, `isUeeMember`, `code`, `currencyFk`, INSERT INTO `vn`.`warehouse`(`id`, `name`, `isComparative`, `isInventory`, `hasAvailable`, `isManaged`) VALUES - (1, 'Warehouse One', 0, 1, 1, 1), - (2, 'Warehouse Two', 0, 1, 1, 1), + (1, 'Warehouse One', 1, 1, 1, 1), + (2, 'Warehouse Two', 1, 1, 1, 1), (3, 'Warehouse Three', 1, 1, 1, 1), (4, 'Warehouse Four', 1, 1, 1, 1), - (5, 'Warehouse Five', 1, 0, 1, 0); + (5, 'Warehouse Five', 1, 1, 1, 1); INSERT INTO `vn`.`warehouseAlias`(`id`, `name`) VALUES @@ -186,16 +186,16 @@ INSERT INTO `vn`.`contactChannel`(`id`, `name`) INSERT INTO `vn`.`client`(`id`,`name`,`fi`,`socialName`,`contact`,`street`,`city`,`postcode`,`phone`,`mobile`,`fax`,`isRelevant`,`email`,`iban`,`dueDay`,`accountingAccount`,`isEqualizated`,`provinceFk`,`hasToInvoice`,`credit`,`countryFk`,`isActive`,`gestdocFk`,`quality`,`payMethodFk`,`created`,`isToBeMailed`,`contactChannelFk`,`hasSepaVnl`,`hasCoreVnl`,`hasCoreVnh`,`riskCalculated`,`clientTypeFk`,`mailAddress`,`cplusTerIdNifFk`,`hasToInvoiceByAddress`,`isTaxDataChecked`,`isFreezed`,`creditInsurance`,`isCreatedAsServed`,`hasInvoiceSimplified`,`salesPersonFk`,`isVies`,`eypbc`) VALUES - (101, 'Bruce Wayne', '84612325V', 'Batman', 'Alfred', '1007 Mountain Drive, Gotham', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'BruceWayne@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 1, NULL, 0, 0, 18, 0, 1), - (102, 'Petter Parker', '87945234L', 'Spider-Man', 'Aunt May', '20 Ingram Street', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'PetterParker@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 0, 1, NULL, 0, 0, 18, 0, 1), + (101, 'Bruce Wayne', '84612325V', 'Batman', 'Alfred', '1007 Mountain Drive, Gotham', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'BruceWayne@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 0, NULL, 0, 0, 18, 0, 1), + (102, 'Petter Parker', '87945234L', 'Spider-Man', 'Aunt May', '20 Ingram Street', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'PetterParker@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 0, NULL, 0, 0, 18, 0, 1), (103, 'Clark Kent', '06815934E', 'Super-Man', 'lois lane', '344 Clinton Street', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'ClarkKent@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 0, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 0, NULL, 0, 0, 18, 0, 1), (104, 'Tony Stark', '06089160W', 'Iron-Man', 'Pepper Potts', '10880 Malibu Point', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'TonyStark@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 0, NULL, 0, 0, 18, 0, 1), - (105, 'Max Eisenhardt', '251628698', 'Magneto', 'Rogue', 'Unknown Whereabouts', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'MaxEisenhardt@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 0, NULL, 0, 0, NULL, 0, 1), + (105, 'Max Eisenhardt', '251628698', 'Magneto', 'Rogue', 'Unknown Whereabouts', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'MaxEisenhardt@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 1, NULL, 0, 0, 18, 0, 1), (106, 'DavidCharlesHaller', '53136686Q', 'Legion', 'Charles Xavier', 'Evil hideout', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'DavidCharlesHaller@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 0, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 0, NULL, 0, 0, 19, 0, 1), (107, 'Hank Pym', '09854837G', 'Ant-Man', 'Hawk', 'Anthill', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'HankPym@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 0, 0, NULL, 0, 0, 19, 0, 1), (108, 'Charles Xavier', '22641921P', 'Professor X', 'Beast', '3800 Victory Pkwy, Cincinnati, OH 45207, USA', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'CharlesXavier@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 1, 1, NULL, 0, 0, 19, 0, 1), - (109, 'Bruce Banner', '16104829E', 'Hulk', 'Black widow', 'Somewhere in New York', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'BruceBanner@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 0, 1, NULL, 0, 0, 19, 0, 1), - (110, 'Jessica Jones', '58282869H', 'Jessica Jones', 'Luke Cage', 'NYCC 2015 Poster', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'JessicaJones@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 0, 1, NULL, 0, 0, NULL, 0, 1), + (109, 'Bruce Banner', '16104829E', 'Hulk', 'Black widow', 'Somewhere in New York', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'BruceBanner@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 0, 0, NULL, 0, 0, 19, 0, 1), + (110, 'Jessica Jones', '58282869H', 'Jessica Jones', 'Luke Cage', 'NYCC 2015 Poster', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, 'JessicaJones@mydomain.com', NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 1, NULL, 1, 1, 0, 0, NULL, 0, 0, NULL, 0, 1), (200, 'Missing', NULL, 'Missing man', 'Anton', 'The space', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, NULL, NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 4, NULL, 1, 0, 1, 0, NULL, 1, 0, NULL, 0, 1), (400, 'Trash', NULL, 'Garbage man', 'Unknown name', 'New York city', 'Silla', 46460, 1111111111, 222222222, 333333333, 1, NULL, NULL, 0, 1234567890, 0, 1, 1, 300, 1, 1, NULL, 10, 5,CURDATE(), 1, 5, 1, 1, 1, '0000-00-00', 4, NULL, 1, 0, 1, 0, NULL, 1, 0, NULL, 0, 1); @@ -332,9 +332,9 @@ INSERT INTO `vn`.`observationType`(`id`,`description`) INSERT INTO `vn`.`addressObservation`(`id`,`addressFk`,`observationTypeFk`,`description`) VALUES - (1, 1, 1, 'under the floor'), - (2, 1, 2, 'wears leather and goes out at night'), - (3, 1, 3, 'care with the dog'); + (1, 121, 1, 'under the floor'), + (2, 121, 2, 'wears leather and goes out at night'), + (3, 121, 3, 'care with the dog'); INSERT INTO `vn`.`creditClassification`(`id`, `client`, `dateStart`, `dateEnd`) VALUES @@ -352,13 +352,13 @@ INSERT INTO `vn`.`creditInsurance`(`id`, `creditClassification`, `credit`, `crea INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`) VALUES - (1, '1899-12-30 12:15:00', 56, CURDATE(), 1, 1, 'first route', 0.2, 10, CURDATE(), CURDATE()), - (2, '1899-12-30 13:20:00', 56, CURDATE(), 1, 1, 'second route', null, 20, CURDATE(), CURDATE()), - (3, '1899-12-30 14:30:00', 56, CURDATE(), 2, 7, 'third route', null, 30, CURDATE(), CURDATE()), - (4, '1899-12-30 15:45:00', 56, CURDATE(), 3, 7, 'fourth route', 0.1, 40, CURDATE(), CURDATE()), - (5, '1899-12-30 16:00:00', 56, CURDATE(), 4, 8, 'fifth route', null, 50, CURDATE(), CURDATE()), - (6, null, 57, CURDATE(), 5, 8, 'sixth route', null, 60, CURDATE(), CURDATE()), - (7, null, 57, CURDATE(), 6, null, 'seventh route', null, 70, CURDATE(), CURDATE()); + (1, '1899-12-30 12:15:00', 56, CURDATE(), 1, 7, 'first route', 2.7, 10, CURDATE(), CURDATE()), + (2, '1899-12-30 13:20:00', 56, CURDATE(), 1, 7, 'second route', 0.9, 20, CURDATE(), CURDATE()), + (3, '1899-12-30 14:30:00', 56, CURDATE(), 2, 7, 'third route', 1.1, 30, CURDATE(), CURDATE()), + (4, '1899-12-30 15:45:00', 56, CURDATE(), 3, 7, 'fourth route', 0.1, 40, CURDATE(), CURDATE()), + (5, '1899-12-30 16:00:00', 56, CURDATE(), 4, 8, 'fifth route', NULL, 50, CURDATE(), CURDATE()), + (6, NULL, 57, CURDATE(), 5, 8, 'sixth route', NULL, 60, CURDATE(), CURDATE()), + (7, NULL, 57, CURDATE(), 6, NULL, 'seventh route', NULL, 70, CURDATE(), CURDATE()); INSERT INTO `vn2008`.`empresa_grupo`(`empresa_grupo_id`, `grupo`) VALUES @@ -383,11 +383,11 @@ INSERT INTO `vn`.`company`(`id`, `code`, `supplierAccountFk`, `workerManagerFk`, INSERT INTO `vn`.`invoiceOut`(`id`, `serial`, `amount`, `issued`,`clientFk`, `created`, `companyFk`, `dued`, `booked`, `bankFk`, `pdf`) VALUES - (1, 'T', 156.09, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), 101, CURDATE(), 442, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), CURDATE(), 1, 1), - (2, 'T', 208.35, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 102, CURDATE(), 442, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), CURDATE(), 1, 1), - (3, 'T', 20.02, CURDATE(), 103, CURDATE(), 442, CURDATE(), null, 1, 1), - (4, 'T', 20.02, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), 103, CURDATE(), 442, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), null, 1, 1), - (5, 'A', 20.22, DATE_ADD(CURDATE(), INTERVAL +2 MONTH), 103, CURDATE(), 442, DATE_ADD(CURDATE(), INTERVAL +2 MONTH), null, 1, 1); + (1, 'T', 1014.24, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 101, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 442, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 1), + (2, 'T', 121.36, CURDATE(), 102, CURDATE(), 442, CURDATE(), CURDATE(), 1, 1), + (3, 'T', 8.88, CURDATE(), 103, CURDATE(), 442, CURDATE(), CURDATE(), 1, 1), + (4, 'T', 8.88, CURDATE(), 103, CURDATE(), 442, CURDATE(), CURDATE(), 1, 1), + (5, 'A', 8.88, CURDATE(), 103, CURDATE(), 442, CURDATE(), CURDATE(), 1, 1); UPDATE `vn`.`invoiceOut` SET ref = 'T1111111' WHERE id = 1; UPDATE `vn`.`invoiceOut` SET ref = 'T2222222' WHERE id = 2; @@ -397,16 +397,22 @@ UPDATE `vn`.`invoiceOut` SET ref = 'A1111111' WHERE id = 5; INSERT INTO `vn`.`invoiceOutTax` (`invoiceOutFk`, `taxableBase`, `vat`, `pgcFk`) VALUES - (1, 100, 10, 4722000010), - (1, 200, 21, 4722000021), - (2, 100, 10, 4722000010), - (2, 200, 21, 4722000021), - (3, 100, 10, 4722000010), - (3, 200, 21, 4722000021), - (4, 100, 10, 4722000010), - (4, 200, 21, 4722000021), - (5, 100, 10, 4722000010), - (5, 200, 21, 4722000021); + (1, 895.76, 89.58, 4722000010), + (1, 33.80, 7.10, 4722000021), + (2, 110.33, 11.03, 4770000010), + (3, 8.07, 0.81, 4770000010), + (4, 8.07, 0.81, 4770000010), + (5, 8.07, 0.81, 4770000010); + +INSERT INTO `vn`.`invoiceOutExpence`(`id`, `invoiceOutFk`, `amount`, `expenceFk`, `created`) + VALUES + (1, 1, 813.06, 2000000000, CURDATE()), + (2, 1, 33.80, 4751000000, CURDATE()), + (3, 1, 70.70, 6210000567, CURDATE()), + (4, 2, 110.33, 2000000000, CURDATE()), + (5, 3, 8.07, 2000000000, CURDATE()), + (6, 4, 8.07, 2000000000, CURDATE()), + (7, 5, 8.07, 2000000000, CURDATE()); INSERT INTO `vn`.`taxArea` (`code`, `claveOperacionFactura`, `CodigoTransaccion`) VALUES @@ -421,68 +427,93 @@ INSERT INTO `vn`.`invoiceOutSerial` (`code`, `description`, `isTaxed`, `taxAreaF ('T', 'Española rapida', 1, 'NATIONAL', 0), ('V', 'Intracomunitaria global', 0, 'CEE', 1); -INSERT INTO `vn`.`ticket`(`id`, `agencyModeFk`,`warehouseFk`,`routeFk`, `shipped`, `landed`, `clientFk`,`nickname`, `addressFk`, `refFk`, `isDeleted`, `created`) +INSERT INTO `vn`.`zone` (`id`, `name`, `hour`, `warehouseFk`, `agencyModeFk`, `travelingDays`, `price`, `bonus`) + VALUES + (1, 'Zone pickup A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 1, 0, 0, 0), + (2, 'Zone pickup B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 1, 0, 0, 0), + (3, 'Zone 247 A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 7, 1, 2, 0), + (4, 'Zone 247 B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 7, 1, 2, 0), + (5, 'Zone expensive A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 8, 1, 1000, 0), + (6, 'Zone expensive B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 8, 1, 1000, 0), + (7, 'Zone refund', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 10, 0, 0, 0), + (8, 'Zone others', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 23, 0, 0, 0), + (9, 'Zone superMan', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 2, 0, 0, 0), + (10, 'Zone teleportation', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 3, 3, 0, 0, 0), + (11, 'Zone pickup C', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 5, 1, 0, 0, 0), + (12, 'Zone entanglement', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 4, 4, 0, 0, 0), + (13, 'Zone quantum break', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 5, 5, 0, 0, 0); + +INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeFk`, `shipped`, `landed`, `clientFk`,`nickname`, `addressFk`, `refFk`, `isDeleted`, `zoneFk`, `created`) VALUES - (1 , 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY) , DATE_ADD(CURDATE(), INTERVAL -15 DAY) , 101, 'address 21', 121, 'T1111111', 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY) ), - (2 , 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -10 DAY) , DATE_ADD(CURDATE(), INTERVAL -10 DAY) , 101, 'address 21', 121, 'T2222222', 0, DATE_ADD(CURDATE(), INTERVAL -10 DAY) ), - (3 , 2, 2, 2, DATE_ADD(CURDATE(), INTERVAL -5 DAY) , DATE_ADD(CURDATE(), INTERVAL -5 DAY) , 102, 'address 22', 122, 'T2222222', 0, DATE_ADD(CURDATE(), INTERVAL -5 DAY) ), - (4 , 2, 2, 2, DATE_ADD(CURDATE(), INTERVAL -4 DAY) , DATE_ADD(CURDATE(), INTERVAL -4 DAY) , 102, 'address 22', 122, 'T3333333', 0, DATE_ADD(CURDATE(), INTERVAL -4 DAY) ), - (5 , 3, 3, 3, DATE_ADD(CURDATE(), INTERVAL -3 DAY) , DATE_ADD(CURDATE(), INTERVAL -3 DAY) , 103, 'address 23', 123, 'T3333333', 0, DATE_ADD(CURDATE(), INTERVAL -3 DAY) ), - (6 , 3, 3, 4, DATE_ADD(CURDATE(), INTERVAL -2 DAY) , DATE_ADD(CURDATE(), INTERVAL -2 DAY) , 103, 'address 23', 123, 'T4444444', 0, DATE_ADD(CURDATE(), INTERVAL -2 DAY) ), - (7 , 4, 4, 4, DATE_ADD(CURDATE(), INTERVAL -1 DAY) , DATE_ADD(CURDATE(), INTERVAL -1 DAY) , 104, 'address 24', 124, 'T4444444', 0, DATE_ADD(CURDATE(), INTERVAL -1 DAY) ), - (8 , 1, 1, 4, CURDATE(), CURDATE(), 104, 'address 24', 124, NULL, 0, CURDATE()), - (9 , 5, 5, 4, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), DATE_ADD(CURDATE(), INTERVAL -2 MONTH), 105, 'address 25', 125, 'A1111111', 0, DATE_ADD(CURDATE(), INTERVAL -2 MONTH) ), - (10, 6, 5, 5, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), DATE_ADD(CURDATE(), INTERVAL -3 MONTH), 105, 'address 25', 125, 'A1111111', 0, DATE_ADD(CURDATE(), INTERVAL -3 MONTH) ), - (11, 7, 1, 1, CURDATE() , DATE_ADD(CURDATE(), INTERVAL +1 DAY) , 101, 'address 21', 121, NULL, 0, CURDATE() ), - (12, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH), 101, 'address 21', 121, NULL, 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH) ), - (13, 2, 2, 2, DATE_ADD(CURDATE(), INTERVAL +2 MONTH), DATE_ADD(CURDATE(), INTERVAL +2 MONTH), 101, 'address 21', 121, NULL, 0, DATE_ADD(CURDATE(), INTERVAL +2 MONTH) ), - (14, 2, 2, 2, DATE_ADD(CURDATE(), INTERVAL +3 MONTH), DATE_ADD(CURDATE(), INTERVAL +3 MONTH), 101, 'address 21', 121, NULL, 0, DATE_ADD(CURDATE(), INTERVAL +3 MONTH) ), - (15, 3, 3, 3, DATE_ADD(CURDATE(), INTERVAL +4 MONTH), DATE_ADD(CURDATE(), INTERVAL +4 MONTH), 101, 'address 21', 121, NULL, 0, DATE_ADD(CURDATE(), INTERVAL +4 MONTH) ), - (16, 1, 1, 1, CURDATE(), CURDATE(), 101, 'address 21', 121, NULL, 0, CURDATE() ), - (17, 4, 4, 4, CURDATE(), CURDATE(), 106, 'address 26', 126, NULL, 0, CURDATE() ), - (18, 4, 4, 4, CURDATE(), CURDATE(), 107, 'address 27', 127, NULL, 0, CURDATE() ), - (19, 5, 5, 4, DATE_ADD(CURDATE(), INTERVAL +1 DAY), DATE_ADD(CURDATE(), INTERVAL +1 DAY), 108, 'address 28', 128, NULL, 0, DATE_ADD(CURDATE(), INTERVAL +1 DAY) ), - (20, 5, 5, 4, DATE_ADD(CURDATE(), INTERVAL +1 DAY), DATE_ADD(CURDATE(), INTERVAL +1 DAY), 108, 'address 28', 128, NULL, 0, DATE_ADD(CURDATE(), INTERVAL +1 DAY) ), - (21, 5, 5, 4, CURDATE(), CURDATE(), 110, 'address 29', 129, NULL, 1, CURDATE() ), - (22, 5, 5, 4, DATE_ADD(CURDATE(), INTERVAL +1 DAY), DATE_ADD(CURDATE(), INTERVAL +1 DAY), 108, 'address 28', 128, NULL, 1, DATE_ADD(CURDATE(), INTERVAL +1 DAY) ); + (1 , 3, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 101, 'Bat cave', 121, 'T1111111', 0, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (2 , 1, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 104, 'Stark tower', 124, 'T1111111', 0, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (3 , 1, 7, 1, 1, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 104, 'Stark tower', 124, 'T2222222', 0, 3, DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), + (4 , 3, 2, 1, 1, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 104, 'Stark tower', 124, 'T3333333', 0, 9, DATE_ADD(CURDATE(), INTERVAL -3 MONTH)), + (5 , 3, 3, 3, 1, DATE_ADD(CURDATE(), INTERVAL -4 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 104, 'Stark tower', 124, 'T4444444', 0, 10, DATE_ADD(CURDATE(), INTERVAL -4 MONTH)), + (6 , 1, 3, 3, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 101, 'Mountain Drive Gotham', 1, 'A1111111', 0, 10, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (7 , NULL, 7, 1, 2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 101, 'Mountain Drive Gotham', 1, NULL, 0, 3, CURDATE()), + (8 , NULL, 7, 1, 2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 101, 'Bat cave', 121, NULL, 0, 3, CURDATE()), + (9 , NULL, 7, 1, 2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 104, 'Stark tower', 124, NULL, 0, 3, CURDATE()), + (10, 1, 1, 5, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 102, 'Ingram Street', 2, NULL, 0, 11, CURDATE()), + (11, 1, 7, 1, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 102, 'NY roofs', 122, NULL, 0, 3, CURDATE()), + (12, 1, 1, 1, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 103, 'Phone Box', 123, NULL, 0, 1, CURDATE()), + (13, 1, 7, 1, 2, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 103, 'Phone Box', 123, NULL, 0, 1, CURDATE()), + (14, 1, 2, 1, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 104, 'Malibu Point', 4, NULL, 0, 9, CURDATE()), + (15, 1, 7, 1, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 105, 'Plastic Cell', 125, NULL, 0, 3, CURDATE()), + (16, 1, 7, 1, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 106, 'Many Places', 126, NULL, 0, 3, CURDATE()), + (17, 1, 7, 1, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 106, 'Many Places', 126, NULL, 0, 3, CURDATE()), + (18, 1, 4, 4, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 108, 'Cerebro', 128, NULL, 0, 12, CURDATE()), + (19, 1, 5, 5, 3, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 109, 'Somewhere in Thailand', 129, NULL, 1, 13, CURDATE()), + (20, 1, 5, 5, 3, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Thailand', 129, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (21, NULL, 5, 5, NULL, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Holland', 102, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (22, NULL, 5, 5, NULL, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 'Somewhere in Japan', 103, NULL, 0, 13, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (23, NULL, 23, 1, NULL, CURDATE(), DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 101, 'address 21', 121, NULL, 0, 8, CURDATE()), + (24 ,NULL, 23, 1, NULL, CURDATE(), CURDATE(), 101, 'Bruce Wayne', 1, NULL, 0, 8, CURDATE()); INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`) VALUES - (1, 1, 1, 'ready' ), - (2, 2, 2, 'do it fast please'), - (3, 3, 3, 'Faster faster fasteeeeeer!!!'), - (4, 4, 3, 'Deliver before 8am'), - (5, 13, 3, 'You can run from the disappointments you are trying to forget. But its only when you embrace your past that you truly move forward. Maybe I never get to go home again, but I found my way there. And I am glad I did.'), - (6, 14, 3, 'Careful, armed warhead'); + (1, 11, 1, 'ready'), + (2, 2, 2, 'do it fast please'), + (3, 3, 3, 'Faster faster fasteeeeeer!!!'), + (4, 4, 3, 'Deliver before 8am'), + (5, 13, 3, 'You can run from the disappointments you are trying to forget. But its only when you embrace your past that you truly move forward. Maybe I never get to go home again, but I found my way there. And I am glad I did.'), + (6, 14, 3, 'Careful, armed warhead'), + (7, 23, 1, 'under the floor'), + (8, 23, 2, 'wears leather and goes out at night'), + (9, 23, 3, 'care with the dog'), + (10, 23, 4, 'Reclama ticket: 8'), + (11, 24, 4, 'Reclama ticket: 7'); INSERT INTO `vn`.`ticketTracking`(`id`, `ticketFk`, `stateFk`, `workerFk`, `created`) VALUES - (1, 1, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -15 DAY)), - (2, 2, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -10 DAY)), - (3, 3, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -5 DAY)), - (4, 4, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -4 DAY)), - (5, 5, 16, 18, DATE_ADD(CURDATE(), INTERVAL -3 DAY)), - (6, 6, 16, 18, DATE_ADD(CURDATE(), INTERVAL -2 DAY)), - (7, 7, 16, 18, DATE_ADD(CURDATE(), INTERVAL -1 DAY)), - (8, 8, 3, 19, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), - (9, 9, 16, 19, DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), - (10, 10, 16, 19, DATE_ADD(CURDATE(), INTERVAL -3 MONTH)), + (1, 1, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (2, 2, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (3, 3, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), + (4, 4, 16, 5 , DATE_ADD(CURDATE(), INTERVAL -3 MONTH)), + (5, 5, 16, 18, DATE_ADD(CURDATE(), INTERVAL -4 MONTH)), + (6, 6, 16, 18, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (7, 7, 10, 18, CURDATE()), + (8, 8, 5, 19, CURDATE()), + (9, 9, 5, 19, CURDATE()), + (10, 10, 5, 19, CURDATE()), (11, 11, 3, 19, CURDATE()), (12, 12, 3, 19, CURDATE()), (13, 13, 3, 19, CURDATE()), (14, 14, 3, 19, CURDATE()), (15, 15, 3, 19, CURDATE()), - (16, 16, 1, 19, CURDATE()), - (17, 17, 1, 19, CURDATE()), - (18, 18, 1, 19, CURDATE()), - (19, 19, 13, 19, CURDATE()), - (20, 20, 13, 19, CURDATE()), - (21, 21, 3, 19, CURDATE()), - (23, 21, 13, 19, CURDATE()); + (16, 16, 3, 19, CURDATE()), + (17, 17, 3, 19, CURDATE()), + (18, 18, 3, 19, CURDATE()), + (19, 19, 17, 19, CURDATE()), + (20, 20, 1, 19, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (21, 21, 1, 19, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (22, 22, 1, 19, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (23, 23, 16, 21, CURDATE()), + (24, 24, 16, 21, CURDATE()); INSERT INTO `vn`.`stowaway`(`id`, `shipFk`, `created`) VALUES - (19, 20, CURDATE()); + (12, 13, CURDATE()); INSERT INTO `vn`.`vehicle`(`id`, `numberPlate`, `tradeMark`, `model`, `companyFk`, `warehouseFk`, `description`, `m3`, `isActive`) VALUES @@ -508,18 +539,18 @@ INSERT INTO `vn`.`greugeType`(`id`, `name`) INSERT INTO `vn`.`greuge`(`id`, `clientFk`, `description`, `amount`, `shipped`, `created`, `greugeTypeFk`, `ticketFk`) VALUES - (1, 101, 'some diff charges', -19.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 1, 1), - (2, 101, 'more diff charges', 60, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 2, 1), - (3, 101, 'even more! diff charges', -9.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 3, 1), - (4, 101, 'insane diff charges', 60, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 4, 1), - (5, 101, 'gargantuous diff charges', -9.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 5, 1), - (6, 101, 'diff charges', 88.30, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 6, 1), - (7, 101, 'unaffordable diff charges', -39.12, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 1, 1), - (8, 101, 'some recovery charges', 29.35, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 2, 1), - (9, 101, 'some manna charges', -9.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 3, 1), - (10, 101, 'some claim charges', 13.13, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 4, 1), - (11, 101, 'some heritage charges', -15.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 5, 1), - (12, 101, 'some miscellaneous charges', 58.00, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 6, 1); + (1, 101, 'some diff charges', -19.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 1, 1), + (2, 101, 'more diff charges', 60, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 2, 1), + (3, 101, 'even more! diff charges', -9.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 3, 1), + (4, 101, 'insane diff charges', 60, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 4, 1), + (5, 101, 'gargantuous diff charges', -9.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 5, 1), + (6, 101, 'diff charges', 88.30, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 6, 1), + (7, 101, 'unaffordable diff charges', -39.12, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 1, 1), + (8, 101, 'some recovery charges', 29.35, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 2, 1), + (9, 101, 'some manna charges', -9.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 3, 1), + (10, 101, 'some claim charges', 13.13, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 4, 1), + (11, 101, 'some heritage charges', -15.99, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 5, 1), + (12, 101, 'some miscellaneous charges', 58.00, DATE_ADD(CURDATE(), INTERVAL 1 MONTH), CURDATE(), 6, 1); INSERT INTO `vn`.`mandateType`(`id`, `name`) VALUES @@ -551,9 +582,9 @@ INSERT INTO `vn`.`itemType`(`id`, `code`, `name`, `categoryFk`, `life`,`workerFk INSERT INTO `vn`.`ink`(`id`, `name`, `picture`, `showOrder`) VALUES - ('YEL', 'Yellow', 1 , 1), - ('BLU', 'Blue', 1 , 2), - ('RED', 'Red', 1 , 3); + ('YEL', 'Yellow', 1, 1), + ('BLU', 'Blue', 1, 2), + ('RED', 'Red', 1, 3); INSERT INTO `vn`.`origin`(`id`,`code`, `name`) VALUES @@ -608,18 +639,25 @@ INSERT INTO `vn`.`item`(`id`, `typeFk`, `size`, `inkFk`, `stems`, `originFk`, `d INSERT INTO `vn`.`expedition`(`id`, `agencyModeFk`, `ticketFk`, `isBox`, `created`, `itemFk`, `counter`, `checked`, `workerFk`) VALUES - (1, 1, 1, 71, CURDATE(), 1, 0, 1, 18), - (2, 1, 1, 71, CURDATE(), 2, 1, 0, 18), - (3, 2, 1, 71, CURDATE(), 3, 2, 0, 18), - (4, 1, 1, 71, CURDATE(), 1, 0, 1, 18), - (5, 1, 1, 71, CURDATE(), 2, 1, 0, 18), - (6, 2, 1, 71, CURDATE(), 3, 2, 0, 18); + (1, 1, 1, 71, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 1, 1, 18), + (2, 1, 1, 71, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 2, 1, 18), + (3, 1, 1, 71, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 2, 3, 1, 18), + (4, 1, 1, 71, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 4, 4, 1, 18), + (5, 1, 2, 71, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 1, 1, 18), + (6, 7, 3, 71, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), 1, 1, 1, 18), + (7, 2, 4, 71, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), 1, 1, 1, 18), + (8, 3, 5, 71, DATE_ADD(CURDATE(), INTERVAL -4 MONTH), 1, 1, 1, 18), + (9, 3, 6, 71, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 1, 1, 18), + (10, 7, 7, 71, CURDATE(), 1, 1, 1, 18); INSERT INTO `vn`.`packaging`(`id`, `volume`, `width`, `height`, `depth`, `isPackageReturnable`, `created`, `itemFk`, `price`) VALUES - (1, 0.00, 10, 10, 0, 0, CURDATE(), 6, 1.50), - (2, 100.00, 20, 20, 0, 0, CURDATE(), 7, 1.00), - (94, 140875.00, 49.00, 115.00,25.00, 0, CURDATE(), 71, 0.00); + (1, 0.00, 10, 10, 0, 0, CURDATE(), 6, 1.50), + (2, 100.00, 20, 20, 0, 0, CURDATE(), 7, 1.00), + (3, 14000.00, 0, 0, 0, 0, CURDATE(), NULL, 0), + (4, 218000.00, 0, 0, 0, 0, CURDATE(), NULL, 0), + (5, 292000.00, 0, 0, 0, 0, CURDATE(), NULL, 0), + (94, 140875.00, 49.00, 115.00, 25.00, 0, CURDATE(), 71, 0.00); INSERT INTO `vn`.`ticketPackaging`(`id`, `ticketFk`, `packagingFk`, `quantity`, `created`, `pvp`) VALUES @@ -629,30 +667,38 @@ INSERT INTO `vn`.`ticketPackaging`(`id`, `ticketFk`, `packagingFk`, `quantity`, INSERT INTO `vn`.`sale`(`id`, `itemFk`, `ticketFk`, `concept`, `quantity`, `price`, `discount`, `reserved`, `isPicked`, `created`) VALUES - (1, 1, 1, 'Ranged weapon longbow 2m', 5, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)), - (2, 2, 1, 'Melee weapon combat fist 15cm', 10, 1.07, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)), - (3, 1, 1, 'Ranged weapon longbow 2m', 2, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)), - (4, 4, 1, 'Melee weapon heavy shield 1x0.5m', 20, 3.06, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY)), - (5, 1, 2, 'Ranged weapon longbow 2m', 10, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -10 DAY)), - (6, 1, 3, 'Ranged weapon longbow 2m', 15, 6.50, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -5 DAY)), - (7, 2, 11, 'Melee weapon combat fist 15cm', 15, 1.02, 0, 0, 0, CURDATE()), - (8, 4, 11, 'Melee weapon heavy shield 1x0.5m', 10, 3.01, 0, 0, 0, CURDATE()), - (9, 1, 16, 'Ranged weapon longbow 2m', 5, 9.10, 0, 0, 0, CURDATE()), - (10, 2, 16, 'Melee weapon combat fist 15cm', 10, 1.07, 0, 0, 0, CURDATE()), - (11, 1, 16, 'Ranged weapon longbow 2m', 2, 9.10, 0, 0, 0, CURDATE()), - (12, 4, 16, 'Melee weapon heavy shield 1x0.5m', 20, 3.06, 0, 0, 0, CURDATE()), - (13, 2, 8, 'Melee weapon combat fist 15cm', 15, 1.30, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), - (14, 1, 8, 'Ranged weapon longbow 2m', 10, 9.28, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), - (15, 1, 19, 'Ranged weapon longbow 2m', 10, 1.50, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (16, 2, 20, 'Melee weapon combat fist 15cm', 15, 1.30, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (17, 2, 22, 'Melee weapon combat fist 15cm', 30, 2.30, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (18, 4, 22, 'Melee weapon heavy shield 1x0.5m', 20, 3.00, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 DAY)), - (19, 1, 4, 'Ranged weapon longbow 2m', 1, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -4 DAY)), - (20, 1, 5, 'Ranged weapon longbow 2m', 1, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -3 DAY)), - (21, 1, 6, 'Ranged weapon longbow 2m', 1, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -2 DAY)), - (22, 1, 7, 'Ranged weapon longbow 2m', 1, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -1 DAY)), - (23, 1, 9, 'Ranged weapon longbow 2m', 1, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), - (24, 1, 10, 'Ranged weapon longbow 2m', 1, 9.10, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -3 MONTH)); + (1, 1, 1, 'Ranged weapon longbow 2m', 5, 100.39, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (2, 2, 1, 'Melee weapon combat fist 15cm', 10, 7.07, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (3, 1, 1, 'Ranged weapon longbow 2m', 2, 100.39, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (4, 4, 1, 'Melee weapon heavy shield 1x0.5m', 20, 1.69, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (5, 1, 2, 'Ranged weapon longbow 2m', 1, 110.33, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (6, 1, 3, 'Ranged weapon longbow 2m', 1, 110.33, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), + (7, 2, 11, 'Melee weapon combat fist 15cm', 15, 7.43, 0, 0, 0, CURDATE()), + (8, 4, 11, 'Melee weapon heavy shield 1x0.5m', 10, 1.79, 0, 0, 0, CURDATE()), + (9, 1, 16, 'Ranged weapon longbow 2m', 1, 103.49, 0, 0, 0, CURDATE()), + (10, 2, 16, 'Melee weapon combat fist 15cm', 10, 7.08, 0, 0, 0, CURDATE()), + (11, 1, 16, 'Ranged weapon longbow 2m', 1, 103.49, 0, 0, 0, CURDATE()), + (12, 4, 16, 'Melee weapon heavy shield 1x0.5m', 20, 1.71, 0, 0, 0, CURDATE()), + (13, 2, 8, 'Melee weapon combat fist 15cm', 10, 7.08, 0, 0, 0, CURDATE()), + (14, 1, 8, 'Ranged weapon longbow 2m', 2, 103.49, 0, 0, 0, CURDATE()), + (15, 1, 19, 'Ranged weapon longbow 2m', 1, 103.49, 0, 0, 0, CURDATE()), + (16, 2, 20, 'Melee weapon combat fist 15cm', 20, 7.07, 0, 0, 0, CURDATE()), + (17, 2, 22, 'Melee weapon combat fist 15cm', 30, 7.07, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (18, 4, 22, 'Melee weapon heavy shield 1x0.5m', 20, 1.69, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (19, 1, 4, 'Ranged weapon longbow 2m', 1, 8.07, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -3 MONTH)), + (20, 1, 5, 'Ranged weapon longbow 2m', 1, 8.07, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -4 MONTH)), + (21, 1, 6, 'Ranged weapon longbow 2m', 1, 8.07, 0, 0, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (22, 1, 7, 'Ranged weapon longbow 2m', 1, 8.07, 0, 0, 0, CURDATE()), + (23, 1, 9, 'Ranged weapon longbow 2m', 1, 8.07, 0, 0, 0, CURDATE()), + (24, 1, 10, 'Ranged weapon longbow 2m', 1, 8.07, 0, 0, 0, CURDATE()), + (25, 4, 12, 'Melee weapon heavy shield 1x0.5m', 20, 1.72, 0, 0, 0, CURDATE()), + (26, 4, 13, 'Melee weapon heavy shield 1x0.5m', 20, 1.72, 0, 0, 0, CURDATE()), + (27, 4, 14, 'Melee weapon heavy shield 1x0.5m', 20, 1.72, 0, 0, 0, CURDATE()), + (28, 4, 15, 'Melee weapon heavy shield 1x0.5m', 20, 1.72, 0, 0, 0, CURDATE()), + (29, 4, 17, 'Melee weapon heavy shield 1x0.5m', 20, 1.72, 0, 0, 0, CURDATE()), + (30, 4, 18, 'Melee weapon heavy shield 1x0.5m', 20, 1.72, 0, 0, 0, CURDATE()), + (31, 2, 23, 'Melee weapon combat fist 15cm', -5, 7.08, 0, 0, 0, CURDATE()), + (32, 1, 24, 'Ranged weapon longbow 2m', -1, 8.07, 0, 0, 0, CURDATE()); INSERT INTO `vn`.`saleChecked`(`saleFk`, `isChecked`) VALUES @@ -661,123 +707,139 @@ INSERT INTO `vn`.`saleChecked`(`saleFk`, `isChecked`) INSERT INTO `vn`.`saleComponent`(`saleFk`, `componentFk`, `value`) VALUES - (1, 15, 0.58), - (1, 23, 6.5), - (1, 28, 20.72), - (1, 29, -18.72), - (1, 39, 0.02), - (2, 15, 0.058), - (2, 21, 0.002), - (2, 28, 5.6), - (2, 29, -4.6), - (2, 39, 0.01), - (3, 15, 0.58), - (3, 23, 6.5), - (3, 28, 20.72), - (3, 29, -18.72), - (3, 39, 0.02), - (4, 15, 0.051), - (4, 21, -0.001), - (4, 28, 20.72), - (4, 29, -19.72), - (4, 37, 2), - (4, 39, 0.01), - (5, 15, 0.58), - (5, 23, 6.5), - (5, 28, 20.72), - (5, 29, -18.72), - (5, 39, 0.02), - (6, 23, 6.5), + (1, 28, 50), + (1, 29, 49.4), + (1, 39, 0.994), + (2, 28, 5), + (2, 29, 2), + (2, 39, 0.07), + (3, 28, 50), + (3, 29, 49.4), + (3, 39, 0.994), + (4, 28, 1.25), + (4, 29, 0.42), + (4, 39, 0.017), + (5, 17, 9.94), + (5, 28, 50), + (5, 29, 49.4), + (5, 39, 0.994), + (6, 17, 9.94), + (6, 28, 50), + (6, 29, 49.4), + (6, 39, 0.994), (7, 15, 0.0114), - (7, 28, 5.6), - (7, 29, -4.6), - (7, 39, 0.01), - (8, 15, 0.0016), - (8, 28, 20.72), - (8, 29, -19.72), - (8, 37, 2), - (8, 39, 0.01), - (9, 15, 0.58), - (9, 23, 6.5), - (9, 28, 20.72), - (9, 29, -18.72), - (9, 39, 0.02), - (10, 15, 0.058), - (10, 21, 0.002), - (10, 28, 5.6), - (10, 29, -4.6), - (10, 39, 0.01), - (11, 15, 0.58), - (11, 23, 6.5), - (11, 28, 20.72), - (11, 29, -18.72), - (11, 39, 0.02), - (12, 15, 0.051), - (12, 22, -0.001), - (12, 28, 20.72), - (12, 29, -19.72), - (12, 37, 2), - (12, 39, 0.01), - (13, 15, 0.2899), - (13, 28, 5.6), - (13, 29, -4.6), - (13, 39, 0.01), - (14, 15, 0.58), - (14, 23, 6.5), - (14, 28, 20.72), - (14, 29, -18.72), - (14, 39, 0.02), - (15, 15, 0.58), - (15, 23, 6.5), - (15, 28, 20.72), - (15, 29, -18.72), - (15, 39, 0.02), - (16, 15, 0.058), - (16, 21, 0.002), - (16, 28, 5.6), - (16, 29, -4.6), - (16, 39, 0.01), - (17, 15, 0.058), - (17, 21, 0.002), - (17, 28, 5.6), - (17, 29, -4.6), - (17, 39, 0.01), - (18, 15, 0.051), - (18, 22, -0.001), - (18, 28, 20.72), - (18, 29, -19.72), - (18, 37, 2), - (18, 39, 0.01), - (19, 15, 0.58), - (19, 23, 6.5), - (19, 28, 20.72), - (19, 29, -18.72), + (7, 17, 0.35), + (7, 28, 5), + (7, 29, 2), + (7, 39, 0.07), + (8, 15, 0.0199), + (8, 17, 0.084), + (8, 28, 1.25), + (8, 29, 0.42), + (8, 39, 0.017), + (9, 15, 3.0949), + (9, 21, 0.001), + (9, 28, 50), + (9, 29, 49.4), + (9, 39, 0.994), + (10, 15, 0.0111), + (10, 21, -0.001), + (10, 28, 5), + (10, 29, 2), + (10, 39, 0.07), + (11, 15, 3.0949), + (11, 21, 0.001), + (11, 28, 50), + (11, 29, 49.4), + (11, 39, 0.994), + (12, 15, 0.0199), + (12, 21, 0.003), + (12, 28, 1.25), + (12, 29, 0.42), + (12, 39, 0.017), + (13, 15, 0.114), + (13, 28, 5), + (13, 29, 2), + (13, 39, 0.07), + (14, 15, 3.0949), + (14, 28, 50), + (14, 29, 49.4), + (14, 39, 0.994), + (15, 15, 3.0949), + (15, 28, 50), + (15, 29, 49.4), + (15, 39, 0.994), + (16, 28, 5), + (16, 29, 2), + (16, 39, 0.07), + (17, 28, 5), + (17, 29, 2), + (17, 39, 0.07), + (18, 28, 1.25), + (18, 29, 0.42), + (18, 39, 0.017), + (19, 17, 0.7), + (19, 22, 0.3), + (19, 28, 5), + (19, 29, 2), (19, 39, 0.02), - (20, 15, 0.58), - (20, 23, 6.5), - (20, 28, 20.72), - (20, 29, -18.72), + (20, 17, 0.7), + (20, 22, 0.3), + (20, 28, 5), + (20, 29, 2), (20, 39, 0.02), - (21, 15, 0.58), - (21, 23, 6.5), - (21, 28, 20.72), - (21, 29, -18.72), + (21, 17, 0.7), + (21, 22, 0.3), + (21, 28, 5), + (21, 29, 2), (21, 39, 0.02), - (22, 15, 0.58), - (22, 23, 6.5), - (22, 28, 20.72), - (22, 29, -18.72), + (22, 17, 0.7), + (22, 22, 0.3), + (22, 28, 5), + (22, 29, 2), (22, 39, 0.02), - (23, 15, 0.58), - (23, 23, 6.5), - (23, 28, 20.72), - (23, 29, -18.72), + (23, 17, 0.7), + (23, 22, 0.3), + (23, 28, 5), + (23, 29, 2), (23, 39, 0.02), - (24, 15, 0.58), - (24, 23, 6.5), - (24, 28, 20.72), - (24, 29, -18.72), - (24, 39, 0.02); + (24, 17, 0.7), + (24, 22, 0.3), + (24, 28, 5), + (24, 29, 2), + (24, 39, 0.02), + (25, 17, 0.033), + (25, 28, 1.25), + (25, 29, 0.42), + (25, 39, 0.017), + (26, 17, 0.033), + (26, 28, 1.25), + (26, 29, 0.42), + (26, 39, 0.017), + (27, 17, 0.033), + (27, 28, 1.25), + (27, 29, 0.42), + (27, 39, 0.017), + (28, 17, 0.033), + (28, 28, 1.25), + (28, 29, 0.42), + (28, 39, 0.017), + (29, 17, 0.033), + (29, 28, 1.25), + (29, 29, 0.42), + (29, 39, 0.017), + (30, 17, 0.033), + (30, 28, 1.25), + (30, 29, 0.42), + (30, 39, 0.017), + (31, 28, 5), + (31, 29, 2), + (31, 36, 0.01), + (31, 39, 0.07), + (32, 28, 50), + (32, 29, 49.4), + (32, 36, -92.324), + (32, 39, 0.994); INSERT INTO `vn`.`saleTracking`(`saleFk`, `isChecked`, `created`, `originalQuantity`, `workerFk`, `actionFk`, `id`, `stateFk`) VALUES @@ -930,6 +992,8 @@ INSERT INTO `vn`.`itemTypeTag`(`id`, `itemTypeFk`, `tagFk`, `priority`) (4, 1, 4, 1), (5, 1, 5, 1); +CALL `vn`.`itemRefreshTags`(NULL); + INSERT INTO `vn`.`itemLog` (`id`, `originFk`, `userFk`, `action`, `description`) VALUES ('1', '1', '1', 'insert', 'We made a change!'); @@ -941,13 +1005,6 @@ INSERT INTO `vn`.`recovery`(`id`, `clientFk`, `started`, `finished`, `amount`, ` (3, 102, CURDATE(), DATE_ADD(CURDATE(),INTERVAL 1 MONTH), 50, 7), (4, 103, CURDATE(), NULL, 50, 7); -INSERT INTO `bi`.`rotacion`(`Id_Article`, `warehouse_id`, `total`, `rotacion`, `cm3`, `almacenaje`, `manipulacion`, `auxiliar`, `mermas`) - VALUES - (1, 1, 0, 0.0000, 1500, 0.0015, 0.0250, 0.0085, 0.0000), - (1, 2, 0, 0.0000, 100, 0.0060, 0.0200, 0.0080, 0.0000), - (2, 1, 10, 3.5000, 0, 0.0000, 0.0000, 0.0080, 0.0000), - (3, 1, 50, 5.5000, 100, 0.0000, 0.0000, 0.0080, 0.0000); - INSERT INTO `vn`.`annualAverageInvoiced`(`clientFk`, `invoiced`) VALUES (101, 1500), @@ -981,15 +1038,20 @@ INSERT INTO `vn`.`travel`(`id`,`shipped`, `landed`, `warehouseInFk`, `warehouseO (1, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), DATE_ADD(CURDATE(), INTERVAL -2 MONTH), 1, 2, 1, 100.00, 1000), (2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 2, 1, 150, 2000), (3, CURDATE(), CURDATE(), 1, 2, 1, 0.00, 0.00), - (4, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 2, 1, 50.00, 500); + (4, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 2, 1, 50.00, 500), + (5, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 3, 2, 1, 50.00, 500), + (6, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 4, 2, 1, 50.00, 500), + (7, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 5, 2, 1, 50.00, 500); INSERT INTO `vn`.`entry`(`id`, `supplierFk`, `created`, `travelFk`, `companyFk`,`ref`) VALUES (1, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 442, 'Movimiento 1'), (2, 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 2, 442, 'Movimiento 2'), (3, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 3, 442, 'Movimiento 3'), - (4, 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 4, 69, 'Movimiento 4'); - + (4, 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 4, 69, 'Movimiento 4'), + (5, 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 5, 442, 'Movimiento 5'), + (6, 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 6, 442, 'Movimiento 6'), + (7, 2, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 7, 442, 'Movimiento 7'); INSERT INTO `bi`.`claims_ratio`(`id_Cliente`, `Consumo`, `Reclamaciones`, `Ratio`, `recobro`, `inflacion`) VALUES @@ -1000,14 +1062,21 @@ INSERT INTO `bi`.`claims_ratio`(`id_Cliente`, `Consumo`, `Reclamaciones`, `Ratio INSERT INTO `vn`.`buy`(`id`,`entryFk`,`itemFk`,`buyingValue`,`quantity`,`packageFk`,`stickers`,`freightValue`,`packageValue`,`comissionValue`,`packing`,`grouping`,`groupingMode`,`location`,`price1`,`price2`,`price3`,`minPrice`,`producer`,`printedStickers`,`isChecked`,`isIgnored`, `created`) VALUES - (1, 1, 1, 2.5, 5000, 1, 1, 0.350, 0.050, 0.000, 10, 10, 1, NULL, 0.00, 1.30, 1.25, 1.00, NULL, 0, 1, 0, DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), - (2, 2, 1, 20 , 100, 1, 1, 0.700, 0.020, 0.000, 5, 5, 1, NULL, 0.00, 2.50, 2.00, 0.50, NULL, 0, 1, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), - (3, 3, 1, 20 , 100, 1, 1, 0.700, 0.020, 0.000, 1, 1, 0, NULL, 0.00, 2.50, 2.00, 0.50, NULL, 0, 1, 0, CURDATE()), - (4, 2, 2, 5 , 450, 1, 1, 0.500, 0.100, 0.000, 10, 10, 0, NULL, 0.00, 1.30, 1.00, 0.00, NULL, 0, 1, 0, CURDATE()), - (5, 3, 3, 10 , 500, 1, 1, 1.000, 0.050, 0.000, 10, 10, 0, NULL, 0.00, 2.50, 1.00, 0.00, NULL, 0, 1, 0, CURDATE()), - (6, 4, 8, 20 , 1000, 1, 1, 0.700, 0.020, 0.000, 10, 10, 1, NULL, 0.00, 2.50, 1.00, 0.00, NULL, 0, 1, 0, CURDATE()), - (7, 4, 9, 20 , 1000, 1, 1, 0.700, 0.020, 0.000, 10, 10, 1, NULL, 0.00, 2.50, 1.00, 0.00, NULL, 0, 1, 0, CURDATE()), - (8, 4, 4, 20 , 1000, 1, 1, 0.700, 0.020, 0.000, 10, 10, 1, NULL, 0.00, 2.50, 1.00, 0.00, NULL, 0, 1, 0, CURDATE()); + (1, 1, 1, 50, 5000, 4, 1, 0.000, 0.000, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0.00, NULL, 0, 1, 0, DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), + (2, 2, 1, 50, 100, 4, 1, 0.000, 0.000, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0.00, NULL, 0, 1, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (3, 3, 1, 50, 100, 4, 1, 0.000, 0.000, 0.000, 1, 1, 0, NULL, 0.00, 99.6, 99.4, 0.00, NULL, 0, 1, 0, CURDATE()), + (4, 2, 2, 5, 450, 1, 1, 0.000, 0.000, 0.000, 10, 10, 0, NULL, 0.00, 7.30, 7.00, 0.00, NULL, 0, 1, 0, CURDATE()), + (5, 3, 3, 55, 500, 5, 1, 0.000, 0.000, 0.000, 1, 1, 0, NULL, 0.00, 78.3, 75.6, 0.00, NULL, 0, 1, 0, CURDATE()), + (6, 4, 8, 50, 1000, 4, 1, 0.000, 0.000, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0.00, NULL, 0, 1, 0, CURDATE()), + (7, 4, 9, 20, 1000, 1, 1, 0.000, 0.000, 0.000, 10, 10, 1, NULL, 0.00, 30.50, 29.00, 0.00, NULL, 0, 1, 0, CURDATE()), + (8, 4, 4, 1.25, 1000, 3, 1, 0.000, 0.000, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0.00, NULL, 0, 1, 0, CURDATE()), + (9, 4, 4, 1.25, 1000, 3, 1, 0.000, 0.000, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0.00, NULL, 0, 1, 0, CURDATE()), + (10, 5, 1, 50, 10, 4, 1, 0.000, 0.000, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0.00, NULL, 0, 1, 0, CURDATE()), + (11, 5, 4, 1.25, 10, 3, 1, 0.000, 0.000, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0.00, NULL, 0, 1, 0, CURDATE()), + (12, 6, 4, 1.25, 0, 3, 1, 0.000, 0.000, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0.00, NULL, 0, 1, 0, CURDATE()), + (13, 7, 1, 50, 0, 3, 1, 0.000, 0.000, 0.000, 1, 1, 1, NULL, 0.00, 99.6, 99.4, 0.00, NULL, 0, 1, 0, CURDATE()), + (14, 7, 2, 5, 0, 3, 1, 0.000, 0.000, 0.000, 10, 10, 1, NULL, 0.00, 7.30, 7.00, 0.00, NULL, 0, 1, 0, CURDATE()), + (15, 7, 4, 1.25, 0, 3, 1, 0.000, 0.000, 0.000, 10, 10, 1, NULL, 0.00, 1.75, 1.67, 0.00, NULL, 0, 1, 0, CURDATE()); INSERT INTO `vn2008`.`tblContadores`(`id`,`FechaInventario`) VALUES @@ -1030,109 +1099,217 @@ INSERT INTO `vn`.`deliveryMethod`(`id`, `code`, `description`) INSERT INTO `hedera`.`order`(`id`, `date_send`, `customer_id`, `delivery_method_id`, `agency_id`, `address_id`, `company_id`, `note`, `source_app`, `confirmed`, `date_make`, `first_row_stamp`, `confirm_date`) VALUES - (1 , DATE_ADD(CURDATE(), INTERVAL -15 DAY), 101, 1, 1, 121, 442, NULL, 'TPV', 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), DATE_ADD(CURDATE(), INTERVAL -15 DAY), DATE_ADD(CURDATE(), INTERVAL -15 DAY)), - (2 , DATE_ADD(CURDATE(), INTERVAL -10 DAY), 101, 2, 1, 121, 442, NULL, 'WEB', 1, DATE_ADD(CURDATE(), INTERVAL -10 DAY), DATE_ADD(CURDATE(), INTERVAL -10 DAY), DATE_ADD(CURDATE(), INTERVAL -10 DAY)), - (3 , DATE_ADD(CURDATE(), INTERVAL -5 DAY), 102, 3, 2, 122, 442, NULL, 'ANDROID', 1, DATE_ADD(CURDATE(), INTERVAL -5 DAY), DATE_ADD(CURDATE(), INTERVAL -5 DAY), DATE_ADD(CURDATE(), INTERVAL -5 DAY)), - (4 , DATE_ADD(CURDATE(), INTERVAL -4 DAY), 102, 1, 2, 122, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -4 DAY), DATE_ADD(CURDATE(), INTERVAL -4 DAY), DATE_ADD(CURDATE(), INTERVAL -4 DAY)), - (5 , DATE_ADD(CURDATE(), INTERVAL -3 DAY), 103, 2, 3, 123, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -3 DAY), DATE_ADD(CURDATE(), INTERVAL -3 DAY), DATE_ADD(CURDATE(), INTERVAL -3 DAY)), - (6 , DATE_ADD(CURDATE(), INTERVAL -2 DAY), 103, 3, 3, 123, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -2 DAY), DATE_ADD(CURDATE(), INTERVAL -2 DAY), DATE_ADD(CURDATE(), INTERVAL -2 DAY)), - (7 , DATE_ADD(CURDATE(), INTERVAL -1 DAY), 104, 1, 4, 124, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -1 DAY), DATE_ADD(CURDATE(), INTERVAL -1 DAY), DATE_ADD(CURDATE(), INTERVAL -1 DAY)), - (8 , DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 104, 2, 4, 124, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), - (9 , DATE_ADD(CURDATE(), INTERVAL -2 MONTH), 105, 3, 5, 125, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), DATE_ADD(CURDATE(), INTERVAL -2 MONTH), DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), - (10, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), 105, 1, 6, 125, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), DATE_ADD(CURDATE(), INTERVAL -3 MONTH), DATE_ADD(CURDATE(), INTERVAL -3 MONTH)), - (11, CURDATE(), 101, 2, 7, 121, 442, NULL, 'SALIX', 1, CURDATE(), CURDATE(), CURDATE()), - (12, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), 101, 3, 1, 121, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), - (13, DATE_ADD(CURDATE(), INTERVAL +2 MONTH), 101, 1, 2, 121, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL +2 MONTH), DATE_ADD(CURDATE(), INTERVAL +2 MONTH), DATE_ADD(CURDATE(), INTERVAL +2 MONTH)), - (14, DATE_ADD(CURDATE(), INTERVAL +3 MONTH), 101, 2, 2, 121, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL +3 MONTH), DATE_ADD(CURDATE(), INTERVAL +3 MONTH), DATE_ADD(CURDATE(), INTERVAL +3 MONTH)), - (15, DATE_ADD(CURDATE(), INTERVAL +4 MONTH), 101, 3, 3, 121, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL +4 MONTH), DATE_ADD(CURDATE(), INTERVAL +4 MONTH), DATE_ADD(CURDATE(), INTERVAL +4 MONTH)), - (16, DATE_ADD(CURDATE(), INTERVAL +2 DAY), 101, 1, 7, 121, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), - (17, CURDATE(), 106, 2, 4, 126, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), - (18, CURDATE(), 107, 3, 4, 127, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), - (19, CURDATE(), 108, 1, 5, 128, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), - (20, CURDATE(), 109, 2, 1, 119, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), - (21, CURDATE(), 110, 3, 5, 129, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()); + (1, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 101, 3, 1, 121, 442, NULL, 'TPV', 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (2, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 104, 3, 1, 124, 442, NULL, 'WEB', 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (3, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 104, 1, 2, 124, 442, NULL, 'ANDROID', 1, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), DATE_ADD(CURDATE(), INTERVAL -2 MONTH), DATE_ADD(CURDATE(), INTERVAL -2 MONTH)), + (4, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 104, 1, 2, 124, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), DATE_ADD(CURDATE(), INTERVAL -3 MONTH), DATE_ADD(CURDATE(), INTERVAL -3 MONTH)), + (5, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 104, 1, 3, 124, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -4 MONTH), DATE_ADD(CURDATE(), INTERVAL -4 MONTH), DATE_ADD(CURDATE(), INTERVAL -4 MONTH)), + (6, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 101, 1, 3, 1, 442, NULL, 'SALIX', 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH), DATE_ADD(CURDATE(), INTERVAL -1 MONTH)), + (7, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 101, 2, 7, 1, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (8, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 101, 2, 7, 121, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (9, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 104, 2, 7, 124, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (10, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 102, 3, 1, 2, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (11, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 102, 2, 7, 122, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (12, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 103, 3, 1, 3, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (13, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 103, 1, 2, 123, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (14, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 104, 1, 2, 4, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (15, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 105, 1, 3, 125, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (16, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 106, 2, 7, 126, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (17, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 107, 1, 4, 127, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (18, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 108, 1, 4, 128, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (19, DATE_ADD(CURDATE(), INTERVAL + 1 DAY), 109, 1, 5, 129, 442, NULL, 'SALIX', 0, CURDATE(), CURDATE(), CURDATE()), + (20, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 1, 5, 101, 442, NULL, 'SALIX', 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (21, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 1, 5, 102, 442, NULL, 'SALIX', 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH)), + (22, DATE_ADD(DATE_ADD(CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 109, 1, 5, 103, 442, NULL, 'SALIX', 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH), DATE_ADD(CURDATE(), INTERVAL +1 MONTH)); INSERT INTO `hedera`.`orderRow`(`id`, `orderFk`, `itemFk`, `warehouseFk`, `shipment`, `amount`, `price`, `rate`, `created`, `saleFk`) VALUES - (1, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 5, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 1), - (2, 1, 2, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 10, 1.07, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 2), - (3, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 2, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 3), - (4, 1, 4, 1, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 20, 3.06, 0, DATE_ADD(CURDATE(), INTERVAL -15 DAY), 4), - (5, 2, 1, 1, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 10, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -10 DAY), 5), - (6, 3, 1, 2, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 15, 6.50, 0, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 6), - (7, 11, 2, 1, CURDATE(), 15, 1.30, 0, CURDATE(), 7), - (8, 11, 4, 1, CURDATE(), 10, 3.26, 0, CURDATE(), 8), - (9, 16, 1, 1, CURDATE(), 5, 9.10, 0, CURDATE(), 9), - (10, 16, 2, 1, CURDATE(), 10, 1.07, 0, CURDATE(), 10), - (11, 16, 1, 1, CURDATE(), 2, 9.10, 0, CURDATE(), 11), - (12, 16, 4, 1, CURDATE(), 20, 3.06, 0, CURDATE(), 12), - (13, 20, 1, 1, CURDATE(), 2, 9.10, 0, CURDATE(), NULL); + (1, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 5, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1), + (2, 1, 2, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 10, 1.07, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 2), + (3, 1, 1, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 2, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 3), + (4, 1, 4, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 20, 3.06, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 4), + (5, 2, 1, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 10, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 5), + (6, 3, 1, 2, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), 15, 6.50, 0, DATE_ADD(CURDATE(), INTERVAL -2 MONTH), 6), + (7, 11, 2, 1, CURDATE(), 15, 1.30, 0, CURDATE(), 7), + (8, 11, 4, 1, CURDATE(), 10, 3.26, 0, CURDATE(), 8), + (9, 16, 1, 1, CURDATE(), 5, 9.10, 0, CURDATE(), 9), + (10, 16, 2, 1, CURDATE(), 10, 1.07, 0, CURDATE(), 10), + (11, 16, 1, 1, CURDATE(), 2, 9.10, 0, CURDATE(), 11), + (12, 16, 4, 1, CURDATE(), 20, 3.06, 0, CURDATE(), 12), + (13, 8, 2, 1, CURDATE(), 15, 1.30, 0, CURDATE(), 13), + (14, 8, 1, 1, CURDATE(), 10, 9.28, 0, CURDATE(), 14), + (15, 19, 1, 1, CURDATE(), 10, 1.50, 0, CURDATE(), 15), + (16, 20, 2, 1, CURDATE(), 15, 1.30, 0, CURDATE(), 16), + (17, 22, 2, 1, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), 30, 2.30, 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), 17), + (18, 22, 4, 1, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), 20, 3.00, 0, DATE_ADD(CURDATE(), INTERVAL +1 MONTH), 18), + (19, 4, 1, 1, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), 1, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -3 MONTH), 19), + (20, 5, 1, 1, DATE_ADD(CURDATE(), INTERVAL -4 MONTH), 1, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -4 MONTH), 20), + (21, 6, 1, 1, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 1, 9.10, 0, DATE_ADD(CURDATE(), INTERVAL -1 MONTH), 21), + (22, 7, 1, 1, CURDATE(), 1, 9.10, 0, CURDATE(), 22), + (23, 9, 1, 1, CURDATE(), 1, 9.10, 0, CURDATE(), 23), + (24, 10, 1, 1, CURDATE(), 1, 9.10, 0, CURDATE(), 24), + (25, 12, 4, 1, CURDATE(), 20, 3.00, 0, CURDATE(), 25), + (26, 13, 4, 1, CURDATE(), 20, 3.00, 0, CURDATE(), 26), + (27, 14, 4, 1, CURDATE(), 20, 3.00, 0, CURDATE(), 27), + (28, 15, 4, 1, CURDATE(), 20, 3.00, 0, CURDATE(), 28), + (29, 17, 4, 1, CURDATE(), 20, 3.00, 0, CURDATE(), 29), + (30, 18, 4, 1, CURDATE(), 20, 3.00, 0, CURDATE(), 30); INSERT INTO `hedera`.`orderRowComponent`(`rowFk`, `componentFk`, `price`) VALUES - (1, 15, 0.58), - (1, 23, 6.5), - (1, 28, 20.72), - (1, 29, -18.72), - (1, 39, 0.02), - (2, 15, 0.058), - (2, 21, 0.002), - (2, 28, 5.6), - (2, 29, -4.6), - (2, 39, 0.01), - (3, 15, 0.58), - (3, 23, 6.5), - (3, 28, 20.72), - (3, 29, -18.72), - (3, 39, 0.02), - (4, 15, 0.051), - (4, 21, -0.001), - (4, 28, 20.72), - (4, 29, -19.72), - (4, 37, 2), - (4, 39, 0.01), - (5, 15, 0.58), - (5, 23, 6.5), - (5, 28, 20.72), - (5, 29, -18.72), - (5, 39, 0.02), - (6, 23, 6.5), - (7, 15, 0.2899), - (7, 28, 5.6), - (7, 29, -4.6), - (7, 39, 0.01), - (8, 15, 0.254), - (8, 21, -0.004), - (8, 28, 20.72), - (8, 29, -19.72), - (8, 37, 2), - (8, 39, 0.01), - (9, 15, 0.58), - (9, 23, 6.5), - (9, 28, 20.72), - (9, 29, -18.72), - (9, 39, 0.02), - (10, 15, 0.058), - (10, 21, 0.002), - (10, 28, 5.6), - (10, 29, -4.6), - (10, 39, 0.01), - (11, 15, 0.58), - (11, 23, 6.5), - (11, 28, 20.72), - (11, 29, -18.72), - (11, 39, 0.02), - (12, 15, 0.051), - (12, 22, -0.001), - (12, 28, 20.72), - (12, 29, -19.72), - (12, 37, 2), - (12, 39, 0.01), - (13, 15, 0.58), - (13, 23, 6.5), - (13, 28, 20.72), - (13, 29, -18.72), - (13, 39, 0.02); + (1, 15, 0.58), + (1, 23, 6.5), + (1, 28, 20.72), + (1, 29, -18.72), + (1, 39, 0.02), + (2, 15, 0.058), + (2, 21, 0.002), + (2, 28, 5.6), + (2, 29, -4.6), + (2, 39, 0.01), + (3, 15, 0.58), + (3, 23, 6.5), + (3, 28, 20.72), + (3, 29, -18.72), + (3, 39, 0.02), + (4, 15, 0.051), + (4, 21, -0.001), + (4, 28, 20.72), + (4, 29, -19.72), + (4, 37, 2), + (4, 39, 0.01), + (5, 15, 0.58), + (5, 23, 6.5), + (5, 28, 20.72), + (5, 29, -18.72), + (5, 39, 0.02), + (6, 23, 6.5), + (7, 15, 0.0114), + (7, 28, 5.6), + (7, 29, -4.6), + (7, 39, 0.01), + (8, 15, 0.0016), + (8, 28, 20.72), + (8, 29, -19.72), + (8, 37, 2), + (8, 39, 0.01), + (9, 15, 0.58), + (9, 23, 6.5), + (9, 28, 20.72), + (9, 29, -18.72), + (9, 39, 0.02), + (10, 15, 0.058), + (10, 21, 0.002), + (10, 28, 5.6), + (10, 29, -4.6), + (10, 39, 0.01), + (11, 15, 0.58), + (11, 23, 6.5), + (11, 28, 20.72), + (11, 29, -18.72), + (11, 39, 0.02), + (12, 15, 0.051), + (12, 22, -0.001), + (12, 28, 20.72), + (12, 29, -19.72), + (12, 37, 2), + (12, 39, 0.01), + (13, 15, 0.2899), + (13, 28, 5.6), + (13, 29, -4.6), + (13, 39, 0.01), + (14, 15, 0.58), + (14, 23, 6.5), + (14, 28, 20.72), + (14, 29, -18.72), + (14, 39, 0.02), + (15, 15, 0.58), + (15, 23, 6.5), + (15, 28, 20.72), + (15, 29, -18.72), + (15, 39, 0.02), + (16, 15, 0.058), + (16, 21, 0.002), + (16, 28, 5.6), + (16, 29, -4.6), + (16, 39, 0.01), + (17, 15, 0.058), + (17, 21, 0.002), + (17, 28, 5.6), + (17, 29, -4.6), + (17, 39, 0.01), + (18, 15, 0.051), + (18, 22, -0.001), + (18, 28, 20.72), + (18, 29, -19.72), + (18, 37, 2), + (18, 39, 0.01), + (19, 15, 0.58), + (19, 23, 6.5), + (19, 28, 20.72), + (19, 29, -18.72), + (19, 39, 0.02), + (20, 15, 0.58), + (20, 23, 6.5), + (20, 28, 20.72), + (20, 29, -18.72), + (20, 39, 0.02), + (21, 15, 0.58), + (21, 23, 6.5), + (21, 28, 20.72), + (21, 29, -18.72), + (21, 39, 0.02), + (22, 15, 0.58), + (22, 23, 6.5), + (22, 28, 20.72), + (22, 29, -18.72), + (22, 39, 0.02), + (23, 15, 0.58), + (23, 23, 6.5), + (23, 28, 20.72), + (23, 29, -18.72), + (23, 39, 0.02), + (24, 15, 0.58), + (24, 23, 6.5), + (24, 28, 20.72), + (24, 29, -18.72), + (24, 39, 0.02), + (25, 15, 0.051), + (25, 22, -0.001), + (25, 28, 20.72), + (25, 29, -19.72), + (25, 37, 2), + (25, 39, 0.01), + (26, 15, 0.051), + (26, 22, -0.001), + (26, 28, 20.72), + (26, 29, -19.72), + (26, 37, 2), + (26, 39, 0.01), + (27, 15, 0.051), + (27, 22, -0.001), + (27, 28, 20.72), + (27, 29, -19.72), + (27, 37, 2), + (27, 39, 0.01), + (28, 15, 0.051), + (28, 22, -0.001), + (28, 28, 20.72), + (28, 29, -19.72), + (28, 37, 2), + (28, 39, 0.01), + (29, 15, 0.051), + (29, 22, -0.001), + (29, 28, 20.72), + (29, 29, -19.72), + (29, 37, 2), + (29, 39, 0.01), + (30, 15, 0.051), + (30, 22, -0.001), + (30, 28, 20.72), + (30, 29, -19.72), + (30, 37, 2), + (30, 39, 0.01); INSERT INTO `vn`.`clientContact`(`id`, `clientFk`, `name`, `phone`) VALUES @@ -1169,24 +1346,23 @@ INSERT INTO `vn`.`claimState`(`id`, `description`, `roleFk`) INSERT INTO `vn`.`claim`(`id`, `ticketCreated`, `claimStateFk`, `observation`, `clientFk`, `workerFk`, `responsibility`, `isChargedToMana`, `created` ) VALUES - (1, CURDATE(), 1, 'observation one', 101, 18, 1, 0, CURDATE()), - (2, CURDATE(), 2, 'observation two', 101, 18, 2, 0, CURDATE()), - (3, DATE_ADD(CURDATE(), INTERVAL -5 DAY), 3, 'observation three', 101, 18, 3, 0, CURDATE()), - (4, CURDATE(), 3, 'observation four', 104, 18, 1, 0, CURDATE()); + (1, CURDATE(), 1, 'observation one', 101, 18, 3, 0, CURDATE()), + (2, CURDATE(), 2, 'observation two', 101, 18, 3, 0, CURDATE()), + (3, CURDATE(), 3, 'observation three', 101, 18, 1, 1, CURDATE()), + (4, CURDATE(), 3, 'observation four', 104, 18, 5, 0, CURDATE()); INSERT INTO `vn`.`claimBeginning`(`id`, `claimFk`, `saleFk`, `quantity`) VALUES (1, 1, 7, 5), - (2, 1, 8, 4), - (3, 2, 10, 10), - (4, 3, 6, 5), - (5, 4, 13, 5); + (2, 2, 10, 10), + (3, 3, 22, 1), + (4, 4, 13, 5); INSERT INTO `vn`.`claimDestination`(`id`, `description`, `addressFk`) VALUES - (1, 'Bueno', null), + (1, 'Bueno', NULL), (2, 'Basura/Perd.', 12), - (3, 'Confeccion', null), + (3, 'Confeccion', NULL), (4, 'Reclam.PRAG', 12), (5, 'Corregido', 11); @@ -1198,6 +1374,11 @@ INSERT INTO `vn`.`claimDevelopment`(`id`, `claimFk`, `claimResponsibleFk`, `work (4, 3, 7, 21, 15, 8, 2, 5), (5, 4, 7, 21, 7, 8, 2, 5); +INSERT INTO `vn`.`claimEnd`(`id`, `saleFk`, `claimFk`, `workerFk`, `claimDestinationFk`) + VALUES + (1, 31, 4, 21, 2), + (2, 32, 3, 21, 3); + INSERT INTO `hedera`.`tpvMerchant`(`id`, `description`, `companyFk`, `bankFk`, `secretKey`) VALUES (1, 'Arkham Bank', 442, 1, 'h12387193H10238'), @@ -1228,7 +1409,14 @@ INSERT INTO `vn`.`orderTicket`(`orderFk`, `ticketFk`) (12, 12), (13, 13), (14, 14), - (15, 15); + (15, 15), + (16, 16), + (17, 17), + (18, 18), + (19, 19), + (20, 20), + (21, 21), + (22, 22); INSERT INTO `vn`.`userConfig` (`userFk`, `warehouseFk`, `companyFk`) VALUES @@ -1282,7 +1470,7 @@ INSERT INTO `postgresql`.`person`(`person_id`, `name`, `nickname`, `nif`, `first INSERT INTO `postgresql`.`person`(`person_id`, `name`, `nickname`, `nif`, `firstname`, `id_trabajador`) VALUES - (1000, 'VERDNATURA LEVANTE SL', 'VNL', 'B78945612', NULL, NULL); + (1000, 'VERDNATURA LEVANTE SL', 'VNL', 'B78945612', NULL, NULL); INSERT INTO `postgresql`.`profile`(`profile_id`, `person_id`, `profile_type_id`) SELECT p.person_id, p.person_id, 1 @@ -1352,17 +1540,6 @@ INSERT INTO `vn`.`sharingClient`(`id`, `workerFk`, `started`, `ended`, `clientFk INSERT INTO `vn`.`sharingCart`(`id`, `workerFk`, `started`, `ended`, `workerSubstitute`, `created`) VALUES (1, 18, DATE_ADD(CURDATE(), INTERVAL -5 DAY), DATE_ADD(CURDATE(), INTERVAL +15 DAY), 19, DATE_ADD(CURDATE(), INTERVAL -5 DAY)); - -INSERT INTO `vn`.`zone` (`id`, `name`, `hour`, `warehouseFk`, `agencyModeFk`, `travelingDays`, `price`, `bonus`) - VALUES - (1, 'Zone pickup A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 1, 0, '0', '0'), - (2, 'Zone pickup B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 1, 0, '0', '0'), - (3, 'Zone 247 A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 7, 1, '2', '0'), - (4, 'Zone 247 B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 7, 1, '2', '0'), - (5, 'Zone expensive A', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 8, 1, '5', '-1'), - (6, 'Zone expensive B', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 2, 8, 1, '5', '-1'), - (7, 'Zone refund', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 10, 0, 0, 0), - (8, 'Zone others', CONCAT(CURRENT_DATE(), ' ', TIME('22:00')), 1, 23, 0, 0, 0); INSERT INTO `vn`.`zoneIncluded` (`zoneFk`, `geoFk`, `isIncluded`) VALUES diff --git a/db/dump/structure.sql b/db/dump/structure.sql index e922b5a1d..34989cf96 100644 --- a/db/dump/structure.sql +++ b/db/dump/structure.sql @@ -174,7 +174,7 @@ CREATE TABLE `mailAlias` ( `isPublic` tinyint(4) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `alias` (`alias`) -) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Mail aliases'; +) ENGINE=InnoDB AUTO_INCREMENT=82 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Mail aliases'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -270,7 +270,7 @@ CREATE TABLE `role` ( `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Roles'; +) ENGINE=InnoDB AUTO_INCREMENT=63 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Roles'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -347,6 +347,7 @@ CREATE TABLE `user` ( `name` varchar(30) CHARACTER SET utf8 NOT NULL, `nickname` varchar(127) COLLATE utf8_unicode_ci NOT NULL, `password` char(64) COLLATE utf8_unicode_ci NOT NULL, + `bcryptPassword` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `role` int(10) unsigned NOT NULL DEFAULT '2', `active` tinyint(1) NOT NULL DEFAULT '1', `email` varchar(255) CHARACTER SET utf8 DEFAULT NULL, @@ -363,7 +364,7 @@ CREATE TABLE `user` ( KEY `nickname` (`nickname`), KEY `lang` (`lang`), CONSTRAINT `user_ibfk_2` FOREIGN KEY (`role`) REFERENCES `role` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=15883 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global users'; +) ENGINE=InnoDB AUTO_INCREMENT=16026 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Global users'; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -411,6 +412,7 @@ BEGIN END IF; IF !(NEW.`password` <=> OLD.`password`) THEN + SET NEW.bcryptPassword = NULL; SET NEW.lastPassChange = NOW(); END IF; END */;; @@ -988,9 +990,9 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; @@ -1002,8 +1004,8 @@ proc: BEGIN * de la mezcla de permisos serán nombrados singuiendo el patrón * z-[nombre_rol]. * - * Para que el procedimiento funcione debe de existir un usuario - * any@% que se usara como plantilla base. + * Si existe el usuario any@localhost que se tomará como plantilla + * para los atributos básicos. * * ¡Atención! Este procedimiento solo debe ser llamado cuando se * modifiquen los privilegios de MySQL. Si se modifica la jerarquía @@ -1011,25 +1013,11 @@ proc: BEGIN * este internamente. */ DECLARE vTplUser VARCHAR(255) DEFAULT 'any'; - DECLARE vHost VARCHAR(255) DEFAULT '%'; + DECLARE vTplHost VARCHAR(255) DEFAULT '%'; + DECLARE vRoleHost VARCHAR(255) DEFAULT 'localhost'; + DECLARE vAllHost VARCHAR(255) DEFAULT '%'; DECLARE vPrefix VARCHAR(2) DEFAULT 'z-'; - - DECLARE vTplExists BOOL; - DECLARE vTplHost VARCHAR(255); DECLARE vPrefixedLike VARCHAR(255); - - -- Comprueba que el usuario plantilla existe - - SELECT COUNT(*) > 0, `Host` - INTO vTplExists, vTplHost - FROM mysql.user - WHERE `User` = vTplUser - LIMIT 1; - - IF NOT vTplExists THEN - SIGNAL SQLSTATE '45000' - SET MESSAGE_TEXT = 'TEMPLATE_USER_NOT_EXISTS'; - END IF; -- Borra todos los privilegios calculados @@ -1057,8 +1045,10 @@ proc: BEGIN DROP TEMPORARY TABLE IF EXISTS tRole; CREATE TEMPORARY TABLE tRole + (INDEX (id)) ENGINE = MEMORY SELECT + id, `name` role, CONCAT(vPrefix, `name`) prefixedRole FROM role @@ -1069,9 +1059,9 @@ proc: BEGIN (INDEX (inheritsFrom)) ENGINE = MEMORY SELECT - CONCAT(vPrefix, r.`name`) prefixedRole, + r.prefixedRole, ri.`name` inheritsFrom - FROM role r + FROM tRole r JOIN roleRole rr ON rr.role = r.id JOIN role ri ON ri.id = rr.inheritsFrom; @@ -1093,31 +1083,38 @@ proc: BEGIN SELECT r.prefixedRole, vTplHost, - IF('' != u.`Password`, - u.`Password`, t.`Password`), - IF('' != u.`ssl_type`, + IFNULL(t.`Password`, ''), + IFNULL(IF('' != u.`ssl_type`, u.`ssl_type`, t.`ssl_type`), - IF('' != u.`ssl_cipher`, + ''), + IFNULL(IF('' != u.`ssl_cipher`, u.`ssl_cipher`, t.`ssl_cipher`), - IF('' != u.`x509_issuer`, + ''), + IFNULL(IF('' != u.`x509_issuer`, u.`x509_issuer`, t.`x509_issuer`), - IF('' != u.`x509_subject`, + ''), + IFNULL(IF('' != u.`x509_subject`, u.`x509_subject`, t.`x509_subject`), - IF(0 != u.`max_questions`, + ''), + IFNULL(IF(0 != u.`max_questions`, u.`max_questions`, t.`max_questions`), - IF(0 != u.`max_updates`, + 0), + IFNULL(IF(0 != u.`max_updates`, u.`max_updates`, t.`max_updates`), - IF(0 != u.`max_connections`, + 0), + IFNULL(IF(0 != u.`max_connections`, u.`max_connections`, t.`max_connections`), - IF(0 != u.`max_user_connections`, - u.`max_user_connections`, t.`max_user_connections`) + 0), + IFNULL(IF(0 != u.`max_user_connections`, + u.`max_user_connections`, t.`max_user_connections`), + 0) FROM tRole r - JOIN mysql.user t + LEFT JOIN mysql.user t ON t.`User` = vTplUser - AND t.`Host` = vTplHost + AND t.`Host` = vRoleHost LEFT JOIN mysql.user u ON u.`User` = r.role - AND u.`Host` = vHost; + AND u.`Host` = vRoleHost; INSERT INTO mysql.proxies_priv ( `User`, @@ -1128,9 +1125,9 @@ proc: BEGIN ) SELECT '', - vHost, + vAllHost, prefixedRole, - vHost, + vTplHost, CONCAT(prefixedRole, '@', vTplHost) FROM tRole; @@ -1174,13 +1171,13 @@ proc: BEGIN FROM tRoleInherit r JOIN mysql.user u ON u.`User` = r.inheritsFrom - AND u.`Host`= vHost + AND u.`Host`= vRoleHost GROUP BY r.prefixedRole; UPDATE mysql.user u JOIN tUserPriv t ON u.`User` = t.prefixedRole - AND u.`Host` = vHost + AND u.`Host` = vTplHost SET u.`Select_priv` = t.`Select_priv`, @@ -1295,7 +1292,7 @@ proc: BEGIN FROM tRoleInherit r JOIN mysql.db t ON t.`User` = r.inheritsFrom - AND t.`Host`= vHost + AND t.`Host`= vRoleHost GROUP BY r.prefixedRole, t.`Db`; -- Copia los privilegios a nivel de tabla @@ -1322,7 +1319,7 @@ proc: BEGIN FROM tRoleInherit r JOIN mysql.tables_priv t ON t.`User` = r.inheritsFrom - AND t.`Host`= vHost + AND t.`Host`= vRoleHost GROUP BY r.prefixedRole, t.`Db`, t.`Table_name`; -- Copia los privilegios a nivel de columna @@ -1347,7 +1344,7 @@ proc: BEGIN FROM tRoleInherit r JOIN mysql.columns_priv t ON t.`User` = r.inheritsFrom - AND t.`Host`= vHost + AND t.`Host`= vRoleHost GROUP BY r.prefixedRole, t.`Db`, t.`Table_name`, t.`Column_name`; -- Copia los privilegios de los procedimientos @@ -1374,7 +1371,7 @@ proc: BEGIN FROM tRoleInherit r JOIN mysql.procs_priv t ON t.`User` = r.inheritsFrom - AND t.`Host`= vHost; + AND t.`Host`= vRoleHost; -- Libera memoria @@ -1925,7 +1922,7 @@ CREATE TABLE `XDiario_ALL` ( KEY `Cuenta` (`SUBCTA`), KEY `empresa` (`empresa_id`), KEY `Fecha` (`Fecha`) -) ENGINE=InnoDB AUTO_INCREMENT=2094305 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4245248 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -1998,7 +1995,7 @@ CREATE TABLE `analisis_ventas` ( `Importe` double NOT NULL, PRIMARY KEY (`id`), KEY `Año` (`Año`,`Semana`) -) ENGINE=InnoDB AUTO_INCREMENT=41945768 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=53672261 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -2250,6 +2247,7 @@ CREATE TABLE `defaulters` ( `amount` double NOT NULL DEFAULT '0', `defaulterSince` date DEFAULT NULL, `hasChanged` tinyint(1) DEFAULT NULL, + `frozened` date DEFAULT NULL, PRIMARY KEY (`client`,`date`), KEY `client` (`client`), KEY `date` (`date`) @@ -2502,7 +2500,7 @@ CREATE TABLE `rutasBoard` ( KEY `rutasBoard_ix1` (`year`), KEY `rutasBoard_ix2` (`month`), KEY `rutasBoard_ix3` (`warehouse_id`) -) ENGINE=InnoDB AUTO_INCREMENT=93445 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=119049 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -3542,191 +3540,101 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `defaulting`(IN `vDate` DATE) -BEGIN -/*JGF para usar el campo vencimiento de facturas*/ - DECLARE vDone BOOLEAN; - DECLARE vClient INT; - DECLARE vAmount INT; - DECLARE vDued DATE; - DECLARE vAmountInvoice DECIMAL(10,2); - DECLARE vGraceDays INT; - DECLARE defaulters CURSOR FOR - SELECT client, amount, graceDays FROM bi.defaulters d - JOIN vn2008.Clientes c ON c.Id_Cliente = d.client - JOIN vn2008.pay_met pm ON pm.id = c.pay_met_id - WHERE hasChanged AND date = vDate; - - DECLARE invoices CURSOR FOR - SELECT Vencimiento, importe FROM vn2008.Facturas f - WHERE f.Fecha >= '2016-01-01' AND f.Id_Cliente = vClient ORDER BY f.Fecha DESC; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - DELETE FROM bi.defaulters WHERE date = vDate; - - INSERT INTO bi.defaulters(client, date, amount) - SELECT customer_id, vDate, FLOOR(SUM(amount)) AS amount - FROM bi.customerRiskOverdue - GROUP BY customer_id; - - -- marcamos si ha cambiado y heredamos la fecha defaulterSince - UPDATE bi.defaulters d - JOIN ( - SELECT * FROM( - SELECT client, amount , defaulterSince FROM bi.defaulters - WHERE date <= TIMESTAMPADD(DAY,-1, vDate) - ORDER BY date DESC) t GROUP BY client - ) yesterday using(client) - SET d.hasChanged = IF(d.amount <> yesterday.amount, 1, 0), - d.defaulterSince = yesterday.defaulterSince - WHERE d.date = vDate ; - - OPEN defaulters; - defaulters: LOOP - SET vDone = FALSE; - SET vAmount = 0; - FETCH defaulters INTO vClient,vAmount, vGraceDays; - IF vDone THEN - LEAVE defaulters; - END IF; - OPEN invoices; - invoices:LOOP - - FETCH invoices INTO vDued, vAmountInvoice; - IF vDone THEN - LEAVE invoices; - END IF; - - IF TIMESTAMPADD(DAY, vGraceDays, vDued) <= vDate THEN - SET vAmount = vAmount - vAmountInvoice; - IF vAmount <= 0 THEN - - UPDATE defaulters SET defaulterSince = vDued - WHERE client = vClient and date = vDate; - - SET vAmount = 0; - LEAVE invoices; - END IF; - END IF; - END LOOP; - CLOSE invoices; - END LOOP; - CLOSE defaulters; - DELETE FROM bi.defaulting WHERE date = vDate; - - INSERT INTO bi.defaulting(date, amount) - SELECT vDate, SUM(amount) - FROM bi.defaulters - WHERE date = vDate and amount > 0; - - CALL vn.clientFreeze(); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `defaultingTest` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `defaultingTest`(IN `vDate` DATE) -BEGIN -/*JGF para usar el campo vencimiento de facturas*/ - DECLARE vDone BOOLEAN; - DECLARE vClient INT; - DECLARE vAmount INT; - DECLARE vDued DATE; - DECLARE vAmountInvoice DECIMAL(10,2); - DECLARE vGraceDays INT; - DECLARE defaulters CURSOR FOR - SELECT client, amount, graceDays FROM bi.defaulters d - JOIN vn2008.Clientes c ON c.Id_Cliente = d.client - JOIN vn2008.pay_met pm ON pm.id = c.pay_met_id - WHERE hasChanged AND date = vDate; - - DECLARE invoices CURSOR FOR - SELECT Fecha, importe FROM vn2008.Facturas f - WHERE f.Fecha >= '2016-01-01' AND f.Id_Cliente = vClient ORDER BY f.Fecha DESC; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - - DELETE FROM bi.defaulters WHERE date = vDate; - - INSERT INTO bi.defaulters(client, date, amount) - SELECT customer_id, vDate, FLOOR(SUM(amount)) AS amount - FROM bi.customerRiskOverdue - GROUP BY customer_id; - - SELECT * FROM( - SELECT client, amount , defaulterSince FROM bi.defaulters - WHERE date <= TIMESTAMPADD(DAY,-1, vDate) - ORDER BY date DESC) t GROUP BY client; - SELECT * FROM bi.defaulters where client = 14669; - - -- marcamos si ha cambiado y heredamos la fecha defaulterSince - UPDATE bi.defaulters d - JOIN ( - SELECT * FROM( - SELECT client, amount , defaulterSince FROM bi.defaulters - WHERE date <= TIMESTAMPADD(DAY,-1, vDate) - ORDER BY date DESC) t GROUP BY client - ) yesterday using(client) - SET d.hasChanged = IF(d.amount <> yesterday.amount, 1, 0), - d.defaulterSince = yesterday.defaulterSince - WHERE d.date = vDate ; - - OPEN defaulters; - defaulters: LOOP - SET vDone = FALSE; - SET vAmount = 0; - FETCH defaulters INTO vClient,vAmount, vGraceDays; - IF vDone THEN - LEAVE defaulters; - END IF; - OPEN invoices; - invoices:LOOP - - FETCH invoices INTO vDued, vAmountInvoice; - IF vDone THEN - LEAVE invoices; - END IF; - - IF TIMESTAMPADD(DAY, vGraceDays, vDued) <= vDate THEN - SET vAmount = vAmount - vAmountInvoice; - IF vAmount <= 0 THEN - UPDATE defaulters SET defaulterSince = vDued - WHERE client = vClient and date = vDate; - - SET vAmount = 0; - LEAVE invoices; - END IF; - END IF; - END LOOP; - CLOSE invoices; - END LOOP; - CLOSE defaulters; - DELETE FROM bi.defaulting WHERE date = vDate; - - INSERT INTO bi.defaulting(date, amount) - SELECT vDate, SUM(amount) - FROM bi.defaulters - WHERE date = vDate and amount > 0; - - CALL vn.clientFreeze(); +BEGIN +/*JGF para usar el campo vencimiento de facturas*/ + DECLARE vDone BOOLEAN; + DECLARE vClient INT; + DECLARE vAmount INT; + DECLARE vDued DATE; + DECLARE vAmountInvoice DECIMAL(10,2); + DECLARE vGraceDays INT; + DECLARE defaulters CURSOR FOR + SELECT client, amount, graceDays FROM bi.defaulters d + JOIN vn2008.Clientes c ON c.Id_Cliente = d.client + JOIN vn2008.pay_met pm ON pm.id = c.pay_met_id + WHERE hasChanged AND date = vDate; + + DECLARE invoices CURSOR FOR + SELECT Vencimiento, importe FROM vn2008.Facturas f + WHERE f.Fecha >= '2016-01-01' AND f.Id_Cliente = vClient ORDER BY f.Fecha DESC; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + + DELETE FROM bi.defaulters WHERE date = vDate; + + INSERT INTO bi.defaulters(client, date, amount) + SELECT customer_id, vDate, FLOOR(SUM(amount)) AS amount + FROM bi.customerRiskOverdue + GROUP BY customer_id; + + -- marcamos si ha cambiado y heredamos la fecha defaulterSince + UPDATE bi.defaulters d + JOIN ( + SELECT * FROM( + SELECT client, amount , defaulterSince, frozened FROM bi.defaulters + WHERE date <= TIMESTAMPADD(DAY,-1, vDate) + ORDER BY date DESC) t GROUP BY client + ) yesterday using(client) + SET d.hasChanged = IF(d.amount <> yesterday.amount, 1, 0), + d.defaulterSince = yesterday.defaulterSince, + d.frozened = yesterday.frozened + WHERE d.date = vDate ; + + OPEN defaulters; + defaulters: LOOP + SET vDone = FALSE; + SET vAmount = 0; + FETCH defaulters INTO vClient,vAmount, vGraceDays; + IF vDone THEN + LEAVE defaulters; + END IF; + OPEN invoices; + invoices:LOOP + + FETCH invoices INTO vDued, vAmountInvoice; + IF vDone THEN + LEAVE invoices; + END IF; + + IF TIMESTAMPADD(DAY, vGraceDays, vDued) <= vDate THEN + SET vAmount = vAmount - vAmountInvoice; + IF vAmount <= 0 THEN + + UPDATE defaulters SET defaulterSince = vDued + WHERE client = vClient and date = vDate; + + SET vAmount = 0; + LEAVE invoices; + END IF; + END IF; + END LOOP; + CLOSE invoices; + END LOOP; + CLOSE defaulters; + + UPDATE defaulters d + JOIN vn.config ON TRUE + SET d.frozened = NULL + WHERE d.`date` = vDate + AND d.amount <= config.defaultersMaxAmount; + + CALL vn.clientFreeze(); + + -- actualizamos defaulting + DELETE FROM bi.defaulting WHERE date = vDate; + + INSERT INTO bi.defaulting(date, amount) + SELECT vDate, SUM(amount) + FROM bi.defaulters + WHERE date = vDate and amount > 0; + END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -3967,7 +3875,7 @@ DELIMITER ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; @@ -3992,6 +3900,8 @@ BEGIN END; SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; + + DELETE FROM bi.Greuge_Evolution WHERE Fecha >= TIMESTAMPADD(MONTH,-1,CURDATE()); SELECT TIMESTAMPADD(DAY,1,MAX(Fecha)), TIMESTAMPADD(DAY,2,MAX(Fecha)) @@ -5180,7 +5090,7 @@ CREATE TABLE `m3` ( `dayName` varchar(12) COLLATE utf8_unicode_ci DEFAULT NULL, `euros` decimal(10,2) DEFAULT '0.00', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=208821 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=234389 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5276,7 +5186,6 @@ CREATE TABLE `mana_spellers` ( CONSTRAINT `fk_mana_spellers_Trabajadores` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -5288,18 +5197,47 @@ ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ; DELIMITER ;; /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `bs`.`mana_spellers_AFTER_INSERT` AFTER INSERT ON `mana_spellers` FOR EACH ROW BEGIN - - REPLACE vn2008.Permisos(Id_Grupo, Id_Trabajador) VALUES(6, NEW.Id_Trabajador); + IF (NEW.Id_Trabajador = 196) THEN + INSERT INTO vn2008.mail SET + `to` = 'carlosap@verdnatura.es', + reply_to = 'carlosap@verdnatura.es', + `subject` = 'Se ha insertado maná spellers worker 196', + `text` = CONCAT('Usuario: ', account.userGetName()); + END IF; + +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `bs`.`mana_spellers_BEFORE_UPDATE` BEFORE UPDATE ON `mana_spellers` FOR EACH ROW +BEGIN + IF (NEW.prices_modifier_activated <> OLD.prices_modifier_activated) THEN + INSERT INTO vn2008.mail SET + `to` = 'carlosap@verdnatura.es', + reply_to = 'carlosap@verdnatura.es', + `subject` = 'Se ha cambiado maná spellers', + `text` = CONCAT('WorkerFk: ',OLD.Id_Trabajador, ' Usuario: ', account.userGetName()); + END IF; END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ; -- -- Table structure for table `mana_spellers_excluded` @@ -5414,9 +5352,9 @@ CREATE TABLE `payMethodClient` ( KEY `FkPayMethod_idx` (`payMethodFk`), KEY `FkClientPayMethod_idx` (`clientFk`), KEY `FkDateClientPayMethod` (`dated`,`clientFk`), - CONSTRAINT `FkClientPayMethod` FOREIGN KEY (`clientFk`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT `FkClientPayMethod` FOREIGN KEY (`clientFk`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FkPayMethodClient` FOREIGN KEY (`payMethodFk`) REFERENCES `vn2008`.`pay_met` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3267509 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; +) ENGINE=InnoDB AUTO_INCREMENT=3675996 DEFAULT CHARSET=utf8 COLLATE=utf8_bin; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5434,7 +5372,7 @@ CREATE TABLE `payMethodClientEvolution` ( `amount` decimal(10,2) NOT NULL, `equalizationTax` decimal(10,2) NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1024 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2048 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5485,8 +5423,12 @@ CREATE TABLE `productivity` ( `costCamara` double NOT NULL DEFAULT '0', `numComplementos` int(11) NOT NULL DEFAULT '0', `costComplementos` double NOT NULL DEFAULT '0', + `numArtificial` int(11) NOT NULL DEFAULT '0', + `costArtificial` double NOT NULL DEFAULT '0', + `m3FV` double NOT NULL DEFAULT '0', + `m3PCA` double NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=33061776 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=42948405 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -5504,6 +5446,7 @@ CREATE TABLE `productivityDepartment` ( `amountPaletizado` decimal(10,2) NOT NULL DEFAULT '0.00', `amountCamara` decimal(10,2) NOT NULL DEFAULT '0.00', `amountComplementos` decimal(10,2) NOT NULL DEFAULT '0.00', + `amountArtificial` decimal(10,2) NOT NULL DEFAULT '0.00', PRIMARY KEY (`dated`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -5625,11 +5568,12 @@ DROP TABLE IF EXISTS `vendedores_evolution`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `vendedores_evolution` ( - `Id_Trabajador` int(11) NOT NULL, - `fecha` date NOT NULL, - `importe` decimal(10,2) DEFAULT NULL, - PRIMARY KEY (`Id_Trabajador`,`fecha`), - CONSTRAINT `evo_vendedor_trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE + `workerFk` int(11) NOT NULL, + `year` int(11) NOT NULL, + `sales` decimal(10,2) DEFAULT NULL, + `month` int(11) NOT NULL, + PRIMARY KEY (`workerFk`,`year`,`month`), + CONSTRAINT `evo_vendedor_trabajador` FOREIGN KEY (`workerFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -7162,17 +7106,19 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `productivityAdd`(vDate DATE) BEGIN - DECLARE vDateStart DATETIME DEFAULT DATE(vDate); + DECLARE vDateStart DATETIME DEFAULT vDate; DECLARE vDateEnd DATETIME DEFAULT util.dayEnd(vDate); + DECLARE myDepLft INT; + DECLARE myDepRgt INT; DROP TEMPORARY TABLE IF EXISTS tmp.productivity; @@ -7181,6 +7127,8 @@ BEGIN SELECT hh, mm, 000.00 as m3, + 000.00 as m3FV, + 000.00 as m3PCA, 0 as workers, 000.00 as wCost, 0 as numCoordinadores, @@ -7194,7 +7142,9 @@ BEGIN 0 as numCamareros, 000.00 as costCamara, 0 as numComplementos, - 000.00 as costComplementos + 000.00 as costComplementos, + 0 as numArtificial, + 000.00 as costArtificial FROM vn.dayMinute; -- Trabajadores @@ -7214,91 +7164,142 @@ BEGIN SET p.workers = sub.workers, p.wCost = sub.Bruto; -- Coordinadores + SELECT lft, rgt INTO myDepLft, myDepRgt + FROM vn.department + WHERE name = 'COORDINACION'; + UPDATE tmp.productivity p JOIN (SELECT Hora, Minuto, count(*) as workers, sum(wdd.costeHora) / 60 as Bruto FROM tmp.dayMinuteWorker dmw - JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN vn.department d ON d.id = wdd.departmentFk WHERE Almacen IN (1,44) - AND wdd.department = 'COORDINACION' + AND d.lft BETWEEN myDepLft AND myDepRgt GROUP BY Hora, Minuto ) sub ON p.hh = sub.Hora AND p.mm = sub.Minuto SET p.numCoordinadores = sub.workers, p.costCoordinacion = sub.Bruto; -- Sacado + SELECT lft, rgt INTO myDepLft, myDepRgt + FROM vn.department + WHERE name = 'SACADO'; + UPDATE tmp.productivity p JOIN (SELECT Hora, Minuto, count(*) as workers, sum(wdd.costeHora) / 60 as Bruto FROM tmp.dayMinuteWorker dmw - JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN vn.department d ON d.id = wdd.departmentFk WHERE Almacen IN (1,44) - AND wdd.department = 'SACADO' + AND d.lft BETWEEN myDepLft AND myDepRgt GROUP BY Hora, Minuto ) sub ON p.hh = sub.Hora AND p.mm = sub.Minuto SET p.numSacadores = sub.workers, p.costSacado = sub.Bruto; -- Encajado + SELECT lft, rgt INTO myDepLft, myDepRgt + FROM vn.department + WHERE name = 'ENCAJADO'; + UPDATE tmp.productivity p JOIN (SELECT Hora, Minuto, count(*) as workers, sum(wdd.costeHora) / 60 as Bruto FROM tmp.dayMinuteWorker dmw - JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN vn.department d ON d.id = wdd.departmentFk WHERE Almacen IN (1,44) - AND wdd.department = 'ENCAJADO' + AND d.lft BETWEEN myDepLft AND myDepRgt GROUP BY Hora, Minuto ) sub ON p.hh = sub.Hora AND p.mm = sub.Minuto SET p.numEncajadores = sub.workers, p.costEncajado = sub.Bruto; -- Paletizado + SELECT lft, rgt INTO myDepLft, myDepRgt + FROM vn.department + WHERE name = 'PALETIZADO'; + UPDATE tmp.productivity p JOIN (SELECT Hora, Minuto, count(*) as workers, sum(wdd.costeHora) / 60 as Bruto FROM tmp.dayMinuteWorker dmw - JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN vn.department d ON d.id = wdd.departmentFk WHERE Almacen IN (1,44) - AND wdd.department = 'PALETIZADO' + AND d.lft BETWEEN myDepLft AND myDepRgt GROUP BY Hora, Minuto ) sub ON p.hh = sub.Hora AND p.mm = sub.Minuto SET p.numPaletizadores = sub.workers, p.costPaletizado = sub.Bruto; -- Cámara + SELECT lft, rgt INTO myDepLft, myDepRgt + FROM vn.department + WHERE name = 'CAMARA'; + UPDATE tmp.productivity p JOIN (SELECT Hora, Minuto, count(*) as workers, sum(wdd.costeHora) / 60 as Bruto FROM tmp.dayMinuteWorker dmw - JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN vn.department d ON d.id = wdd.departmentFk WHERE Almacen IN (1,44) - AND wdd.department = 'CAMARA' + AND d.lft BETWEEN myDepLft AND myDepRgt GROUP BY Hora, Minuto ) sub ON p.hh = sub.Hora AND p.mm = sub.Minuto SET p.numCamareros = sub.workers, p.costCamara = sub.Bruto; -- Complementos + SELECT lft, rgt INTO myDepLft, myDepRgt + FROM vn.department + WHERE name = 'COMPLEMENTOS'; + UPDATE tmp.productivity p JOIN (SELECT Hora, Minuto, count(*) as workers, sum(wdd.costeHora) / 60 as Bruto FROM tmp.dayMinuteWorker dmw - JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN vn.department d ON d.id = wdd.departmentFk WHERE Almacen IN (1,44) - AND wdd.department = 'COMPLEMENTOS' + AND d.lft BETWEEN myDepLft AND myDepRgt GROUP BY Hora, Minuto ) sub ON p.hh = sub.Hora AND p.mm = sub.Minuto SET p.numComplementos = sub.workers, p.costComplementos = sub.Bruto; + + -- Artificial + SELECT lft, rgt INTO myDepLft, myDepRgt + FROM vn.department + WHERE name = 'ARTIFICIAL'; + + UPDATE tmp.productivity p + JOIN + (SELECT Hora, Minuto, count(*) as workers, sum(wdd.costeHora) / 60 as Bruto + FROM tmp.dayMinuteWorker dmw + JOIN tmp.workerDepartmentByDate wdd ON wdd.userFk = dmw.userFk + JOIN vn.department d ON d.id = wdd.departmentFk + WHERE Almacen IN (1,44) + AND d.lft BETWEEN myDepLft AND myDepRgt + GROUP BY Hora, Minuto + ) sub ON p.hh = sub.Hora AND p.mm = sub.Minuto + SET p.numArtificial = sub.workers, p.costArtificial = sub.Bruto; -- m3 CALL vn.ticketBuiltTime(vDate); -- Genera la tabla tmp.ticketBuiltTime(ticketFk,builtTime) - CALL vn.ticketVolumeByDate(vDate); -- Genera la tabla tmp.ticketVolumeByDate(ticketFk,m3) + CALL vn.ticketVolumeByDate_ventas(vDate); -- Genera la tabla tmp.ticketVolumeByDate(ticketFk,m3), filtrado por las ventas validas UPDATE tmp.productivity p JOIN - (SELECT HOUR(builtTime) hh, MINUTE(builtTime) mm, sum(m3) as m3 + (SELECT HOUR(builtTime) hh, + MINUTE(builtTime) mm, + sum(m3) as m3, + sum(IF(t.warehouseFk = 1,m3,0)) as m3FV, + sum(IF(t.warehouseFk = 44,m3,0)) as m3PCA FROM tmp.ticketBuiltTime tbt JOIN tmp.ticketVolumeByDate tvd ON tvd.ticketFk = tbt.ticketFk JOIN vn.ticket t ON t.id = tbt.ticketFk WHERE t.warehouseFk IN (1,44) GROUP BY hh,mm ) v ON v.hh = p.hh AND v.mm = p.mm - SET p.m3 = v.m3; + SET p.m3 = v.m3, p.m3FV = v.m3FV, p.m3PCA = v.m3PCA; DELETE FROM bs.productivity WHERE dated = vDate; @@ -7307,6 +7308,8 @@ BEGIN hh, mm, m3, + m3FV, + m3PCA, workers, wCost, numCoordinadores, @@ -7320,11 +7323,15 @@ BEGIN numCamareros, costCamara, numComplementos, - costComplementos) + costComplementos, + numArtificial, + costArtificial) SELECT vDate, hh, mm, m3, + m3FV, + m3PCA, workers, wCost, numCoordinadores, @@ -7338,7 +7345,9 @@ BEGIN numCamareros, costCamara, numComplementos, - costComplementos + costComplementos, + numArtificial, + costArtificial FROM tmp.productivity p; -- Productivity Evolution @@ -7364,9 +7373,9 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; @@ -7385,7 +7394,8 @@ BEGIN CAST(((productivityEncajadoLastYear - productivityEncajado) / 2) * m3 AS DECIMAL (10,2)) AS amountEncajado, CAST(((productivityPaletizadoLastYear - productivityPaletizado) / 2) * m3 AS DECIMAL (10,2)) AS amountPaletizado, CAST(((productivityCamaraLastYear - productivityCamara) / 2) * m3 AS DECIMAL (10,2)) AS amountCamara, - CAST(((productivityComplementosLastYear - productivityComplementos) / 2) * m3 AS DECIMAL (10,2)) AS amountComplementos + CAST(((productivityComplementosLastYear - productivityComplementos) / 2) * m3 AS DECIMAL (10,2)) AS amountComplementos, + CAST(((productivityArtificialLastYear - productivityArtificial) / 2) * m3 AS DECIMAL (10,2)) AS amountArtificia FROM (SELECT SUM(p.m3) AS m3, @@ -7394,7 +7404,8 @@ BEGIN SUM(p.costEncajado) / SUM(p.m3) AS productivityEncajado, SUM(p.costPaletizado) / SUM(p.m3) AS productivityPaletizado, SUM(p.costCamara) / SUM(p.m3) AS productivityCamara, - SUM(p.costComplementos) / SUM(p.m3) AS productivityComplementos + SUM(p.costComplementos) / SUM(p.m3) AS productivityComplementos, + SUM(p.costArtificial) / SUM(p.m3) AS productivityArtificial FROM bs.productivity p WHERE @@ -7406,7 +7417,8 @@ BEGIN SUM(p.costEncajado) / SUM(p.m3) AS productivityEncajadoLastYear, SUM(p.costPaletizado) / SUM(p.m3) AS productivityPaletizadoLastYear, SUM(p.costCamara) / SUM(p.m3) AS productivityCamaraLastYear, - SUM(p.costComplementos) / SUM(p.m3) AS productivityComplementosLastYear + SUM(p.costComplementos) / SUM(p.m3) AS productivityComplementosLastYear, + SUM(p.costArtificial) / SUM(p.m3) AS productivityArtificialLastYear FROM bs.productivity p WHERE @@ -7424,15 +7436,15 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `productivityDepartmentLauncher`() BEGIN - CALL bs.productivityDepartmentAdd('2018-11-01', CURDATE(),DATE_SUB(CURDATE(), INTERVAL 2 WEEK)); + CALL bs.productivityDepartmentAdd('2019-05-06', CURDATE(),DATE_SUB(CURDATE(), INTERVAL 2 WEEK)); END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -7443,16 +7455,20 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `productivityLauncher`() BEGIN - DECLARE vDateFrom DATE DEFAULT TIMESTAMPADD(MONTH, -1, CURDATE()); + DECLARE vDateFrom DATE; + + SELECT LEAST(TIMESTAMPADD(MONTH, -1, CURDATE()),MAX(dated)) + INTO vDateFrom + FROM bs.productivity; WHILE CURDATE() > vDateFrom DO CALL bs.productivityAdd(vDateFrom); @@ -7587,84 +7603,80 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `vendedores_add`(IN intYEAR INT, IN intMONTH INT) +CREATE DEFINER=`root`@`%` PROCEDURE `vendedores_add`(intYEAR INT, vQuarter INT) BEGIN DECLARE comisionRate DOUBLE DEFAULT 0.029; REPLACE vendedores - SELECT c.Id_Trabajador - , intYEAR - , intMONTH - , sum(importe) as importe - , sum(importe) * 0.029 as comision - , 0 as comisionCedida - , 0 as comisionArrendada - , 0 as comisionNuevos + SELECT c.Id_Trabajador + , intYEAR + , MONTH(v.fecha) intMONTH + , sum(importe) as importe + , sum(importe) * 0.029 as comision + , 0 as comisionCedida + , 0 as comisionArrendada + , 0 as comisionNuevos FROM ventas v JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente - JOIN vn2008.time on time.date = v.fecha - WHERE time.year = intYEAR and time.month = intMONTH - AND c.Id_Trabajador is not null - GROUP BY c.Id_Trabajador; - --- Ventas nuevas - - UPDATE vendedores + JOIN vn2008.`time` t on t.`date` = v.fecha + WHERE c.Id_Trabajador is not null + AND t.`year` = intYEAR AND QUARTER(v.fecha) = vQuarter + GROUP BY c.Id_Trabajador, t.`month`; + + -- Ventas nuevas + UPDATE vendedores v JOIN ( SELECT c.Id_Trabajador - , sum(importe) * 0.029 as comisionNueva + , sum(importe) * 0.029 as comisionNueva + , t.`month` + , t.`year` FROM ventas v JOIN bs.clientNewBorn cnb on v.Id_Cliente = cnb.clientFk JOIN vn2008.Clientes c ON c.Id_Cliente = v.Id_Cliente - JOIN vn2008.time on time.date = v.fecha - WHERE time.year = intYEAR and time.month = intMONTH - AND c.Id_Trabajador is not null - GROUP BY c.Id_Trabajador - ) sub using(Id_Trabajador) - SET comisionNuevos = sub.comisionNueva, comision = comision - sub.comisionNueva - WHERE año = intYEAR and mes = intMONTH; + JOIN vn2008.`time` t on t.`date` = v.fecha + WHERE c.Id_Trabajador is not null + AND t.`year` = intYEAR AND QUARTER(v.fecha) = vQuarter + GROUP BY c.Id_Trabajador, t.`month` + ) sub ON sub.Id_Trabajador = v.Id_Trabajador AND sub.`month` = v.mes AND sub.`year` = v.año + SET v.comisionNuevos = sub.comisionNueva, v.comision = v.comision - sub.comisionNueva; --- Ventas cedidas - -UPDATE vendedores -JOIN -( -SELECT cc.Id_Trabajador_old as Id_Trabajador - , sum(importe) * 0.029 * comision_old as cedido - , sum(importe) * 0.029 * comision_new as arrendada -FROM ventas v -JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente -JOIN vn2008.Clientes_cedidos cc on cc.Id_Cliente = c.Id_Cliente -JOIN vn2008.time on time.date = v.fecha -WHERE time.year = intYEAR and time.month = intMONTH -AND c.Id_Trabajador is not null -GROUP BY cc.Id_Trabajador_old -) sub using(Id_Trabajador) -SET comisionCedida = cedido, comision = comision - cedido - arrendada -WHERE año = intYEAR and mes = intMONTH; - --- Ventas arrendadas - -UPDATE vendedores -JOIN -( -SELECT cc.Id_Trabajador_new as Id_Trabajador - , sum(importe) * 0.029 * comision_new as arrendada - -FROM ventas v -JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente -JOIN vn2008.Clientes_cedidos cc on cc.Id_Cliente = c.Id_Cliente AND v.fecha between datSTART and datEND -JOIN vn2008.time on time.date = v.fecha -WHERE time.year = intYEAR and time.month = intMONTH -AND c.Id_Trabajador is not null -GROUP BY cc.Id_Trabajador_new -) sub using(Id_Trabajador) -SET comisionArrendada = arrendada -WHERE año = intYEAR and mes = intMONTH; + -- Ventas cedidas + UPDATE vendedores v + JOIN ( + SELECT cc.Id_Trabajador_old as Id_Trabajador + , sum(importe) * 0.029 * comision_old as cedido + , sum(importe) * 0.029 * comision_new as arrendada + , t.`month` + , t.`year` + FROM ventas v + JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente + JOIN vn2008.Clientes_cedidos cc on cc.Id_Cliente = c.Id_Cliente + JOIN vn2008.`time` t on t.`date` = v.fecha + WHERE c.Id_Trabajador is not null + AND t.`year` = intYEAR AND QUARTER(v.fecha) = vQuarter + GROUP BY cc.Id_Trabajador_old, t.`month` + ) sub ON sub.Id_Trabajador = v.Id_Trabajador AND sub.`month` = v.mes AND sub.`year` = v.año + SET v.comisionCedida = sub.cedido, v.comision = v.comision - sub.cedido - sub.arrendada; + -- Ventas arrendadas + UPDATE vendedores v + JOIN ( + SELECT cc.Id_Trabajador_new as Id_Trabajador + , sum(importe) * 0.029 * comision_new as arrendada + , t.`month` + , t.`year` + FROM ventas v + JOIN vn2008.Clientes c on v.Id_Cliente = c.Id_Cliente + JOIN vn2008.Clientes_cedidos cc on cc.Id_Cliente = c.Id_Cliente AND v.fecha between datSTART and datEND + JOIN vn2008.`time` t on t.`date` = v.fecha + WHERE c.Id_Trabajador is not null + AND t.`year` = intYEAR AND QUARTER(v.fecha) = vQuarter + GROUP BY cc.Id_Trabajador_new, t.`month` + ) sub ON sub.Id_Trabajador = v.Id_Trabajador AND sub.`month` = v.mes AND sub.`year` = v.año + SET v.comisionArrendada = sub.arrendada; END ;; DELIMITER ; @@ -7685,8 +7697,9 @@ DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `vendedores_add_launcher`() BEGIN - call bs.vendedores_add(year(curdate()), month(curdate())); - call bs.vendedores_add(year(timestampadd(month,-1,curdate())), month(timestampadd(month,-1,curdate()))); + call bs.vendedores_add(YEAR(CURDATE()),QUARTER(CURDATE())); + + call bs.vendedores_evolution_add; END ;; DELIMITER ; @@ -7695,13 +7708,12 @@ DELIMITER ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `vendedores_evolution_add` */; -ALTER DATABASE `bs` CHARACTER SET latin1 COLLATE latin1_swedish_ci ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; @@ -7709,60 +7721,58 @@ CREATE DEFINER=`root`@`%` PROCEDURE `vendedores_evolution_add`() BEGIN /* -Inserta en la tabla compradores_evolution las ventas acumuladas en los ultimos 365 dias +Inserta en la tabla compradores_evolution las ventas acumuladas en el ultimo mes */ -DECLARE datFEC DATE; +DECLARE vYear, vMonth INTEGER; +DECLARE vCurYear, vCurMonth INTEGER; +DECLARE vFirstYear INTEGER DEFAULT 2017; +DECLARE vFirstMonth INTEGER DEFAULT 1; +DECLARE vDateFrom DATE; +DECLARE vDateTo DATE; -SELECT TIMESTAMPADD(DAY,1,MAX(fecha)) INTO datFEC FROM bs.vendedores_evolution; +SET vCurYear = year(CURDATE()); +SET vCurMonth = month(CURDATE()); - WHILE datFEC < CURDATE() DO +SELECT IFNULL(max(year),vFirstYear), IFNULL(max(month),vFirstMonth) + INTO vYear, vMonth + FROM bs.vendedores_evolution; + + WHILE (vYear < vCurYear) OR (vYear = vCurYear AND vMonth < vCurMonth) DO + + SELECT max(dated), TIMESTAMPADD(DAY,-364,max(dated)) INTO vDateTo, vDateFrom + FROM vn.time + WHERE year = vYear + AND month = vMonth; + + SELECT vDateTo, vDateFrom, vYear, vMonth; + + REPLACE bs.vendedores_evolution( workerFk + , year + , month + , sales) + SELECT c.salesPersonFk + , vYear as year + , vMonth as month + , sum(v.importe) as sales + FROM bs.ventas v + JOIN vn.client c on c.id = v.Id_Cliente + WHERE v.fecha BETWEEN vDateFrom AND vDateTo + AND c.salesPersonFk is not null + GROUP BY c.salesPersonFk; + + SET vMonth = vMonth + 1; + + IF vMonth = 13 THEN - SELECT datFEC; + SET vMonth = 1; + SET vYear = vYear + 1; + + END IF; - REPLACE bs.vendedores_evolution( Id_Trabajador - , fecha - , importe) - - SELECT Id_Trabajador - , datFEC as fecha - , sum(importe) as importe - - FROM - ( - - SELECT Id_Trabajador - , importe - FROM bs.vendedores_evolution - WHERE fecha = TIMESTAMPADD(DAY,-1,datFEC) -- las ventas acumuladas del dia anterior - - UNION ALL - - SELECT c.Id_Trabajador - , importe * IF(v.fecha < datFEC,-1,1) -- se restan las ventas del año anterior y se suman las del actual - FROM bs.ventas v - JOIN vn2008.Movimientos m using(Id_Movimiento) - JOIN vn2008.Tickets t using(Id_Ticket) - JOIN vn2008.Consignatarios cs using(Id_Consigna) - JOIN vn2008.Clientes c on cs.Id_Cliente = c.Id_Cliente - JOIN vn2008.Tipos using(tipo_id) - WHERE v.fecha IN (datFEC, TIMESTAMPADD(DAY,-365,datFEC)) - AND c.Id_Trabajador is not null - AND (Id_Article = 98 or Id_Article = 95 or reino_id != 6) - GROUP BY c.Id_Trabajador - - - )sub - GROUP BY Id_Trabajador; - - - - - SET datFEC = TIMESTAMPADD(DAY,1,datFEC); - - END WHILE; + END WHILE; END ;; @@ -7771,7 +7781,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -ALTER DATABASE `bs` CHARACTER SET utf8 COLLATE utf8_unicode_ci ; /*!50003 DROP PROCEDURE IF EXISTS `ventas_add` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -8156,6 +8165,24 @@ CREATE DATABASE /*!32312 IF NOT EXISTS*/ `cache` /*!40100 DEFAULT CHARACTER SET USE `cache`; +-- +-- Table structure for table `__weeklySales` +-- + +DROP TABLE IF EXISTS `__weeklySales`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `__weeklySales` ( + `week` int(10) unsigned NOT NULL, + `itemFk` int(10) unsigned NOT NULL, + `warehouseFk` smallint(5) unsigned NOT NULL, + `amount` int(11) NOT NULL, + `price` double NOT NULL, + UNIQUE KEY `week_2` (`week`,`itemFk`,`warehouseFk`), + KEY `week` (`week`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `available` -- @@ -8209,7 +8236,7 @@ CREATE TABLE `cache_calc` ( KEY `cache_id` (`cache_id`), KEY `cacheName` (`cacheName`), KEY `expires` (`expires`) -) ENGINE=InnoDB AUTO_INCREMENT=346164 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=360234 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8223,7 +8250,7 @@ CREATE TABLE `cache_valid` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `valid` tinyint(3) unsigned NOT NULL, PRIMARY KEY (`id`) -) ENGINE=MEMORY AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=MEMORY AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8277,7 +8304,7 @@ CREATE TABLE `prod_graphic_source` ( `alert_level` int(11) NOT NULL DEFAULT '0', `Agencia` varchar(45) CHARACTER SET utf8 NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=896693 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1112367 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -8296,23 +8323,6 @@ CREATE TABLE `stock` ( ) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; --- --- Table structure for table `ticketShipping` --- - -DROP TABLE IF EXISTS `ticketShipping`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `ticketShipping` ( - `calc_id` int(11) NOT NULL, - `ticketFk` int(11) unsigned NOT NULL, - `shippingHour` int(3) NOT NULL, - `shippingMinute` int(3) NOT NULL, - PRIMARY KEY (`calc_id`,`ticketFk`), - KEY `ticketShipping` (`ticketFk`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - -- -- Table structure for table `visible` -- @@ -8329,24 +8339,6 @@ CREATE TABLE `visible` ( ) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; --- --- Table structure for table `weeklySales` --- - -DROP TABLE IF EXISTS `weeklySales`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `weeklySales` ( - `week` int(10) unsigned NOT NULL, - `itemFk` int(10) unsigned NOT NULL, - `warehouseFk` smallint(5) unsigned NOT NULL, - `amount` int(11) NOT NULL, - `price` double NOT NULL, - UNIQUE KEY `week_2` (`week`,`itemFk`,`warehouseFk`), - KEY `week` (`week`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - -- -- Dumping events for database 'cache' -- @@ -8393,32 +8385,6 @@ DELIMITER ; -- -- Dumping routines for database 'cache' -- -/*!50003 DROP FUNCTION IF EXISTS `ticketShippingCalcIdGet` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `ticketShippingCalcIdGet`(vWarehouseFk INT) RETURNS int(11) -BEGIN - -- OBSOLETO usar CALL ticketShippingRefresh(vCalcFk,FALSE,vWarehouseFk) - -- JGF 2019-02-05 - DECLARE vCalcFk INT; - - CALL ticketShippingRefresh(vCalcFk,FALSE,vWarehouseFk); - - RETURN vCalcFk; - -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `available_clean` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -9187,72 +9153,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `ticketShippingRefresh` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `ticketShippingRefresh`(OUT v_calc INT, v_refresh BOOL, v_warehouse INT) -proc: BEGIN - - DECLARE EXIT HANDLER FOR SQLEXCEPTION - BEGIN - CALL cache_calc_unlock (v_calc); - RESIGNAL; - END; - - CALL cache_calc_start (v_calc, v_refresh, 'ticketShipping', v_warehouse); - - IF !v_refresh - THEN - LEAVE proc; - END IF; - - -- Limpia las caches antiguas - DELETE FROM ticketShipping WHERE calc_id NOT IN ( - SELECT cc.id - FROM `cache` c - JOIN cache_calc cc ON c.id = cc.cache_id - WHERE c.`name` = 'ticketShipping') - ; - - -- Iniciamos la tabla temporal con los valores que tienen los tickets actualmente en el campo Fecha - DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer; - CREATE TEMPORARY TABLE tmp.production_buffer - ENGINE = MEMORY - SELECT t.id as ticket - , am.agencyFk as agency_id - , t.warehouseFk as warehouse_id - , a.provinceFk as province_id - , Hour(t.shipped) as Hora - , Hour(t.shipped) as Departure - , Minute(t.shipped) as Minuto - FROM vn.ticket t - JOIN vn.agencyMode am on am.id = t.agencyModeFk - JOIN vn.address a on a.id = t.addressFk - WHERE t.shipped BETWEEN CURDATE() AND util.dayend(CURDATE()); - - CALL vn2008.production_buffer_set_priority; - - REPLACE ticketShipping(calc_id, ticketFk, shippingHour, shippingMinute) - SELECT v_calc, ticket, Hora, Minuto - FROM tmp.production_buffer; - - DROP TEMPORARY TABLE IF EXISTS tmp.production_buffer; - - CALL cache_calc_end (v_calc); - -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `visible_clean` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -9336,17 +9236,17 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `weeklySales_refresh` */; +/*!50003 DROP PROCEDURE IF EXISTS `__weeklySales_refresh` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; /*!50003 SET character_set_client = utf8mb4 */ ; /*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `weeklySales_refresh`(IN `v_refresh` INT) +CREATE DEFINER=`root`@`%` PROCEDURE `__weeklySales_refresh`(IN `v_refresh` INT) BEGIN DECLARE v_week_ini INT; DECLARE v_week_end INT; @@ -9448,54 +9348,6 @@ CREATE TABLE `VMPSettings` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; --- --- Temporary table structure for view `__ekt` --- - -DROP TABLE IF EXISTS `__ekt`; -/*!50001 DROP VIEW IF EXISTS `__ekt`*/; -SET @saved_cs_client = @@character_set_client; -SET character_set_client = utf8; -/*!50001 CREATE VIEW `__ekt` AS SELECT - 1 AS `id`, - 1 AS `barcode`, - 1 AS `entryYear`, - 1 AS `deliveryNumber`, - 1 AS `fec`, - 1 AS `hor`, - 1 AS `now`, - 1 AS `ptj`, - 1 AS `ref`, - 1 AS `item`, - 1 AS `pac`, - 1 AS `qty`, - 1 AS `ori`, - 1 AS `cat`, - 1 AS `agj`, - 1 AS `kop`, - 1 AS `ptd`, - 1 AS `sub`, - 1 AS `pro`, - 1 AS `pri`, - 1 AS `package`, - 1 AS `auction`, - 1 AS `klo`, - 1 AS `k1`, - 1 AS `k2`, - 1 AS `k3`, - 1 AS `k4`, - 1 AS `s1`, - 1 AS `s2`, - 1 AS `s3`, - 1 AS `s4`, - 1 AS `s5`, - 1 AS `s6`, - 1 AS `ok`, - 1 AS `trolleyFk`, - 1 AS `putOrderFk`, - 1 AS `scanned`*/; -SET character_set_client = @saved_cs_client; - -- -- Table structure for table `bucket` -- @@ -9562,7 +9414,7 @@ CREATE TABLE `deliveryInformation` ( KEY `fgbSupplyResponse_idx2` (`FirstOrderDateTime`), KEY `fgbSupplyResponse_idx3` (`LatestOrderDateTime`), CONSTRAINT `fgbSupplyResponse` FOREIGN KEY (`supplyResponseID`) REFERENCES `supplyResponse` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=18799835 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=19666965 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9620,7 +9472,7 @@ CREATE TABLE `ekt` ( KEY `barcode` (`barcode`), KEY `fec` (`fec`), KEY `putOrderFk` (`putOrderFk`) -) ENGINE=InnoDB AUTO_INCREMENT=931695 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=963274 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9641,7 +9493,7 @@ CREATE TABLE `exchange` ( KEY `buy_edi_id` (`ektFk`), CONSTRAINT `exchange_ibfk_1` FOREIGN KEY (`mailFk`) REFERENCES `mail` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `exchange_ibfk_2` FOREIGN KEY (`ektFk`) REFERENCES `ekt` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=492690 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=518902 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -9903,7 +9755,7 @@ CREATE TABLE `mail` ( UNIQUE KEY `mail_id` (`messageId`), KEY `sender_id` (`senderFk`), CONSTRAINT `mail_ibfk_2` FOREIGN KEY (`senderFk`) REFERENCES `mailSender` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=519055 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=546601 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10157,8 +10009,9 @@ CREATE TABLE `supplyResponse` ( `MarketPlaceID` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `MarketFormCode` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '"002" Standard Sales\n"005" Catalogue (optional)\n"001" Committed (optional)\n"003" Buffer (optional, Clock Pre Sales) ', PRIMARY KEY (`ID`), - UNIQUE KEY `ID_UNIQUE` (`ID`) -) ENGINE=InnoDB AUTO_INCREMENT=6289660 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + UNIQUE KEY `ID_UNIQUE` (`ID`), + KEY `IX_TransNumber` (`TransactionNumber`) COMMENT 'Agregado por Ernesto 11.6.2019\nSe ejecutaba 1 consulta por segundo desde MAIL y consumia un 20% de CPU de todo el servidor !!!!!\nCPU usada es mas estable que Indice en SendererID, cpu vs espacio que ocupa?\n' +) ENGINE=InnoDB AUTO_INCREMENT=6700217 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -10733,7 +10586,7 @@ CREATE TABLE `image` ( PRIMARY KEY (`id`), UNIQUE KEY `collection` (`collectionFk`,`name`), CONSTRAINT `image_ibfk_1` FOREIGN KEY (`collectionFk`) REFERENCES `imageCollection` (`name`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=133699 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=139876 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11295,7 +11148,7 @@ CREATE TABLE `news` ( KEY `tag` (`tag`), CONSTRAINT `news_ibfk_1` FOREIGN KEY (`userFk`) REFERENCES `account`.`account` (`id`) ON UPDATE CASCADE, CONSTRAINT `news_ibfk_2` FOREIGN KEY (`tag`) REFERENCES `newsTag` (`name`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=13073 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=13058 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -11409,7 +11262,7 @@ CREATE TABLE `order` ( CONSTRAINT `order_ibfk_5` FOREIGN KEY (`address_id`) REFERENCES `vn2008`.`Consignatarios` (`id_consigna`) ON UPDATE CASCADE, CONSTRAINT `order_ibfk_8` FOREIGN KEY (`delivery_method_id`) REFERENCES `vn2008`.`Vistas` (`vista_id`) ON UPDATE CASCADE, CONSTRAINT `order_ibfk_9` FOREIGN KEY (`agency_id`) REFERENCES `vn2008`.`Agencias` (`Id_Agencia`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1945968 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1993553 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -11505,7 +11358,7 @@ CREATE TABLE `orderRow` ( KEY `warehouse_shipment` (`warehouseFk`,`shipment`), CONSTRAINT `orderRow_ibfk_2` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON UPDATE CASCADE, CONSTRAINT `orderRow_ibfk_3` FOREIGN KEY (`orderFk`) REFERENCES `order` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=11760732 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12035155 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -11925,7 +11778,7 @@ CREATE TABLE `tpvTransaction` ( CONSTRAINT `receipt_id` FOREIGN KEY (`receiptFk`) REFERENCES `vn2008`.`Recibos` (`Id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `tpvTransaction_ibfk_1` FOREIGN KEY (`clientFk`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `tpvTransaction_ibfk_2` FOREIGN KEY (`merchantFk`) REFERENCES `tpvMerchant` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=318177 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Transactions realized through the virtual TPV'; +) ENGINE=InnoDB AUTO_INCREMENT=327172 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Transactions realized through the virtual TPV'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11960,7 +11813,7 @@ CREATE TABLE `visit` ( PRIMARY KEY (`id`), KEY `firstAgent` (`firstAgent`), CONSTRAINT `visit_ibfk_1` FOREIGN KEY (`firstAgent`) REFERENCES `visitAgent` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1802439 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1834893 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -11980,7 +11833,7 @@ CREATE TABLE `visitAccess` ( KEY `visit_access_idx_agent` (`agent`), KEY `stamp` (`stamp`), CONSTRAINT `visitAccess_ibfk_1` FOREIGN KEY (`agent`) REFERENCES `visitAgent` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3941101 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4025843 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12005,7 +11858,7 @@ CREATE TABLE `visitAgent` ( KEY `firstAccess` (`firstAccess`), CONSTRAINT `visitAgent_ibfk_1` FOREIGN KEY (`visit`) REFERENCES `visit` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `visitAgent_ibfk_2` FOREIGN KEY (`firstAccess`) REFERENCES `visitAccess` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2410699 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2448551 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12025,7 +11878,7 @@ CREATE TABLE `visitUser` ( KEY `date_time` (`stamp`), KEY `user_id` (`user`), CONSTRAINT `visitUser_ibfk_1` FOREIGN KEY (`access`) REFERENCES `visitAccess` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3485544 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3553449 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -12035,29 +11888,6 @@ CREATE TABLE `visitUser` ( -- -- Dumping routines for database 'hedera' -- -/*!50003 DROP FUNCTION IF EXISTS `invoiceGetPath` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `invoiceGetPath`(vSelf INT) RETURNS varchar(255) CHARSET utf8 - DETERMINISTIC -BEGIN -/** - * @deprecated Use vn.invoiceOut_getPath(); - */ - RETURN vn.invoiceOut_getPath(vSelf); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP FUNCTION IF EXISTS `myBasket_getId` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -12141,30 +11971,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP FUNCTION IF EXISTS `orderGetTotal` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `orderGetTotal`(vSelf INT) RETURNS decimal(10,2) - READS SQL DATA - DETERMINISTIC -BEGIN -/** - * @deprecated Use order_getTotal(); - */ - RETURN order_getTotal(vSelf); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP FUNCTION IF EXISTS `order_getTotal` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -12208,52 +12014,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP FUNCTION IF EXISTS `__myClientGetDebt` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `__myClientGetDebt`(vDate DATE) RETURNS decimal(10,2) - DETERMINISTIC -BEGIN -/** - * @deprecated Use myClient_getDebt(); - */ - RETURN myClient_getDebt(vDate); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP FUNCTION IF EXISTS `__userCheckRestPriv` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` FUNCTION `__userCheckRestPriv`(vMethodPath VARCHAR(255)) RETURNS tinyint(1) - DETERMINISTIC -BEGIN -/** - * @deprecated Use myUser_checkRestPriv(); - */ - RETURN myUser_checkRestPriv(vMethodPath); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `catalog_calcFromMyAddress` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -13090,6 +12850,84 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `myOrder_newWithAddress` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `myOrder_newWithAddress`( + OUT vSelf INT, + vLandingDate DATE, + vAddressFk INT) +BEGIN +/** + * Crea una nueva orden para el usuario actual especificando + * una fecha de entrega. + * + * @param vSelf Id de la nueva orden + * @param vLandingDate Fecha de entrega + */ + DECLARE vCompany INT; + DECLARE vDeliveryMethodId INT; + DECLARE vAgencyMode INT; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL; + DECLARE EXIT HANDLER FOR SQLSTATE '45000' + BEGIN + ROLLBACK; + SET vSelf = NULL; + RESIGNAL; + END; + + START TRANSACTION; + + SELECT a.agencyModeFk, a.id + INTO vAgencyMode, vAddressFk + FROM vn.address a + WHERE a.id = vAddressFk; + + SELECT deliveryMethodFk INTO vDeliveryMethodId + FROM vn.agencyMode am + WHERE am.id = vAgencyMode; + + SELECT companyFk INTO vCompany + FROM vn.clientDefaultCompany + WHERE clientFk = account.userGetId() + AND CURDATE() BETWEEN started AND finished + LIMIT 1; + + IF vCompany IS NULL + THEN + SELECT defaultCompanyFk INTO vCompany + FROM orderConfig; + END IF; + + INSERT INTO `order` + SET + customer_id = account.userGetId(), + date_send = vLandingDate, + delivery_method_id = vDeliveryMethodId, + agency_id = vAgencyMode, + address_id = vAddressFk, + source_app = 'WEB', + company_id = vCompany; + + SET vSelf = LAST_INSERT_ID(); + + CALL order_checkConfig(vSelf); + + COMMIT; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `myOrder_newWithDate` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -13200,8 +13038,9 @@ BEGIN INTO vTaxBase, vTax FROM tmp.ticketAmount; - SELECT t.id, t.landed, t.shipped, t.refFk, ag.description agency, m.code method, - a.street, a.postalCode, a.city, a.nickname, p.name province, + SELECT t.id, t.landed, t.shipped, t.refFk, t.nickname, + ag.description agency, m.code method, + a.street, a.postalCode, a.city, p.name province, vTaxBase taxBase, vTaxBase + vTax AS total FROM tmp.ticket v JOIN vn.ticket t ON t.id = v.ticketFk @@ -13316,8 +13155,9 @@ BEGIN CALL vn.ticketGetTotal; - SELECT v.id, IFNULL(v.landed, v.shipped) landed, v.shipped, v.companyFk, - a.city, a.nickname, ag.description agency, t.total + SELECT v.id, IFNULL(v.landed, v.shipped) landed, + v.shipped, v.companyFk, v.nickname, + a.city, ag.description agency, t.total FROM tmp.ticket i JOIN vn.ticket v ON v.id = i.ticketFk JOIN vn.address a ON a.id = v.addressFk @@ -13482,99 +13322,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `orderAddItem` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `orderAddItem`( - vSelf INT, - vWarehouse INT, - vItem INT, - vAmount INT) -BEGIN -/** - * @deprecated Use order_addItem(); - */ - CALL order_addItem(vSelf, vWarehouse, vItem, vAmount); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `orderCheckConfig` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `orderCheckConfig`(vSelf INT) -BEGIN -/** - * @deprecated Use order_checkConfig() - */ - CALL order_checkConfig(vSelf); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `orderGetTax` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `orderGetTax`() - READS SQL DATA -BEGIN -/** - * @deprecated Use order_getTax(); - */ - CALL order_getTax; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `orderGetTotal` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `orderGetTotal`() -BEGIN -/** - * @deprecated Use order_getTotal(); - */ - CALL order_getTotal; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `order_addItem` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -14425,50 +14172,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `tpvTransactionConfirmById` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `tpvTransactionConfirmById`(vSelf INT) -BEGIN -/** - * @deprecated Use tpvTransaction_confirmById() - */ - CALL tpvTransaction_confirmById(vSelf); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `tpvTransactionUndo` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `tpvTransactionUndo`(vSelf INT) -BEGIN -/** - * @deprecated Use tpvTransaction_undo() - */ - CALL tpvTransaction_undo(vSelf); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `tpvTransaction_confirm` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -14907,541 +14610,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__bionicCalcWithDate` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__bionicCalcWithDate`(vDate DATE) -BEGIN - DECLARE vMyAddressFk INTEGER; - DECLARE vMyAgencyModeFk INTEGER; - - SELECT id, agencyModeFk INTO vMyAddressFk, vMyAgencyModeFk - FROM myAddress - WHERE isDefaultAddress; - - CALL vn2008.bionic_calc(vDate, vMyAddressFk, vMyAgencyModeFk); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__bionic_calc` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_calc`() -BEGIN - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT sent, addressFk, agencyModeFk - INTO vDate, vAddress, vAgencyMode - FROM myBasket; - - CALL vn2008.bionic_calc(vDate, vAddress, vAgencyMode); - - IF account.myUserGetName() = 'visitor' - THEN - DROP TEMPORARY TABLE tmp.bionic_component; - UPDATE tmp.bionic_item SET price = NULL; - END IF; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__bionic_from_basket` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_from_basket`() -BEGIN - DECLARE vOrder INT; - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT id, sent, addressFk, agencyModeFk - INTO vOrder, vDate, vAddress, vAgencyMode - FROM myBasket; - - CALL vn2008.bionic_from_order(vDate, vAddress, vAgencyMode, vOrder); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__bionic_from_item` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_from_item`(vItem INT) -BEGIN - DECLARE vDate DATE; - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT sent, addressFk, agencyModeFk - INTO vDate, vAddress, vAgencyMode - FROM myBasket; - - CALL vn2008.bionic_from_item(vDate, vAddress, vAgencyMode, vItem); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__catalog_getAvailable` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__catalog_getAvailable`() -BEGIN -/** - * Gets the available items list that meets the tag filter. - * - * @table tItems - */ - CALL itemGetAvailable; - - DELETE t FROM tItems t - JOIN tmp.itemAvailable a ON a.id = t.id - WHERE a.id IS NULL; - - DROP TEMPORARY TABLE tmp.itemAvailable; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__catalog_getItems` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__catalog_getItems`() -BEGIN -/** - * Returns the list of items. - * - * @table tItems The list of items - * @select The list of items - */ - DROP TEMPORARY TABLE IF EXISTS tmp.bionic_calc; - CREATE TEMPORARY TABLE tmp.bionic_calc - (INDEX (item_id)) - ENGINE = MEMORY - SELECT id item_id FROM tItems; - - CALL bionic_calc (); - DROP TEMPORARY TABLE tmp.bionic_calc; - - SELECT i.id, i.name, i.description, i.category, i.size, i.image, i.inkFk, - IF(i.stems > 1, i.stems, NULL) stems, b.available, b.price, b.producer, - a.tag1, a.val1, a.tag2, a.val2, a.tag3, a.val3 - FROM tmp.bionic_item b - JOIN vn.item i ON i.id = b.item_id - LEFT JOIN vn.itemTagArranged a ON a.itemFk = i.id - LEFT JOIN vn.producer p ON p.id = i.producerFk - WHERE b.available > 0 - ORDER BY i.relevancy DESC, i.name, i.size - LIMIT 40; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__itemGetAvailable` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__itemGetAvailable`() -BEGIN -/** - * Gets the available items list. - * - * @table tmp.itemAvailable - */ - DECLARE vDelivery DATE; - DECLARE vAddress INT; - DECLARE vAgency INT; - - SELECT sent, addressFk, agencyModeFk - INTO vDelivery, vAddress, vAgency - FROM myBasket; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgency); - - DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable; - CREATE TEMPORARY TABLE tmp.itemAvailable - (INDEX (id)) - ENGINE = MEMORY - SELECT c.item_id id - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - DROP TEMPORARY TABLE vn2008.t_bionic_available; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__itemGetAvailableOrder` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__itemGetAvailableOrder`(vOrder INT) -BEGIN -/** - * Gets the available items list with an order params. - * - * @table tmp.itemAvailable - */ - DECLARE vDelivery DATE; - DECLARE vAddress INT; - DECLARE vAgency INT; - - SELECT landed, addressFk, agencyModeFk - INTO vDelivery, vAddress, vAgency - FROM myOrder - WHERE id = vOrder; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgency); - - DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable; - CREATE TEMPORARY TABLE tmp.itemAvailable - (INDEX (id)) - ENGINE = MEMORY - SELECT c.item_id id - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - DROP TEMPORARY TABLE vn2008.t_bionic_available; - -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__myItemGetAvailable` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__myItemGetAvailable`(vDelivery DATE, vAddress INT) -BEGIN -/** - * Gets the available items list. - * - * @deprecated Use item_calcCatalogFromMyAddress() - * @param vDelivery Delivery date - * @param vAddress Id Address - */ - DECLARE vAgencyMode INT; - - SELECT a.agencyModeFk - INTO vAgencyMode - FROM myClient c - JOIN vn.address a ON a.clientFk = c.id - WHERE a.id = vAddress; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - (INDEX (itemFk)) - ENGINE = MEMORY - SELECT c.item_id itemFk - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode); --- ------------------- - /*SELECT b.itemFk, b.item, b.available, b.price - FROM tmp.ticketCalculateItem b - JOIN vn.item i ON i.id = b.itemFk - WHERE b.available > 0 - ORDER BY i.relevancy DESC, i.name, i.size; - - select * from tmp.ticketComponentPrice;*/ --- ------------------- - DROP TEMPORARY TABLE vn2008.t_bionic_available; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__myItemGetAvailableFromDate` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__myItemGetAvailableFromDate`(vDelivery DATE) -BEGIN -/** - * Gets the available items list. - * - * @deprecated Use item_calcCatalogFromMyAddress() - * @param vDelivery Delivery date - */ - DECLARE vAddress INT; - DECLARE vAgencyMode INT; - - SELECT a.agencyModeFk, a.id - INTO vAgencyMode, vAddress - FROM myClient c - JOIN vn.address a ON a.id = c.defaultAddressFk; - - CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgencyMode); - - DROP TEMPORARY TABLE IF EXISTS tmp.item; - CREATE TEMPORARY TABLE tmp.item - (INDEX (itemFk)) - ENGINE = MEMORY - SELECT c.item_id itemFk - FROM cache.available c - JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id - WHERE c.available > 0 - GROUP BY c.item_id; - - CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode); --- ------------------- - /*SELECT b.itemFk, b.item, b.available, b.price - FROM tmp.ticketCalculateItem b - JOIN vn.item i ON i.id = b.itemFk - WHERE b.available > 0 - ORDER BY i.relevancy DESC, i.name, i.size; - - select * from tmp.ticketComponentPrice;*/ --- ------------------- - DROP TEMPORARY TABLE vn2008.t_bionic_available; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__myOrderAddItem` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderAddItem`( - vSelf INT, - vWarehouse INT, - vItem INT, - vAmount INT) -BEGIN -/** - * @deprecated Use myOrder_addItem() - */ - CALL myOrder_addItem(vSelf, vWarehouse, vItem, vAmount); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__myOrderConfirm` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderConfirm`(vSelf INT) -BEGIN -/** - * @deprecated Use myOrder_confirm() - */ - CALL myOrder_confirm(vSelf); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__myOrderNewFromDate` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderNewFromDate`( - OUT vSelf INT, - vLandingDate DATE) -BEGIN -/** - * @deprecated Use myOrder_newWithDate() - */ - CALL myOrder_newWithDate(vSelf, vLandingDate); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__myTicketSetDelivered` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__myTicketSetDelivered`(vTicketFk INT) -BEGIN - - UPDATE `vn2008`.`agency_hour` SET `subtract_day` = '0' WHERE (`agency_hour_id` = '1061'); - UPDATE `vn2008`.`agency_hour` SET `subtract_day` = '0' WHERE (`agency_hour_id` = '1121'); - UPDATE `vn2008`.`agency_hour` SET `subtract_day` = '0' WHERE (`agency_hour_id` = '1134'); - UPDATE `vn2008`.`agency_hour` SET `subtract_day` = '0' WHERE (`agency_hour_id` = '1148'); - UPDATE `vn2008`.`agency_hour` SET `subtract_day` = '0' WHERE (`agency_hour_id` = '1920'); - - IF vTicketFk is null THEN - call util.throw ('AGENCIA ACTUALIZADA'); - END IF; - - INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador) - SELECT s.id, vTicketFk, vn.getWorker() - FROM vn.state s - JOIN myTicket m ON m.id = vTicketFk - WHERE `code` = 'DELIVERED' AND m.id = vTicketFk; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__orderDelete` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__orderDelete`(vSelf INT) -BEGIN - DELETE FROM `order` where id = vSelf; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `__orderUpdate` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `__orderUpdate`(vSelf INT) -BEGIN -/** - * @deprecated Use order_update() - */ - CALL order_update(vSelf); -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Current Database: `nst` @@ -15952,7 +15120,7 @@ CREATE TABLE `cdr` ( KEY `dstchannel` (`dst_channel`), KEY `disposition` (`disposition`), KEY `src` (`src`) -) ENGINE=InnoDB AUTO_INCREMENT=281185 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=285835 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -16737,7 +15905,7 @@ CREATE TABLE `address` ( KEY `address_town_id_idx` (`town_id`), CONSTRAINT `address_ibfk_1` FOREIGN KEY (`address_type_id`) REFERENCES `address_type` (`address_type_id`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `address_ibfk_2` FOREIGN KEY (`town_id`) REFERENCES `town` (`town_id`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=809 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=832 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -16783,7 +15951,7 @@ CREATE TABLE `bank_account` ( CONSTRAINT `bank_account_bank_account_type_id_fkey` FOREIGN KEY (`bank_account_type_id`) REFERENCES `bank_account_type` (`bank_account_type_id`) ON UPDATE CASCADE, CONSTRAINT `bank_account_nation_id_fkey` FOREIGN KEY (`nation_id`) REFERENCES `nation` (`nation_id`) ON UPDATE CASCADE, CONSTRAINT `bank_profile` FOREIGN KEY (`client_id`) REFERENCES `profile` (`profile_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=832 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -16838,7 +16006,7 @@ CREATE TABLE `business` ( KEY `bussiness_provider` (`provider_id`), CONSTRAINT `business_client` FOREIGN KEY (`client_id`) REFERENCES `profile` (`profile_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `bussiness_provider` FOREIGN KEY (`provider_id`) REFERENCES `profile` (`profile_id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2516 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2578 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -16993,7 +16161,7 @@ CREATE TABLE `calendar_state` ( `rgb` varchar(7) NOT NULL, `color` bigint(20) DEFAULT '0', PRIMARY KEY (`calendar_state_id`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17049,7 +16217,7 @@ CREATE TABLE `income_employee` ( KEY `fperson_id` (`person_id`), CONSTRAINT `fincometype_id` FOREIGN KEY (`id_incomeType`) REFERENCES `incometype_employee` (`id_incometype`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fperson_id` FOREIGN KEY (`person_id`) REFERENCES `person` (`person_id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=65696 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=67278 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17083,7 +16251,7 @@ CREATE TABLE `journey` ( PRIMARY KEY (`journey_id`), KEY `fki_business_journey` (`business_id`), CONSTRAINT `business_journey` FOREIGN KEY (`business_id`) REFERENCES `business_labour` (`business_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1527 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1707 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17119,7 +16287,7 @@ CREATE TABLE `media` ( PRIMARY KEY (`media_id`), KEY `media_media_type_id_idx` (`media_type_id`), CONSTRAINT `media_ibfk_1` FOREIGN KEY (`media_type_id`) REFERENCES `media_type` (`media_type_id`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1012 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17199,7 +16367,7 @@ CREATE TABLE `person` ( UNIQUE KEY `nis_UNIQUE` (`nis`), KEY `index1` (`person_id`,`name`,`nickname`,`firstname`), KEY `person_worker` (`id_trabajador`) -) ENGINE=InnoDB AUTO_INCREMENT=1053 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1073 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17250,7 +16418,7 @@ CREATE TABLE `profile` ( KEY `profile_person_id_idx` (`person_id`), KEY `profile_profile_type_id_idx` (`profile_type_id`), CONSTRAINT `person_fk` FOREIGN KEY (`person_id`) REFERENCES `person` (`person_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=932 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=955 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17267,7 +16435,7 @@ CREATE TABLE `profile_address` ( PRIMARY KEY (`profile_address_id`), KEY `profile_address_address_id_idx` (`address_id`), KEY `profile_address_profile_id_idx` (`profile_id`) -) ENGINE=InnoDB AUTO_INCREMENT=146 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=168 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17286,7 +16454,7 @@ CREATE TABLE `profile_media` ( KEY `profile_media_profile_id_idx` (`profile_id`), CONSTRAINT `fk_profile_media_media1` FOREIGN KEY (`media_id`) REFERENCES `media` (`media_id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `media_ibfk_20` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`profile_id`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1152 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1164 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17404,7 +16572,7 @@ CREATE TABLE `ACL` ( `principalType` set('ROLE','USER') COLLATE utf8_unicode_ci DEFAULT 'ROLE', `principalId` varchar(512) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=174 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=181 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17524,7 +16692,7 @@ CREATE TABLE `userConfigView` ( `configuration` text COLLATE utf8_unicode_ci, PRIMARY KEY (`id`), UNIQUE KEY `uniqueUser_TableCode` (`userFk`,`tableCode`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17621,7 +16789,7 @@ CREATE TABLE `inbound` ( UNIQUE KEY `source` (`tableName`,`tableId`), KEY `warehouseFk` (`warehouseFk`,`itemFk`,`dated`,`expired`,`available`), KEY `isSync` (`isSync`) -) ENGINE=InnoDB AUTO_INCREMENT=37596 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=939241 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; ALTER DATABASE `stock` CHARACTER SET utf8 COLLATE utf8_unicode_ci ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; @@ -17717,7 +16885,7 @@ CREATE TABLE `log` ( `tableId` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `tableName` (`tableName`,`tableId`) -) ENGINE=InnoDB AUTO_INCREMENT=6150 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3462602 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -17745,7 +16913,7 @@ CREATE TABLE `outbound` ( KEY `warehouseFk` (`warehouseFk`,`itemFk`,`dated`), KEY `expired` (`expired`), KEY `isSync` (`isSync`) -) ENGINE=InnoDB AUTO_INCREMENT=169875 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2224494 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; ALTER DATABASE `stock` CHARACTER SET utf8 COLLATE utf8_unicode_ci ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; @@ -17831,7 +16999,25 @@ CREATE TABLE `visible` ( -- Dumping events for database 'stock' -- /*!50106 SET @save_time_zone= @@TIME_ZONE */ ; -/*!50106 DROP EVENT IF EXISTS `log_syncNoWait` */; +/*!50106 DROP EVENT IF EXISTS `log_clean` */; +DELIMITER ;; +/*!50003 SET @saved_cs_client = @@character_set_client */ ;; +/*!50003 SET @saved_cs_results = @@character_set_results */ ;; +/*!50003 SET @saved_col_connection = @@collation_connection */ ;; +/*!50003 SET character_set_client = utf8mb4 */ ;; +/*!50003 SET character_set_results = utf8mb4 */ ;; +/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ;; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;; +/*!50003 SET @saved_time_zone = @@time_zone */ ;; +/*!50003 SET time_zone = 'SYSTEM' */ ;; +/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`%`*/ /*!50106 EVENT `log_clean` ON SCHEDULE EVERY 1 DAY STARTS '2019-06-17 05:00:00' ON COMPLETION PRESERVE ENABLE DO CALL log_clean */ ;; +/*!50003 SET time_zone = @saved_time_zone */ ;; +/*!50003 SET sql_mode = @saved_sql_mode */ ;; +/*!50003 SET character_set_client = @saved_cs_client */ ;; +/*!50003 SET character_set_results = @saved_cs_results */ ;; +/*!50003 SET collation_connection = @saved_col_connection */ ;; +/*!50106 DROP EVENT IF EXISTS `log_syncNoWait` */;; DELIMITER ;; /*!50003 SET @saved_cs_client = @@character_set_client */ ;; /*!50003 SET @saved_cs_results = @@character_set_results */ ;; @@ -17957,6 +17143,8 @@ BEGIN DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + + SET vSupplied = 0; OPEN vPicks; @@ -18013,6 +17201,7 @@ BEGIN DECLARE vQuantity INT; DECLARE vAvailable INT; DECLARE vSupplied INT; + DECLARE vSuppliedFromRequest INT; DECLARE vOutboundFk INT; DECLARE vLack INT; DECLARE vHasPicks BOOL; @@ -18052,17 +17241,19 @@ BEGIN SET vSupplied = LEAST(vAvailable, vLack); IF vSupplied > 0 THEN + SET vAvailable = vAvailable - vSupplied; UPDATE outbound SET lack = lack - vSupplied WHERE id = vOutboundFk; END IF; - IF vHasPicks AND vSupplied < vAvailable THEN - CALL outbound_requestQuantity(vOutboundFk, vAvailable, vDated, vSupplied); + IF vHasPicks AND vAvailable > 0 THEN + CALL outbound_requestQuantity(vOutboundFk, vAvailable, vDated, vSuppliedFromRequest); + SET vSupplied = vSupplied + vSuppliedFromRequest; + SET vAvailable = vAvailable - vSuppliedFromRequest; END IF; IF vSupplied > 0 THEN - SET vAvailable = vAvailable - vSupplied; CALL inbound_addPick(vSelf, vOutboundFk, vSupplied); END IF; @@ -18121,6 +17312,26 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `log_clean` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `log_clean`() +BEGIN + DELETE FROM inbound WHERE dated = vn.getInventoryDate(); + DELETE FROM outbound WHERE dated = vn.getInventoryDate(); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `log_delete` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -18438,6 +17649,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `log_sync`(vSync BOOL) proc: BEGIN DECLARE vDone BOOL; DECLARE vLogId INT; + DECLARE vHasPendingSync BOOL; DECLARE vOperation VARCHAR(255); DECLARE vTableName VARCHAR(255); DECLARE vTableId VARCHAR(255); @@ -18497,8 +17709,8 @@ proc: BEGIN COMMIT; END LOOP; - - IF !vSync THEN + + IF !vSync THEN LEAVE proc; END IF; @@ -18508,41 +17720,51 @@ proc: BEGIN -- Attaches desync inbounds - OPEN cInbound; + REPEAT + OPEN cInbound; + SET vHasPendingSync = FALSE; - inboundLoop: LOOP - SET vDone = FALSE; - FETCH cInbound INTO vInboundFk; + inboundLoop: LOOP + SET vDone = FALSE; + FETCH cInbound INTO vInboundFk; - IF vDone THEN - LEAVE inboundLoop; - END IF; + IF vDone THEN + LEAVE inboundLoop; + END IF; - START TRANSACTION; - CALL inbound_sync(vInboundFk); - COMMIT; - END LOOP; + START TRANSACTION; + CALL inbound_sync(vInboundFk); + COMMIT; - CLOSE cInbound; + SET vHasPendingSync = TRUE; + END LOOP; + + CLOSE cInbound; + UNTIL !vHasPendingSync END REPEAT; -- Attaches desync outbounds - OPEN cOutbound; + REPEAT + OPEN cOutbound; + SET vHasPendingSync = FALSE; - outboundLoop: LOOP - SET vDone = FALSE; - FETCH cOutbound INTO vOutboundFk; + outboundLoop: LOOP + SET vDone = FALSE; + FETCH cOutbound INTO vOutboundFk; - IF vDone THEN - LEAVE outboundLoop; - END IF; + IF vDone THEN + LEAVE outboundLoop; + END IF; - START TRANSACTION; - CALL outbound_sync(vOutboundFk); - COMMIT; - END LOOP; + START TRANSACTION; + CALL outbound_sync(vOutboundFk); + COMMIT; - CLOSE cOutbound; + SET vHasPendingSync = TRUE; + END LOOP; + + CLOSE cOutbound; + UNTIL !vHasPendingSync END REPEAT; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -18619,6 +17841,8 @@ BEGIN DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + SET vSupplied = 0; + OPEN vPicks; myLoop: LOOP @@ -18672,6 +17896,7 @@ BEGIN DECLARE vWarehouse INT; DECLARE vLack INT; DECLARE vSupplied INT; + DECLARE vSuppliedFromRequest INT; DECLARE vInboundFk INT; DECLARE vAvailable INT; DECLARE vHasPicks BOOL; @@ -18707,17 +17932,19 @@ BEGIN SET vSupplied = LEAST(vLack, vAvailable); IF vSupplied > 0 THEN + SET vLack = vLack - vSupplied; UPDATE inbound SET available = available - vSupplied WHERE id = vInboundFk; END IF; - IF vHasPicks AND vSupplied < vLack THEN - CALL inbound_requestQuantity(vInboundFk, vLack, vDated, vSupplied); + IF vHasPicks AND vLack > 0 THEN + CALL inbound_requestQuantity(vInboundFk, vLack, vDated, vSuppliedFromRequest); + SET vSupplied = vSupplied + vSuppliedFromRequest; + SET vLack = vLack - vSuppliedFromRequest; END IF; IF vSupplied > 0 THEN - SET vLack = vLack - vSupplied; CALL inbound_addPick(vInboundFk, vSelf, vSupplied); END IF; @@ -19808,7 +19035,7 @@ CREATE TABLE `autoRadioLogCall` ( PRIMARY KEY (`id`), KEY `ticket_idx` (`ticketFk`), CONSTRAINT `ticket` FOREIGN KEY (`ticketFk`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=789 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=882 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -20002,7 +19229,7 @@ CREATE TABLE `buy` ( CONSTRAINT `buy_ibfk_2` FOREIGN KEY (`packageFk`) REFERENCES `vn2008`.`Cubos` (`Id_Cubo`) ON UPDATE CASCADE, CONSTRAINT `buy_ibfk_3` FOREIGN KEY (`containerFk`) REFERENCES `vn2008`.`container` (`container_id`) ON UPDATE CASCADE, CONSTRAINT `buy_id` FOREIGN KEY (`entryFk`) REFERENCES `entry` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=312082914 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB AUTO_INCREMENT=318055113 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -20566,7 +19793,7 @@ CREATE TABLE `clientContact` ( `name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `phone` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4130 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=4132 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -20640,7 +19867,7 @@ CREATE TABLE `clientLog` ( KEY `userFk` (`userFk`), CONSTRAINT `clientLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `clientLog_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=212067 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=216298 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -20951,7 +20178,8 @@ SET character_set_client = utf8; 1 AS `code`, 1 AS `currencyFk`, 1 AS `politicalCountryFk`, - 1 AS `geoFk`*/; + 1 AS `geoFk`, + 1 AS `hasDailyInvoice`*/; SET character_set_client = @saved_cs_client; -- @@ -21096,7 +20324,7 @@ CREATE TABLE `creditClassification` ( KEY `creditClassifClientFk_idx` (`client`), KEY `creditClassifdateEnd_idx` (`dateEnd`), CONSTRAINT `creditClassifClientFk` FOREIGN KEY (`client`) REFERENCES `vn2008`.`Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3141 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3162 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; @@ -21141,7 +20369,7 @@ CREATE TABLE `creditInsurance` ( PRIMARY KEY (`id`), KEY `CreditInsurance_Fk1_idx` (`creditClassification`), CONSTRAINT `CreditInsurance_Fk1` FOREIGN KEY (`creditClassification`) REFERENCES `creditClassification` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2713 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalla los clientes que tienen seguro de credito'; +) ENGINE=InnoDB AUTO_INCREMENT=2766 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalla los clientes que tienen seguro de credito'; /*!40101 SET character_set_client = @saved_cs_client */; ALTER DATABASE `vn` CHARACTER SET utf8 COLLATE utf8_general_ci ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; @@ -21239,7 +20467,6 @@ SET character_set_client = utf8; /*!50001 CREATE VIEW `department` AS SELECT 1 AS `id`, 1 AS `name`, - 1 AS `fatherFk`, 1 AS `isProduction`, 1 AS `lft`, 1 AS `rgt`, @@ -21276,7 +20503,7 @@ CREATE TABLE `device` ( PRIMARY KEY (`id`), KEY `device_fk1_idx` (`userFk`), CONSTRAINT `device_fk1` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -21364,7 +20591,7 @@ CREATE TABLE `dua` ( CONSTRAINT `dua_fk1` FOREIGN KEY (`gestdocFk`) REFERENCES `vn2008`.`gestdoc` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `dua_fk2` FOREIGN KEY (`awbFk`) REFERENCES `vn2008`.`awb` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `dua_fk4` FOREIGN KEY (`companyFk`) REFERENCES `vn2008`.`empresa` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3901 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3957 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -21405,7 +20632,7 @@ CREATE TABLE `duaIntrastat` ( KEY `duaIntrastat_fk2_idx` (`duaFk`), CONSTRAINT `duaIntrastat_fk1` FOREIGN KEY (`intrastatFk`) REFERENCES `vn2008`.`Intrastat` (`Codintrastat`) ON UPDATE CASCADE, CONSTRAINT `duaIntrastat_fk2` FOREIGN KEY (`duaFk`) REFERENCES `dua` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=6130 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6284 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -21425,7 +20652,7 @@ CREATE TABLE `duaInvoiceIn` ( KEY `duaInvoiceIn_fk2_idx` (`invoiceInFk`), CONSTRAINT `duaInvoiceIn_fk1` FOREIGN KEY (`duaFk`) REFERENCES `dua` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `duaInvoiceIn_fk2` FOREIGN KEY (`invoiceInFk`) REFERENCES `vn2008`.`recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=4792 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Facturas asociadas a la declaración aduanera, básicamente la del agente transitario'; +) ENGINE=InnoDB AUTO_INCREMENT=4869 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Facturas asociadas a la declaración aduanera, básicamente la del agente transitario'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -21450,7 +20677,7 @@ CREATE TABLE `duaTax` ( CONSTRAINT `duaTax_fk1` FOREIGN KEY (`duaFk`) REFERENCES `dua` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `duaTax_fk2` FOREIGN KEY (`supplierFk`) REFERENCES `vn2008`.`Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE, CONSTRAINT `duaTax_fk3` FOREIGN KEY (`taxClassFk`) REFERENCES `vn2008`.`iva_group` (`iva_group_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=5545 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6164 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -21540,7 +20767,7 @@ CREATE TABLE `entry` ( CONSTRAINT `entry_ibfk_1` FOREIGN KEY (`supplierFk`) REFERENCES `vn2008`.`Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE, CONSTRAINT `entry_ibfk_6` FOREIGN KEY (`travelFk`) REFERENCES `travel` (`id`) ON UPDATE CASCADE, CONSTRAINT `entry_ibfk_7` FOREIGN KEY (`companyFk`) REFERENCES `vn2008`.`empresa` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=169096 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='InnoDB free: 88064 kB; (`Id_Proveedor`) REFER `vn2008/Provee'; +) ENGINE=InnoDB AUTO_INCREMENT=171228 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='InnoDB free: 88064 kB; (`Id_Proveedor`) REFER `vn2008/Provee'; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -21741,7 +20968,7 @@ CREATE TABLE `entryLog` ( KEY `entryLog_ibfk_2` (`userFk`), CONSTRAINT `entryLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `entry` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `entryLog_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=140384 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=146048 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -21775,7 +21002,7 @@ CREATE TABLE `envialiaCity` ( PRIMARY KEY (`id`), KEY `agencyFk` (`agencyFk`), KEY `postalCode` (`postalCode`) -) ENGINE=InnoDB AUTO_INCREMENT=1221839 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1262208 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -22242,7 +21469,7 @@ CREATE TABLE `inventoryFailure` ( CONSTRAINT `inventoryFailure_fk3` FOREIGN KEY (`guiltyFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `inventoryFailure_fk4` FOREIGN KEY (`warehouseFk`) REFERENCES `vn2008`.`warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `inventoryFailure_fk5` FOREIGN KEY (`causeFk`) REFERENCES `inventoryFailureCause` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=12579 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=14101 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -22513,7 +21740,7 @@ CREATE TABLE `invoiceOutExpence` ( KEY `invoiceOutExpence_FK_2_idx` (`expenceFk`), CONSTRAINT `invoiceOutExpence_FK_1` FOREIGN KEY (`invoiceOutFk`) REFERENCES `vn2008`.`Facturas` (`factura_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `invoiceOutExpence_FK_2` FOREIGN KEY (`expenceFk`) REFERENCES `vn2008`.`Gastos` (`Id_Gasto`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=114681 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Desglosa la base imponible de una factura en funcion del tipo de gasto/venta'; +) ENGINE=InnoDB AUTO_INCREMENT=118821 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Desglosa la base imponible de una factura en funcion del tipo de gasto/venta'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -22556,7 +21783,7 @@ CREATE TABLE `invoiceOutTax` ( KEY `pgcFk` (`pgcFk`), CONSTRAINT `invoiceOutFk` FOREIGN KEY (`invoiceOutFk`) REFERENCES `vn2008`.`Facturas` (`factura_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `invoiceOutTax_ibfk_1` FOREIGN KEY (`pgcFk`) REFERENCES `pgc` (`code`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1101378 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1116271 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -22754,7 +21981,7 @@ CREATE TABLE `itemLog` ( KEY `itemLogUserFk_idx` (`userFk`), CONSTRAINT `itemLogItemFk` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `itemLogUserFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=25064 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=34370 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -22797,7 +22024,7 @@ CREATE TABLE `itemPlacementSupply` ( CONSTRAINT `itemPlacementSupply_fk1` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `itemPlacementSupply_fk2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `itemPlacementSupply_fk3` FOREIGN KEY (`repoUserFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=24341 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lista de nichos de picking que hay que reponer'; +) ENGINE=InnoDB AUTO_INCREMENT=31725 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lista de nichos de picking que hay que reponer'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -22869,7 +22096,7 @@ CREATE TABLE `itemShelving` ( CONSTRAINT `itemShelving_fk1` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `itemShelving_fk2` FOREIGN KEY (`shelvingFk`) REFERENCES `shelving` (`code`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `itemShelving_fk3` FOREIGN KEY (`packagingFk`) REFERENCES `vn2008`.`Cubos` (`Id_Cubo`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=89771 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabla utilizada para localizar los artículos dentro de los carros. Usado para la gestión del almacén en el altillo '; +) ENGINE=InnoDB AUTO_INCREMENT=96226 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabla utilizada para localizar los artículos dentro de los carros. Usado para la gestión del almacén en el altillo '; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -22899,7 +22126,8 @@ SET character_set_client = utf8; 1 AS `Agency`, 1 AS `shipped`, 1 AS `grouping`, - 1 AS `packing`*/; + 1 AS `packing`, + 1 AS `hour`*/; SET character_set_client = @saved_cs_client; -- @@ -22973,7 +22201,7 @@ CREATE TABLE `itemShelvingPlacementSupply` ( KEY `itemShelvingPlacementSupply_fk3_idx` (`userFk`), CONSTRAINT `itemShelvingPlacementSupply_fk1` FOREIGN KEY (`itemShelvingFk`) REFERENCES `itemShelving` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `itemShelvingPlacementSupply_fk2` FOREIGN KEY (`itemPlacementSupplyFk`) REFERENCES `itemPlacementSupply` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=22089 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalle de los itemShelving afectados por las ordenes de reposicion de nicho'; +) ENGINE=InnoDB AUTO_INCREMENT=29031 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalle de los itemShelving afectados por las ordenes de reposicion de nicho'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -23020,7 +22248,7 @@ CREATE TABLE `itemShelvingSale` ( CONSTRAINT `itemShelvingSale_fk1` FOREIGN KEY (`itemShelvingFk`) REFERENCES `itemShelving` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `itemShelvingSale_fk2` FOREIGN KEY (`saleFk`) REFERENCES `vn2008`.`Movimientos` (`Id_Movimiento`) ON UPDATE CASCADE, CONSTRAINT `itemShelvingSale_fk3` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8521 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalle del producto que se retira de los carros, relacionando la linea de movimiento correspondiente'; +) ENGINE=InnoDB AUTO_INCREMENT=12123 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalle del producto que se retira de los carros, relacionando la linea de movimiento correspondiente'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -23097,31 +22325,31 @@ CREATE TABLE `itemTag` ( `itemFk` int(11) NOT NULL, `tagFk` int(11) NOT NULL, `value` varchar(50) COLLATE utf8_unicode_ci NOT NULL, + `intValue` int(11) DEFAULT NULL, `priority` int(2) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), - UNIQUE KEY `itemFk` (`itemFk`,`tagFk`), + UNIQUE KEY `itemFk` (`itemFk`,`tagFk`,`value`) USING BTREE, KEY `tagFk` (`tagFk`,`value`), KEY `priorityItem` (`priority`,`itemFk`), KEY `value` (`value`), - CONSTRAINT `itemFK` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1193654 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + KEY `itemFk_2` (`itemFk`,`tagFk`,`intValue`), + CONSTRAINT `itemFK` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `itemTag_ibfk_1` FOREIGN KEY (`tagFk`) REFERENCES `tag` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=1224754 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`itemTag_AFTER_INSERT` AFTER INSERT ON `itemTag` FOR EACH ROW -proc_label:BEGIN - IF @isTriggerDisabled THEN - LEAVE proc_label; - END IF; - - CALL vn.itemRefreshTags(NEW.itemFk); +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`itemTag_beforeInsert` + BEFORE INSERT ON `itemTag` FOR EACH ROW +BEGIN + SET NEW.intValue = itemTag_getIntValue(NEW.`value`); END */;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -23131,16 +22359,39 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`itemTag_AFTER_UPDATE` AFTER UPDATE ON `itemTag` FOR EACH ROW -proc_label:BEGIN +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`itemTag_beforeUpdate` + BEFORE UPDATE ON `itemTag` FOR EACH ROW +BEGIN + IF !(OLD.`value` <=> NEW.`value`) + OR !(OLD.intValue <=> NEW.intValue) THEN + SET NEW.intValue = itemTag_getIntValue(NEW.`value`); + END IF; +END */;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`itemTag_afterUpdate` + AFTER UPDATE ON `itemTag` FOR EACH ROW +trig: BEGIN IF @isTriggerDisabled THEN - LEAVE proc_label; + LEAVE trig; END IF; CALL vn.itemRefreshTags(NEW.itemFk); @@ -23153,16 +22404,17 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`itemTag_AFTER_DELETE` AFTER DELETE ON `itemTag` FOR EACH ROW -proc_label:BEGIN +/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `vn`.`itemTag_afterDelete` + AFTER DELETE ON `itemTag` FOR EACH ROW +trig: BEGIN IF @isTriggerDisabled THEN - LEAVE proc_label; + LEAVE trig; END IF; CALL vn.itemRefreshTags(OLD.itemFk); @@ -23206,7 +22458,7 @@ CREATE TABLE `itemTaxCountry` ( CONSTRAINT `countryFK_paises` FOREIGN KEY (`countryFk`) REFERENCES `vn2008`.`Paises` (`Id`) ON UPDATE CASCADE, CONSTRAINT `itemFK_Article` FOREIGN KEY (`itemFk`) REFERENCES `vn2008`.`Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `taxClassFK_Iva_Group` FOREIGN KEY (`taxClassFk`) REFERENCES `vn2008`.`iva_group` (`iva_group_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=730107 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Define la clase de iva por artículo y pais'; +) ENGINE=InnoDB AUTO_INCREMENT=756072 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Define la clase de iva por artículo y pais'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -23451,7 +22703,7 @@ CREATE TABLE `medicalCenter` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -23476,7 +22728,7 @@ CREATE TABLE `medicalReview` ( KEY `frgnkWorker_idx` (`workerFk`), CONSTRAINT `frgcenter` FOREIGN KEY (`centerFk`) REFERENCES `medicalCenter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `frgnkWorker` FOREIGN KEY (`workerFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=227 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=256 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -23497,7 +22749,7 @@ CREATE TABLE `message` ( KEY `sender` (`sender`), KEY `recipient` (`recipient`), KEY `uuid` (`uuid`(8)) -) ENGINE=InnoDB AUTO_INCREMENT=1866520 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1892900 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -23519,7 +22771,7 @@ CREATE TABLE `messageInbox` ( PRIMARY KEY (`id`), KEY `uuid` (`uuid`(8)), KEY `finalRecipient` (`finalRecipient`) -) ENGINE=InnoDB AUTO_INCREMENT=2034367 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2061517 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -23753,7 +23005,7 @@ CREATE TABLE `parking` ( UNIQUE KEY `code_UNIQUE` (`code`), KEY `parking_fk1_idx` (`sectorFk`), CONSTRAINT `parking_fk1` FOREIGN KEY (`sectorFk`) REFERENCES `sector` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=25437 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabla con los parkings del altillo'; +) ENGINE=InnoDB AUTO_INCREMENT=25391 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Tabla con los parkings del altillo'; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -24219,6 +23471,22 @@ SET character_set_client = utf8; 1 AS `isVisible`*/; SET character_set_client = @saved_cs_client; +-- +-- Table structure for table `professionalCategory` +-- + +DROP TABLE IF EXISTS `professionalCategory`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `professionalCategory` ( + `id` int(11) NOT NULL, + `description` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, + `salary` decimal(10,2) DEFAULT NULL, + `salaryorSeniority` decimal(10,2) DEFAULT NULL, + `year` int(2) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Table structure for table `profile` -- @@ -24283,6 +23551,41 @@ SET character_set_client = utf8; 1 AS `geoFk`*/; SET character_set_client = @saved_cs_client; +-- +-- Temporary table structure for view `rate` +-- + +DROP TABLE IF EXISTS `rate`; +/*!50001 DROP VIEW IF EXISTS `rate`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `rate` AS SELECT + 1 AS `id`, + 1 AS `dated`, + 1 AS `warehouseFk`, + 1 AS `rate0`, + 1 AS `rate1`, + 1 AS `rate2`, + 1 AS `rate3`*/; +SET character_set_client = @saved_cs_client; + +-- +-- Table structure for table `rateConfig` +-- + +DROP TABLE IF EXISTS `rateConfig`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `rateConfig` ( + `id` int(11) NOT NULL, + `rate0` int(11) DEFAULT NULL, + `rate1` int(11) DEFAULT NULL, + `rate2` int(11) DEFAULT NULL, + `rate3` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +/*!40101 SET character_set_client = @saved_cs_client */; + -- -- Temporary table structure for view `receipt` -- @@ -24423,7 +23726,7 @@ CREATE TABLE `routeComplement` ( KEY `fgn_routeActionFk_idx` (`routeActionFk`), CONSTRAINT `fgn_routeActionFk` FOREIGN KEY (`routeActionFk`) REFERENCES `routeAction` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fgn_workerFk` FOREIGN KEY (`workerFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) -) ENGINE=InnoDB AUTO_INCREMENT=308 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=504 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -24526,7 +23829,7 @@ CREATE TABLE `routeLog` ( KEY `userFk` (`userFk`), CONSTRAINT `routeLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Rutas` (`Id_Ruta`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `routeLog_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8422 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=21533 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -24799,7 +24102,7 @@ CREATE TABLE `sms` ( `status` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=132870 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=136211 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -24964,7 +24267,7 @@ CREATE TABLE `stockBuyed` ( UNIQUE KEY `date_UNIQUE` (`date`,`user`), KEY `stockBuyed_user_idx` (`user`), CONSTRAINT `stockBuyedUserFk` FOREIGN KEY (`user`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=672602 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=701265 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -25058,14 +24361,14 @@ CREATE TABLE `tag` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(25) CHARACTER SET utf8 NOT NULL, `isFree` tinyint(1) NOT NULL DEFAULT '1', - `isQuantitatif` tinyint(4) NOT NULL DEFAULT '1', + `isQuantitatif` tinyint(4) NOT NULL DEFAULT '0', `sourceTable` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `unit` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `ediTypeFk` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`), KEY `tagEdiTypeFkIdx` (`ediTypeFk`), CONSTRAINT `fgnTag` FOREIGN KEY (`ediTypeFk`) REFERENCES `edi`.`type` (`type_id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Categorias para etiquetar los productos'; +) ENGINE=InnoDB AUTO_INCREMENT=104 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Categorias para etiquetar los productos'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -25260,7 +24563,9 @@ CREATE TABLE `ticketDown` ( `ticketFk` int(11) NOT NULL, `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `selected` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`ticketFk`) + PRIMARY KEY (`ticketFk`), + KEY `created_idx` (`created`), + KEY `selected_idx` (`selected`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Cola de impresion para los tickets que se van a solicitar al altillo'; /*!40101 SET character_set_client = @saved_cs_client */; @@ -25292,7 +24597,7 @@ SET character_set_client = utf8; 1 AS `ticketFk`, 1 AS `routeFk`, 1 AS `saleFk`, - 1 AS `Fecha`, + 1 AS `shipped`, 1 AS `volume`*/; SET character_set_client = @saved_cs_client; @@ -25320,7 +24625,7 @@ CREATE TABLE `ticketLog` ( KEY `logTicketuserFk` (`userFk`), CONSTRAINT `ticketLog_ibfk_1` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `ticketLog_user` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=5875182 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=6208355 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -25392,7 +24697,7 @@ CREATE TABLE `ticketPackaging` ( CONSTRAINT `ticketPackaging_fk1` FOREIGN KEY (`ticketFk`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `ticketPackaging_fk2` FOREIGN KEY (`packagingFk`) REFERENCES `vn2008`.`Cubos` (`Id_Cubo`) ON UPDATE CASCADE, CONSTRAINT `ticketPackaging_fk3` FOREIGN KEY (`workerFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=61893 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=64612 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -25560,7 +24865,8 @@ SET character_set_client = utf8; 1 AS `agency_id`, 1 AS `warehouse_id`, 1 AS `province_id`, - 1 AS `picked`*/; + 1 AS `picked`, + 1 AS `zoneFk`*/; SET character_set_client = @saved_cs_client; -- @@ -25718,7 +25024,7 @@ CREATE TABLE `town` ( PRIMARY KEY (`id`), KEY `townProvinceFk_idx` (`provinceFk`), CONSTRAINT `townProvinceFk` FOREIGN KEY (`provinceFk`) REFERENCES `vn2008`.`province` (`province_id`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8515 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=8516 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -25732,7 +25038,7 @@ CREATE TABLE `trainingCenter` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(45) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -25759,7 +25065,7 @@ CREATE TABLE `trainingCourse` ( CONSTRAINT `frgnCenter` FOREIGN KEY (`centerFk`) REFERENCES `trainingCenter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `frgnTrainingCourseType` FOREIGN KEY (`trainingCourseTypeFk`) REFERENCES `trainingCourseType` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `frgnWorker` FOREIGN KEY (`workerFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=270 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lista de trabajadores que han realizado una formación'; +) ENGINE=InnoDB AUTO_INCREMENT=301 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lista de trabajadores que han realizado una formación'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -25773,7 +25079,7 @@ CREATE TABLE `trainingCourseType` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lista de las formaciones'; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Lista de las formaciones'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -25811,7 +25117,7 @@ CREATE TABLE `travel` ( CONSTRAINT `travel_ibfk_2` FOREIGN KEY (`warehouseOutFk`) REFERENCES `vn2008`.`warehouse` (`id`) ON UPDATE CASCADE, CONSTRAINT `travel_ibfk_3` FOREIGN KEY (`agencyFk`) REFERENCES `vn2008`.`Agencias` (`Id_Agencia`) ON UPDATE CASCADE, CONSTRAINT `travel_ibfk_4` FOREIGN KEY (`cargoSupplierFk`) REFERENCES `vn2008`.`Proveedores_cargueras` (`Id_Proveedor`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=130742 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB AUTO_INCREMENT=132733 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -26234,7 +25540,7 @@ CREATE TABLE `workerDocument` ( KEY `workerDocument_ibfk_2` (`document`), CONSTRAINT `workerDocument_ibfk_1` FOREIGN KEY (`worker`) REFERENCES `vn2008`.`Trabajadores` (`user_id`) ON UPDATE CASCADE, CONSTRAINT `workerDocument_ibfk_2` FOREIGN KEY (`document`) REFERENCES `vn2008`.`gestdoc` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=10577 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=10817 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -26284,7 +25590,7 @@ CREATE TABLE `workerJourney` ( UNIQUE KEY `userFk_UNIQUE` (`userFk`,`dated`), KEY `fk_workerJourney_user_idx` (`userFk`), CONSTRAINT `fk_workerJourney_user` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=35876852 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=38450770 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -26323,7 +25629,7 @@ CREATE TABLE `workerLog` ( KEY `userFk_idx` (`userFk`), CONSTRAINT `userFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `workerFk` FOREIGN KEY (`originFk`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=11271 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=11933 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -26386,7 +25692,7 @@ CREATE TABLE `workerTimeControl` ( KEY `warehouseFkfk1_idx` (`warehouseFk`), CONSTRAINT `warehouseFk_1` FOREIGN KEY (`warehouseFk`) REFERENCES `vn2008`.`warehouse` (`id`) ON UPDATE CASCADE, CONSTRAINT `workerTimeControl_fk1` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=4031332 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Fichadas'; +) ENGINE=InnoDB AUTO_INCREMENT=5683027 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Fichadas'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -26518,7 +25824,7 @@ CREATE TABLE `zone` ( KEY `zone_name_idx` (`name`), CONSTRAINT `fk_zone_1` FOREIGN KEY (`warehouseFk`) REFERENCES `vn2008`.`warehouse` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `fk_zone_2` FOREIGN KEY (`agencyModeFk`) REFERENCES `vn2008`.`Agencias` (`Id_Agencia`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=246 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=328 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -26553,7 +25859,7 @@ CREATE TABLE `zoneGeo` ( PRIMARY KEY (`id`), KEY `lft_rgt_depth_idx` (`lft`,`rgt`,`depth`), KEY `name_idx` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=23798 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=23934 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -28175,6 +27481,7 @@ DELIMITER ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`%` FUNCTION `invoiceSerial`(vClientFk INT, vCompanyFk INT, vType CHAR(1)) RETURNS char(1) CHARSET utf8 + DETERMINISTIC BEGIN /** * Obtiene la serie de de una factura @@ -28185,18 +27492,41 @@ BEGIN * @param vType Tipo de factura ["R", "M", "G"] * @return Serie de la factura */ - DECLARE vArea VARCHAR(25); + DECLARE vTaxArea VARCHAR(25); DECLARE vSerie CHAR(1); IF (SELECT hasInvoiceSimplified FROM client WHERE id = vClientFk) THEN RETURN 'S'; END IF; - SELECT clientTaxArea(vClientFk, vCompanyFk) INTO vArea; - -- Factura rápida + SELECT clientTaxArea(vClientFk, vCompanyFk) INTO vTaxArea; + SELECT invoiceSerialArea(vType,vTaxArea) INTO vSerie; + RETURN vSerie; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP FUNCTION IF EXISTS `invoiceSerialArea` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` FUNCTION `invoiceSerialArea`(vType CHAR(1), vTaxArea VARCHAR(25)) RETURNS char(1) CHARSET utf8 COLLATE utf8_unicode_ci + DETERMINISTIC +BEGIN + + DECLARE vSerie CHAR(1); + IF vType = 'R' THEN SELECT - CASE vArea + CASE vTaxArea WHEN 'CEE' THEN 'H' WHEN 'WORLD' @@ -28208,7 +27538,7 @@ BEGIN -- Factura multiple ELSEIF vType = 'M' THEN SELECT - CASE vArea + CASE vTaxArea WHEN 'CEE' THEN 'H' WHEN 'WORLD' @@ -28220,7 +27550,7 @@ BEGIN -- Factura global ELSEIF vType = 'G' THEN SELECT - CASE vArea + CASE vTaxArea WHEN 'CEE' THEN 'V' WHEN 'WORLD' @@ -28396,6 +27726,30 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP FUNCTION IF EXISTS `itemTag_getIntValue` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` FUNCTION `itemTag_getIntValue`(vValue VARCHAR(255)) RETURNS int(11) + DETERMINISTIC +BEGIN + IF vValue NOT REGEXP '^-?[0-9]+' THEN + RETURN NULL; + END IF; + + RETURN CAST(vValue AS SIGNED); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP FUNCTION IF EXISTS `item_getVolume` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -29516,7 +28870,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `artificialBuffer` */; +/*!50003 DROP PROCEDURE IF EXISTS `artificialBufferKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -29526,7 +28880,7 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `artificialBuffer`(vWarehouseFk INT) +CREATE DEFINER=`root`@`%` PROCEDURE `artificialBufferKk`(vWarehouseFk INT) BEGIN DECLARE vCalcFk INT; @@ -29932,6 +29286,268 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `catalog_componentCalculate` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `catalog_componentCalculate`( + vZoneFk INT, + vAddressFk INT, + vShipped DATE) +proc: BEGIN +/** + * Calcula los componentes de los articulos de tmp.ticketLot + * + * @param vZoneFk para calcular el transporte + * @param vAgencyModeFk Id del modo de agencia + * @param tmp.ticketLot (warehouseFk,available,itemFk,buyFk) + * + * @return tmp.ticketComponent(itemFk, warehouseFk, available, rate2, rate3, minPrice, + * packing, grouping, groupingMode, buyFk, typeFk) + * @return tmp.ticketComponentPrice (warehouseFk, itemFk, rate, grouping, price) + */ + + DECLARE vClientFk INT; + DECLARE vGeneralInflationCoefficient INT DEFAULT 1; + DECLARE vMinimumDensityWeight INT DEFAULT 167; + DECLARE vBoxFreightItem INT DEFAULT 71; + DECLARE vBoxVolume BIGINT; -- DEFAULT 138000; + DECLARE vSpecialPriceComponent INT DEFAULT 10; + DECLARE vDeliveryComponent INT DEFAULT 15; + DECLARE vRecoveryComponent INT DEFAULT 17; + DECLARE vSellByPacketComponent INT DEFAULT 22; + DECLARE vBuyValueComponent INT DEFAULT 28; + DECLARE vMarginComponent INT DEFAULT 29; + DECLARE vDiscountLastItemComponent INT DEFAULT 32; + DECLARE vExtraBaggedComponent INT DEFAULT 38; + DECLARE vManaAutoComponent INT DEFAULT 39; + + + SELECT volume INTO vBoxVolume + FROM vn.packaging + WHERE id = '94'; + + SELECT clientFk INTO vClientFK + FROM address + WHERE id = vAddressFk; + + SET @rate2 := 0; + SET @rate3 := 0; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentCalculate; + CREATE TEMPORARY TABLE tmp.ticketComponentCalculate + (PRIMARY KEY (itemFk, warehouseFk)) + ENGINE = MEMORY + SELECT + tl.itemFk, tl.warehouseFk, tl.available, + IF((@rate2 := IFNULL(pf.rate2, b.price2)) < i.minPrice AND i.hasMinPrice, i.minPrice, @rate2) * 1.0 rate2, + IF((@rate3 := IFNULL(pf.rate3, b.price3)) < i.minPrice AND i.hasMinPrice, i.minPrice, @rate3) * 1.0 rate3, + IFNULL(pf.rate3, 0) AS minPrice, + IFNULL(pf.packing, b.packing) packing, + IFNULL(pf.`grouping`, b.`grouping`) grouping, + ABS(IFNULL(pf.box, b.groupingMode)) groupingMode, + tl.buyFk, i.typeFk + FROM tmp.ticketLot tl + JOIN buy b ON b.id = tl.buyFk + JOIN item i ON i.id = tl.itemFk + JOIN itemType it ON it.id = i.typeFk + LEFT JOIN itemCategory ic ON ic.id = it.categoryFk + LEFT JOIN specialPrice sp ON sp.itemFk = i.id AND sp.clientFk = vClientFk + LEFT JOIN ( + SELECT * FROM ( + SELECT pf.itemFk, pf.`grouping`, pf.packing, pf.box, pf.rate2, pf.rate3, z.warehouseFk + FROM priceFixed pf + JOIN zone z ON z.warehouseFk = pf.warehouseFk OR pf.warehouseFk = 0 + WHERE vShipped BETWEEN pf.started AND pf.ended ORDER BY pf.itemFk, pf.warehouseFk DESC + ) tpf + GROUP BY tpf.itemFk, tpf.warehouseFk + ) pf ON pf.itemFk = tl.itemFk AND pf.warehouseFk = tl.warehouseFk + WHERE b.buyingValue + b.freightValue + b.packageValue + b.comissionValue > 0.01 AND ic.display <> 0; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponent; + CREATE TEMPORARY TABLE tmp.ticketComponent ( + `warehouseFk` INT UNSIGNED NOT NULL, + `itemFk` INT NOT NULL, + `componentFk` INT UNSIGNED NOT NULL, + `cost` DECIMAL(10,4) NOT NULL, + INDEX `itemWarehouse` USING BTREE (`itemFk` ASC, `warehouseFk` ASC), + UNIQUE INDEX `itemWarehouseComponent` (`itemFk` ASC, `warehouseFk` ASC, `componentFk` ASC)); + + INSERT INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost) + SELECT + tcc.warehouseFk, + tcc.itemFk, + vBuyValueComponent, + b.buyingValue + b.freightValue + b.packageValue + b.comissionValue + FROM tmp.ticketComponentCalculate tcc + JOIN buy b ON b.id = tcc.buyFk; + + INSERT INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost) + SELECT + tcc.warehouseFk, + tcc.itemFk, + vMarginComponent, + tcc.rate3 - b.buyingValue - b.freightValue - b.packageValue - b.comissionValue + FROM tmp.ticketComponentCalculate tcc + JOIN buy b ON b.id = tcc.buyFk; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentBase; + CREATE TEMPORARY TABLE tmp.ticketComponentBase ENGINE = MEMORY + SELECT tc.itemFk, ROUND(SUM(tc.cost), 4) AS base, tc.warehouseFk + FROM tmp.ticketComponent tc + GROUP BY tc.itemFk, warehouseFk; + + INSERT INTO tmp.ticketComponent + SELECT tcb.warehouseFk, tcb.itemFk, vRecoveryComponent, ROUND(tcb.base * LEAST(cr.recobro, 0.25), 3) + FROM tmp.ticketComponentBase tcb + JOIN bi.claims_ratio cr ON cr.Id_Cliente = vClientFk + WHERE cr.recobro > 0.009; + + INSERT INTO tmp.ticketComponent + SELECT tcb.warehouseFk, tcb.itemFk, vManaAutoComponent, ROUND(base * (0.01 + prices_modifier_rate), 3) as manaAuto + FROM tmp.ticketComponentBase tcb + JOIN `client` c on c.id = vClientFk + JOIN bs.mana_spellers ms ON c.salesPersonFk = ms.Id_Trabajador + WHERE ms.prices_modifier_activated + HAVING manaAuto <> 0; + + INSERT INTO tmp.ticketComponent + SELECT tcb.warehouseFk, + tcb.itemFk, + cr.id, + GREATEST(IFNULL(ROUND(tcb.base * cr.tax, 4), 0), tcc.minPrice - tcc.rate3) + FROM tmp.ticketComponentBase tcb + JOIN componentRate cr + JOIN tmp.ticketComponentCalculate tcc ON tcc.itemFk = tcb.itemFk AND tcc.warehouseFk = tcb.warehouseFk + LEFT JOIN specialPrice sp ON sp.clientFk = vClientFk AND sp.itemFk = tcc.itemFk + WHERE cr.id = vDiscountLastItemComponent AND cr.tax <> 0 AND tcc.minPrice < tcc.rate3 AND sp.value IS NULL; + + INSERT INTO tmp.ticketComponent + SELECT tcc.warehouseFk, tcc.itemFk, vSellByPacketComponent, tcc.rate2 - tcc.rate3 + FROM tmp.ticketComponentCalculate tcc + JOIN buy b ON b.id = tcc.buyFk + LEFT JOIN specialPrice sp ON sp.clientFk = vClientFk AND sp.itemFk = tcc.itemFk + WHERE sp.value IS NULL; + + INSERT INTO tmp.ticketComponent + SELECT tcc.warehouseFK, + tcc.itemFk, + vDeliveryComponent, + vGeneralInflationCoefficient + * ROUND(( + i.compression + * r.cm3 + * IF(am.deliveryMethodFk = 1, (GREATEST(i.density, vMinimumDensityWeight) / vMinimumDensityWeight), 1) + * IFNULL((z.price - z.bonus) + * 1/*amz.inflation*/ , 50)) / vBoxVolume, 4 + ) cost + FROM tmp.ticketComponentCalculate tcc + JOIN item i ON i.id = tcc.itemFk + JOIN zone z ON z.id = vZoneFk + JOIN agencyMode am ON am.id = z.agencyModeFk + LEFT JOIN bi.rotacion r ON r.warehouse_id = tcc.warehouseFk + AND r.Id_Article = tcc.itemFk + HAVING cost <> 0; + + IF (SELECT COUNT(*) FROM vn.addressForPackaging WHERE addressFk = vAddressFk) THEN + INSERT INTO tmp.ticketComponent + SELECT tcc.warehouseFk, b.itemFk, vExtraBaggedComponent, ap.packagingValue cost + FROM tmp.ticketComponentCalculate tcc + JOIN vn.addressForPackaging ap + WHERE ap.addressFk = vAddressFk; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentCopy; + CREATE TEMPORARY TABLE tmp.ticketComponentCopy ENGINE = MEMORY + SELECT * FROM tmp.ticketComponent; + + INSERT INTO tmp.ticketComponent + SELECT tcc.warehouseFk, + tcc.itemFk, + vSpecialPriceComponent, + sp.value - SUM(tcc.cost) sumCost + FROM tmp.ticketComponentCopy tcc + JOIN componentRate cr ON cr.id = tcc.componentFk + JOIN specialPrice sp ON sp.clientFk = vClientFK AND sp.itemFk = tcc.itemFk + WHERE cr.classRate IS NULL + GROUP BY tcc.itemFk, tcc.warehouseFk + HAVING ABS(sumCost) > 0.001; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentSum; + CREATE TEMPORARY TABLE tmp.ticketComponentSum + (INDEX (itemFk, warehouseFk)) + ENGINE = MEMORY + SELECT SUM(cost) sumCost, tc.itemFk, tc.warehouseFk, cr.classRate + FROM tmp.ticketComponent tc + JOIN componentRate cr ON cr.id = tc.componentFk + GROUP BY tc.itemFk, tc.warehouseFk, cr.classRate; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentRate; + CREATE TEMPORARY TABLE tmp.ticketComponentRate ENGINE = MEMORY + SELECT tcc.warehouseFk, + tcc.itemFk, + 1 rate, + IF(tcc.groupingMode = 1, tcc.`grouping`, 1) grouping, + CAST(SUM(tcs.sumCost) AS DECIMAL(10,2)) price + FROM tmp.ticketComponentCalculate tcc + JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk + AND tcs.warehouseFk = tcc.warehouseFk + WHERE IFNULL(tcs.classRate, 1) = 1 + AND tcc.groupingMode < 2 AND (tcc.packing > tcc.`grouping` or tcc.groupingMode = 0) + GROUP BY tcs.warehouseFk, tcs.itemFk; + + INSERT INTO tmp.ticketComponentRate (warehouseFk, itemFk, rate, grouping, price) + SELECT + tcc.warehouseFk, + tcc.itemFk, + 2 rate, + tcc.packing grouping, + SUM(tcs.sumCost) price + FROM tmp.ticketComponentCalculate tcc + JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk + AND tcs.warehouseFk = tcc.warehouseFk + WHERE tcc.available IS NULL OR (IFNULL(tcs.classRate, 2) = 2 + AND tcc.packing > 0 AND tcc.available >= tcc.packing) + GROUP BY tcs.warehouseFk, tcs.itemFk; + + INSERT INTO tmp.ticketComponentRate (warehouseFk, itemFk, rate, grouping, price) + SELECT + tcc.warehouseFk, + tcc.itemFk, + 3 rate, + tcc.available grouping, + SUM(tcs.sumCost) price + FROM tmp.ticketComponentCalculate tcc + JOIN tmp.ticketComponentSum tcs ON tcs.itemFk = tcc.itemFk + AND tcs.warehouseFk = tcc.warehouseFk + WHERE IFNULL(tcs.classRate, 3) = 3 + GROUP BY tcs.warehouseFk, tcs.itemFk; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketComponentPrice; + CREATE TEMPORARY TABLE tmp.ticketComponentPrice ENGINE = MEMORY + SELECT * FROM ( + SELECT * FROM tmp.ticketComponentRate ORDER BY price + ) t + GROUP BY itemFk, warehouseFk, `grouping`; + + DROP TEMPORARY TABLE + tmp.ticketComponentCalculate, + tmp.ticketComponentSum, + tmp.ticketComponentBase, + tmp.ticketComponentRate, + tmp.ticketComponentCopy; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `clean` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -30133,24 +29749,23 @@ DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `clientFreeze`() BEGIN - IF day(CURDATE()) IN (10,20,30) THEN + UPDATE bi.defaulters d + JOIN vn.client c ON c.id = d.client + JOIN vn.config ON TRUE + SET c.isFreezed = TRUE, frozened = CURDATE() + WHERE d.amount > config.defaultersMaxAmount + AND d.`date` = CURDATE() + AND frozened IS NULL; + + IF day(CURDATE()) IN (5,15,25) THEN UPDATE vn.client c - JOIN bi.defaulters d ON d.client = c.id AND d.date = CURDATE() - JOIN vn.config ON TRUE - SET c.isFreezed = TRUE - WHERE d.amount > config.defaultersMaxAmount - AND c.payMethodFk NOT IN (5,8) - AND c.typeFk = 'normal'; - - UPDATE vn.client c - JOIN bi.defaulters d ON d.client = c.id AND d.date = TIMESTAMPADD(DAY,10,CURDATE()) - JOIN vn.config ON TRUE - SET c.isFreezed = TRUE - WHERE d.amount > config.defaultersMaxAmount - AND c.payMethodFk IN (5,8) - AND c.typeFk = 'normal'; - + JOIN bi.defaulters d ON d.client = c.id + JOIN vn.config ON TRUE + SET c.isFreezed = TRUE, frozened = CURDATE() + WHERE d.amount > config.defaultersMaxAmount + AND c.typeFk = 'normal' + AND d.date = CURDATE(); END IF; END ;; @@ -32045,6 +31660,56 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `entry_getRate` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `entry_getRate`(vEntry INT) +BEGIN + DECLARE vLanded DATE; + DECLARE vWarehouseFk INT; + + -- Obtiene fecha de llegada y almacén entrante + + SELECT landed, warehouseInFk INTO vLanded, vWarehouseFk + FROM vn.travel t + JOIN vn.entry e ON t.id = e.travelFk + WHERE e.id = vEntry; + + -- Prepara una tabla con las tarifas aplicables en funcion de la fecha y el almacén + + DROP TEMPORARY TABLE IF EXISTS tmp.rate; + CREATE TEMPORARY TABLE tmp.rate + ENGINE = MEMORY + SELECT * FROM + ( + SELECT * FROM + ( + SELECT rate0, rate1, rate2, rate3 + FROM vn.rate + WHERE dated <= vLanded + AND warehouseFk = vWarehouseFk + ORDER BY dated DESC + + ) sub + UNION ALL + SELECT rate0, rate1, rate2, rate3 + FROM rateConfig + ) sub2 + LIMIT 1; + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `getDayExpeditions` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -33232,48 +32897,33 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutAgain`(IN vInvoiceRef VARCHAR(15)) +CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutAgain`(IN vInvoiceRef VARCHAR(15), vTaxArea VARCHAR(25)) BEGIN /* Para tickets ya facturados, vuelve a repetir el proceso de facturación. * -* @param vInvoice Numero de factura +* @param vInvoiceFk Numero de factura +* @param vTaxArea Numero de factura */ - DECLARE vInvoice INT; + DECLARE vInvoiceFk INT; DECLARE vCountry INT; DECLARE vTaxArea VARCHAR(15); DECLARE vSpainCountryCode INT DEFAULT 1; - SELECT id - INTO vInvoice + SELECT id INTO vInvoiceFk FROM invoiceOut WHERE ref = vInvoiceRef; UPDATE invoiceOut SET pdf = 0 - WHERE id = vInvoice; + WHERE id = vInvoiceFk; - SELECT s.countryFk - INTO vCountry + SELECT s.countryFk INTO vCountry FROM supplier s JOIN invoiceOut io ON io.companyFk = s.id - WHERE io.id = vInvoice; - /* - SELECT IF(a.isEqualizated - AND c.countryFk = vSpainCountryCode - AND i.taxAreaFk = 'NATIONAL', - 'EQU', - i.taxAreaFk) - INTO vTaxArea - FROM invoiceOutSerial i - JOIN invoiceOut io - JOIN ticket t ON t.refFk = io.ref - JOIN address a ON a.id = t.addressFk - JOIN client c ON c.id = t.clientFk - WHERE io.id = vInvoice AND i.code = invoiceSerial(io.clientFk,io.companyFk,'R') - LIMIT 1; - */ + WHERE io.id = vInvoiceFk; + DROP TEMPORARY TABLE IF EXISTS ticketToInvoice; CREATE TEMPORARY TABLE ticketToInvoice @@ -33281,28 +32931,26 @@ BEGIN FROM ticket WHERE refFk = vInvoiceRef; - CALL invoiceExpenceMake(vInvoice); + CALL invoiceExpenceMake(vInvoiceFk); - -- CALL invoiceTaxMake(vInvoice,vCountry,vTaxArea); - CALL invoiceTaxMake(vInvoice,vCountry); + CALL invoiceTaxMake(vInvoiceFk,vTaxArea); UPDATE invoiceOut io JOIN ( SELECT SUM(amount) AS total FROM invoiceOutExpence - WHERE invoiceOutFk = vInvoice + WHERE invoiceOutFk = vInvoiceFk ) base JOIN ( SELECT SUM(vat) AS total FROM invoiceOutTax - WHERE invoiceOutFk = vInvoice + WHERE invoiceOutFk = vInvoiceFk ) vat SET io.amount = base.total + vat.total - WHERE io.id = vInvoice; + WHERE io.id = vInvoiceFk; - CALL vn.invoiceOutBooking(vInvoice); + CALL vn.invoiceOutBooking(vInvoiceFk); - END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -33816,7 +33464,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOutMake`( vInvoiceDate DATETIME, OUT vNewInvoiceId INT) BEGIN - +-- OBSOLETO, USAR invoiceOut_make JGF 2019/06/27 /* Creación de facturas emitidas. * REQUIERE previamente tabla ticketToInvoice. * @@ -34042,6 +33690,229 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `invoiceOut_new` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOut_new`( + vSerial VARCHAR(255), + vInvoiceDate DATETIME, + vTaxArea VARCHAR(25), + OUT vNewInvoiceId INT) +BEGIN + +/* Creación de facturas emitidas. +* REQUIERE previamente tabla ticketToInvoice. +* +* @param vSerial, vInvoiceDate,vTaxArea +* +* @return vNewInvoiceId +*/ + + DECLARE vSpainCountryCode INT DEFAULT 1; + DECLARE vIsAnySaleToInvoice BOOL; + DECLARE vNewRef VARCHAR(255); + DECLARE vWorker INT DEFAULT vn.getWorker(); + DECLARE vCompany INT; + DECLARE vClient INT; + DECLARE vCplusStandardInvoiceTypeFk INT DEFAULT 1; + DECLARE vCplusCorrectingInvoiceTypeFk INT DEFAULT 6; + DECLARE vCplusSimplifiedInvoiceTypeFk INT DEFAULT 2; + DECLARE vCorrectingSerial VARCHAR(1) DEFAULT 'R'; + DECLARE vSimplifiedSerial VARCHAR(1) DEFAULT 'S'; + + SET vInvoiceDate = IFNULL(vInvoiceDate,CURDATE()); + + SELECT t.clientFk, t.companyFk + INTO vClient, vCompany + FROM ticketToInvoice tt + JOIN ticket t ON t.id = tt.id + LIMIT 1; + + -- Elimina tickets sense moviments +/* UPDATE ticket t + JOIN ticketToInvoice ti ON ti.id = t.id + LEFT JOIN sale s ON s.ticketFk = ti.id + LEFT JOIN expedition e ON e.ticketFk = t.id + LEFT JOIN ticketPackaging tp ON tp.ticketFk = t.id + SET t.shipped = '2000-02-01 00:00:00' + WHERE s.ticketFk IS NULL AND e.ticketFk IS NULL AND e.ticketFk IS NULL; +*/ + -- Eliminem de ticketToInvoice els tickets que no han de ser facturats + DELETE ti.* + FROM ticketToInvoice ti + JOIN ticket t ON t.id = ti.id + JOIN client c ON c.id = t.clientFk + WHERE YEAR(t.shipped) < 2001 + OR c.isTaxDataChecked = FALSE; + + SELECT SUM(quantity * price * (100 - discount)/100) + INTO vIsAnySaleToInvoice + FROM sale s + JOIN ticketToInvoice t on t.id = s.ticketFk; + + IF vIsAnySaleToInvoice THEN + + -- el trigger añade el siguiente Id_Factura correspondiente a la vSerial + -- el trigger añade el siguiente Id_Factura correspondiente a la vSerial + INSERT INTO invoiceOut + ( + ref, + serial, + issued, + clientFk, + dued, + companyFk, + cplusInvoiceType477Fk + ) + SELECT + 1, + vSerial, + vInvoiceDate, + vClient, + getDueDate(vInvoiceDate, dueDay), + vCompany, + IF(vSerial = vCorrectingSerial, + vCplusCorrectingInvoiceTypeFk, + IF(vSerial = vSimplifiedSerial, + vCplusSimplifiedInvoiceTypeFk, + vCplusStandardInvoiceTypeFk)) + FROM client + WHERE id = vClient; + + + SET vNewInvoiceId = LAST_INSERT_ID(); + + SELECT ref + INTO vNewRef + FROM invoiceOut + WHERE id = vNewInvoiceId; + + UPDATE ticket t + JOIN ticketToInvoice ti ON ti.id = t.id + SET t.refFk = vNewRef; + + DROP TEMPORARY TABLE IF EXISTS tmp.updateInter; + CREATE TEMPORARY TABLE tmp.updateInter ENGINE = MEMORY + SELECT s.id,ti.id ticket_id,vWorker Id_Trabajador + FROM ticketToInvoice ti + LEFT JOIN vn.ticketState ts ON ti.id = ts.ticket + JOIN state s + WHERE IFNULL(ts.alertLevel,0) < 3 and s.`code` = vn.getAlert3State(ti.id); + + INSERT INTO vncontrol.inter(state_id,Id_Ticket,Id_Trabajador) + SELECT * FROM tmp.updateInter; + + + INSERT INTO ticketLog (action, userFk,originFk, description) + SELECT 'UPDATE',account.userGetId(),ti.id, CONCAT('Crea factura ',vNewRef) + FROM ticketToInvoice ti; + + CALL invoiceExpenceMake(vNewInvoiceId); + CALL invoiceTaxMake(vNewInvoiceId,vTaxArea); + + UPDATE invoiceOut io + JOIN ( + SELECT SUM(amount) AS total + FROM invoiceOutExpence + WHERE invoiceOutFk = vNewInvoiceId + ) base + JOIN ( + SELECT SUM(vat) AS total + FROM invoiceOutTax + WHERE invoiceOutFk = vNewInvoiceId + ) vat + SET io.amount = base.total + vat.total + WHERE io.id = vNewInvoiceId; + + END IF; + + DROP TEMPORARY TABLE `ticketToInvoice`; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `invoiceOut_newFromClient` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOut_newFromClient`(vClientFk INT, vSerial CHAR(1), vShipped DATE, vCompanyFk INT, vTaxArea VARCHAR(25), OUT vInvoiceId INT) +BEGIN +/** + * Factura los tickets de un cliente + * @param vTicketFk Id del ticket + * @param vSerial Serie de factura + * @return Id factura + */ + CALL invoiceFromClient(vShipped, vClientFk, vCompanyFk); + CALL invoiceOut_new(vSerial, CURDATE(), vTaxArea, vInvoiceId); + + IF vSerial <> 'R' AND NOT ISNULL(vInvoiceId) AND vInvoiceId <> 0 THEN + CALL invoiceOutBooking(vInvoiceId); + INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(1, 3, vInvoiceId); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `invoiceOut_newFromTicket` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `invoiceOut_newFromTicket`(vTicketFk INT, vSerial CHAR(1), vTaxArea VARCHAR(25), OUT vInvoiceId INT) +BEGIN +/** + * Factura un ticket + * @param vTicketFk Id del ticket + * @param vSerial Serie de factura + * @param vTaxArea Area de la factura en caso de querer forzarlo, + * en la mayoria de los casos poner NULL + * @return vInvoiceId + */ + DECLARE EXIT HANDLER FOR SQLEXCEPTION + BEGIN + ROLLBACK; + RESIGNAL; + END; + + START TRANSACTION; + CALL invoiceFromTicket(vTicketFk); + CALL invoiceOut_new(vSerial, CURDATE(), vTaxArea, vInvoiceId); + + IF vSerial <> 'R' AND NOT ISNULL(vInvoiceId) AND vInvoiceId <> 0 THEN + CALL invoiceOutBooking(vInvoiceId); + INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(1, 3, vInvoiceId); + END IF; + + COMMIT; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `invoiceTaxMake` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -34052,9 +33923,16 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `invoiceTaxMake`(IN vInvoice INT, IN vCountry INT) +CREATE DEFINER=`root`@`%` PROCEDURE `invoiceTaxMake`(vInvoice INT, vTaxArea VARCHAR(25)) BEGIN - +/** + * Factura un conjunto de tickets. + * + * @param vInvoice, vTaxAreaFk + * @table tmp.ticket(ticketFk) Identificadores de los tickets a calcular + * @return tmp.ticketAmount + * @return tmp.ticketTax Impuesto desglosado para cada ticket. + */ DELETE FROM invoiceOutTax WHERE invoiceOutFk = vInvoice; @@ -34065,7 +33943,7 @@ BEGIN SELECT id ticketFk FROM ticketToInvoice; - CALL ticketGetTax(); + CALL ticket_getTax(vTaxArea); INSERT INTO invoiceOutTax( invoiceOutFk, @@ -35464,24 +35342,23 @@ DELIMITER ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `itemShelvingRadar`() BEGIN - DECLARE vWarehouseFk INT DEFAULT 1; - DECLARE vCalcTicketShippingFk INT; DECLARE vCalcVisibleFk INT; DECLARE vCalcAvailableFk INT; - CALL cache.ticketShippingRefresh(vCalcTicketShippingFk, FALSE, 1); CALL cache.visible_refresh(vCalcVisibleFk, TRUE, 1); CALL cache.available_refresh(vCalcAvailableFk, FALSE, vWarehouseFk, CURDATE()); DROP TEMPORARY TABLE IF EXISTS tmp.ticketState; CREATE TEMPORARY TABLE tmp.ticketState + (INDEX (ticketFk)) ENGINE = MEMORY SELECT * FROM vn.ticketState WHERE updated >= TIMESTAMPADD(WEEK, -1, CURDATE()) AND productionOrder < 6; DROP TEMPORARY TABLE IF EXISTS tmp.itemShelvingRadar; CREATE TEMPORARY TABLE tmp.itemShelvingRadar + (INDEX (itemFk)) ENGINE = MEMORY SELECT *, @saldo:= CAST(IF(itemFk != @item, visibleTotal - Altillo, @saldo) - quantity AS DECIMAL(10,0)) as saldo, @item:= itemFk as item @@ -35490,8 +35367,12 @@ BEGIN SELECT * FROM ( - SELECT IF(tst.updated AND st.`order` BETWEEN 4 AND 5 , HOUR(tst.updated), tsh.shippingHour) as Hora, - IF(tst.updated AND st.`order` BETWEEN 4 AND 5, MINUTE(tst.updated), tsh.shippingMinute) as Minuto, + SELECT IF(tst.updated AND st.`order` BETWEEN 4 AND 5 , + HOUR(tst.updated), + IF(HOUR(t.shipped), HOUR(t.shipped), HOUR(z.`hour`))) as Hora, + IF(tst.updated AND st.`order` BETWEEN 4 AND 5, + MINUTE(tst.updated), + IF(MINUTE(t.shipped), MINUTE(t.shipped), MINUTE(z.`hour`))) as Minuto, s.itemFk, i.longName as concept, s.quantity, @@ -35503,14 +35384,15 @@ BEGIN i.upToDown, i.subName FROM tmp.ticketState tst - LEFT JOIN vn.state st ON st.id = tst.stateFk - JOIN vn.sale s ON s.ticketFk = tst.ticketFk - JOIN vn.item i ON i.id = s.itemFk - LEFT JOIN vn.itemPlacement ip ON ip.itemFk = i.id AND ip.warehouseFk = vWarehouseFk + LEFT JOIN state st ON st.id = tst.stateFk + JOIN sale s ON s.ticketFk = tst.ticketFk + JOIN item i ON i.id = s.itemFk + LEFT JOIN itemPlacement ip ON ip.itemFk = i.id AND ip.warehouseFk = vWarehouseFk JOIN cache.visible v ON v.calc_id = vCalcVisibleFk AND v.item_id = s.itemFk - JOIN cache.ticketShipping tsh ON tsh.calc_id = vCalcTicketShippingFk AND tsh.ticketFk = tst.ticketFk - JOIN vn.itemShelvingStock iss ON iss.itemFk = s.itemFk - WHERE tst.productionOrder < 5 + JOIN itemShelvingStock iss ON iss.itemFk = s.itemFk + JOIN ticket t ON t.id = s.ticketFk + LEFT JOIN vn.zone z ON z.id = t.zoneFk + WHERE tst.productionOrder < 5 UNION ALL @@ -35538,16 +35420,13 @@ BEGIN ) sub2; - - DROP TEMPORARY TABLE IF EXISTS tmp.itemShelvingRadarMin; CREATE TEMPORARY TABLE tmp.itemShelvingRadarMin + (INDEX (itemFk)) ENGINE = MEMORY SELECT *, min(saldo) as minSaldo , min(saldo) as minSaldo2 FROM tmp.itemShelvingRadar GROUP BY itemFk; - - SELECT Hora, Minuto, i.id as itemFk, @@ -35592,7 +35471,10 @@ BEGIN GROUP BY itemFk) sub3 ON sub3.itemFk = i.id GROUP BY i.id HAVING saldo <= 0 OR saldoFinal ; - + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketState; + DROP TEMPORARY TABLE IF EXISTS tmp.itemShelvingRadar; + DROP TEMPORARY TABLE IF EXISTS tmp.itemShelvingRadarMin; END ;; DELIMITER ; @@ -35600,7 +35482,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `itemShelvingRadar_beta` */; +/*!50003 DROP PROCEDURE IF EXISTS `itemShelvingRadar_betaKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -35610,9 +35492,9 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `itemShelvingRadar_beta`() +CREATE DEFINER=`root`@`%` PROCEDURE `itemShelvingRadar_betaKk`() BEGIN - + /* obsoleto usar itemShelvingRadar*/ DECLARE vWarehouseFk INT DEFAULT 1; DECLARE vCalcTicketShippingFk INT; DECLARE vCalcVisibleFk INT; @@ -35980,12 +35862,11 @@ BEGIN DECLARE vTicketFk INT; DECLARE vClientFk INT; DECLARE vCompanyVnlFk INT DEFAULT 442; + DECLARE vAgencyModeOthersFk INT DEFAULT 14; DECLARE vVisible INT DEFAULT 0; DECLARE vCalc INT; DECLARE vCurrentTime VARCHAR(5); - /*MODIFICADO POR KIKE*/ - /*PRIMERO LLAMAMOS A VISIBLE REFRESH Y OBTENEMOS EL VCALC PARA OBTENER EL VISIBLE */ CALL cache.visible_refresh(vCalc, FALSE, vWarehouseFk); SELECT IFNULL(visible,0) INTO vVisible @@ -36000,14 +35881,14 @@ BEGIN JOIN vn.address a ON a.id=t.addressFk WHERE t.warehouseFk = vWarehouseFk AND t.clientFk = vClientFk - AND date(t.shipped) = CURDATE() + AND DATE(t.shipped) = CURDATE() AND a.isDefaultAddress LIMIT 1; - + IF vTicketFk IS NULL THEN - - CALL vn.ticketCreate(vClientFk, CURDATE(), vWarehouseFk, vCompanyVnlFk, NULL, NULL, NULL, CURDATE(), vTicketFk); - + + CALL vn.ticketCreateWithoutZone(vClientFk, CURDATE(), vWarehouseFk, vCompanyVnlFk, NULL, vAgencyModeOthersFk, NULL, CURDATE(), account.userGetId(),vTicketFk); + END IF; INSERT INTO sale(ticketFk, itemFk, concept, quantity, price, discount) @@ -37533,26 +37414,18 @@ DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `productionSectorList`() BEGIN - DECLARE vCalcFk INT; - - -- CALL vn.ticketDepartureMake; - CALL cache.ticketShippingRefresh(vCalcFk, FALSE, 1); - - SELECT isa.*, cast(max(isa.quantity mod isa.packing) as DECIMAL(10,0)) as picos, sum(isa.available) as totalAvailable, - tsh.shippingHour Hora, - tsh.shippingMinute Minuto, + IF (HOUR(isa.shipped),HOUR(isa.shipped), HOUR(isa.`hour`)) Hora, + IF (MINUTE(isa.shipped),MINUTE(isa.shipped), MINUTE(isa.`hour`)) Minuto, i.subName FROM vn.itemShelvingAvailable isa JOIN vn.item i ON i.id = isa.itemFk - LEFT JOIN cache.ticketShipping tsh ON tsh.ticketFk = isa.ticketFk - WHERE tsh.calc_id = vCalcFk AND MOD(TRUNCATE(isa.quantity,0), isa.packing)= 0 + WHERE MOD(TRUNCATE(isa.quantity,0), isa.packing)= 0 AND isa.sectorProdPriority <= 3 GROUP BY saleFk HAVING isa.quantity <= totalAvailable; - END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -37574,7 +37447,6 @@ BEGIN DECLARE vDone BIT DEFAULT 0; DECLARE vCustomer MEDIUMINT; - DECLARE vNewShipped DATE; DECLARE vWarehouse TINYINT; DECLARE vCompany MEDIUMINT; DECLARE vAddress MEDIUMINT; @@ -37594,12 +37466,12 @@ BEGIN DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1; - SELECT clientFk, TIMESTAMPADD(DAY, 1,shipped), warehouseFk, companyFk, addressFk - INTO vCustomer, vNewShipped, vWarehouse, vCompany, vAddress + SELECT clientFk, warehouseFk, companyFk, addressFk + INTO vCustomer, vWarehouse, vCompany, vAddress FROM ticket WHERE id = vOriginTicket; - CALL ticketCreate(vCustomer, vNewShipped, vWarehouse, vCompany, vAddress, vRefundAgencyMode,NULL,vNewShipped,vNewTicket); + CALL ticketCreate(vCustomer, CURDATE(), vWarehouse, vCompany, vAddress, vRefundAgencyMode, NULL, CURDATE(), vNewTicket); SET vDone := 0; OPEN vRsMainTicket ; @@ -37828,12 +37700,11 @@ CREATE DEFINER=`root`@`%` PROCEDURE `routeUpdateM3`(vRoute INT) BEGIN UPDATE vn.route r - JOIN (SELECT Id_Ruta, SUM(volume) AS m3 - FROM vn2008.v_Movimientos_Volumen_shipping_charge - WHERE Id_Ruta = vRoute - ) v ON v.Id_Ruta = r.id + JOIN (SELECT routeFk, SUM(volume) AS m3 + FROM ticketGetVolume + WHERE routeFk = vRoute + ) v ON v.routeFk = r.id SET r.m3 = v.m3; - END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -38357,9 +38228,9 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; @@ -38370,15 +38241,7 @@ BEGIN 'scan', 'vn2008', 'scanTree' - ); - - ALTER TABLE vn2008.scanTree - ADD COLUMN lastScanned DATETIME NULL, - ADD COLUMN routeCount INT NULL, - ADD COLUMN minRoute INT, - ADD COLUMN maxRoute INT, - ADD COLUMN scanned INT, - ADD PRIMARY KEY(`id`); + ); UPDATE vn2008.scanTree st JOIN ( @@ -39425,6 +39288,7 @@ proc: BEGIN DECLARE vItem BIGINT; DECLARE vLanded DATE; DECLARE vTicketFree BOOLEAN DEFAULT TRUE; + DeclARE vHasZone BOOLEAN DEFAULT FALSE; SELECT FALSE INTO vTicketFree @@ -39445,12 +39309,16 @@ proc: BEGIN FROM agencyMode a JOIN ticket t ON t.agencyModeFk = a.id WHERE t.id = vTicket; - + CALL zoneGetShippedWarehouse(vLanded, vAddressFk, vAgencyModeFk); - - SELECT shipped INTO vShipped + + SELECT shipped = vShipped INTO vHasZone FROM tmp.zoneGetShipped WHERE warehouseFk = vWarehouseFk; + + IF vHasZone = FALSE THEN + CALL util.throw('not zone with this parameters'); + END IF; CALL buyUltimate (vWarehouseFk, vShipped); @@ -39481,132 +39349,268 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticketCalculateSaleForcePrice` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculateSaleForcePrice`(IN vSale BIGINT) +proc: BEGIN + + DECLARE vShipped DATE; + DECLARE vWarehouseFk SMALLINT; + DECLARE vAddressFk INT; + DECLARE vTicket BIGINT; + DECLARE vItem BIGINT; + DECLARE vLanded DATE; + DECLARE vZoneFk INT; + DECLARE vHasZone BOOLEAN DEFAULT FALSE; + + + SELECT ticketFk, itemFk + INTO vTicket, vItem + FROM sale + WHERE id = vSale; + + SELECT t.warehouseFk, DATE(t.shipped), t.addressFk, t.landed, t.zoneFk + INTO vWarehouseFk, vShipped, vAddressFk, vLanded, vZoneFk + FROM agencyMode a + JOIN ticket t ON t.agencyModeFk = a.id + WHERE t.id = vTicket; + + IF vZoneFk IS NULL THEN + CALL util.throw('ticket without zone'); + END IF; + + CALL buyUltimate (vWarehouseFk, vShipped); + + DELETE FROM tmp.buyUltimate WHERE itemFk != vItem; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; + CREATE TEMPORARY TABLE tmp.ticketLot + SELECT vWarehouseFk warehouseFk, NULL available, vItem itemFk, buyFk + FROM tmp.buyUltimate + WHERE itemFk = vItem; + + CALL catalog_componentCalculate(vZoneFk, vAddressFk, vShipped); + + DROP TEMPORARY TABLE IF EXISTS tmp.sale; + CREATE TEMPORARY TABLE tmp.sale + (PRIMARY KEY (saleFk)) ENGINE = MEMORY + SELECT vSale saleFk,vWarehouseFk warehouseFk; + + CALL ticketComponentUpdateSale(1); + + INSERT INTO vn.ticketLog (originFk, userFk, `action`, description) + VALUES (vTicket, account.userGetId(), 'update', CONCAT('Bionizo linea id ', vSale)); + + DROP TEMPORARY TABLE tmp.buyUltimate; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticketCalculateSaleForcePriceKk` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticketCalculateSaleForcePriceKk`(IN vSale BIGINT) +proc: BEGIN + + DECLARE vShipped DATE; + DECLARE vWarehouseFk SMALLINT; + DECLARE vAgencyModeFk INT; + DECLARE vAddressFk INT; + DECLARE vTicket BIGINT; + DECLARE vItem BIGINT; + DECLARE vLanded DATE; + DeclARE vHasZone BOOLEAN DEFAULT FALSE; + + SELECT ticketFk, itemFk + INTO vTicket, vItem + FROM sale + WHERE id = vSale; + + SELECT t.warehouseFk, DATE(t.shipped), t.addressFk, t.agencyModeFk, t.landed + INTO vWarehouseFk, vShipped, vAddressFk, vAgencyModeFk, vLanded + FROM agencyMode a + JOIN ticket t ON t.agencyModeFk = a.id + WHERE t.id = vTicket; + + CALL zoneGetShippedWarehouse(vLanded, vAddressFk, vAgencyModeFk); + + SELECT shipped = vShipped INTO vHasZone + FROM tmp.zoneGetShipped + WHERE warehouseFk = vWarehouseFk; + + IF vHasZone = FALSE THEN + CALL util.throw('not zone with this parameters'); + END IF; + + CALL buyUltimate (vWarehouseFk, vShipped); + + DELETE FROM tmp.buyUltimate WHERE itemFk != vItem; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; + CREATE TEMPORARY TABLE tmp.ticketLot + SELECT vWarehouseFk warehouseFk, NULL available, vItem itemFk, buyFk + FROM tmp.buyUltimate + WHERE itemFk = vItem; + + CALL ticketComponentCalculate(vAddressFk, vAgencyModeFk); + + DROP TEMPORARY TABLE IF EXISTS tmp.sale; + CREATE TEMPORARY TABLE tmp.sale + (PRIMARY KEY (saleFk)) ENGINE = MEMORY + SELECT vSale saleFk,vWarehouseFk warehouseFk; + + CALL ticketComponentUpdateSale(1); + + INSERT INTO vn.ticketLog (originFk, userFk, `action`, description) + VALUES (vTicket, account.userGetId(), 'update', CONCAT('Bionizo linea id ', vSale)); + + DROP TEMPORARY TABLE tmp.buyUltimate; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `ticketClosure` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `ticketClosure`() -BEGIN -/** - * Realiza el cierre de todos los - * tickets de la table ticketClosure. - */ - DECLARE vDone BOOL; - DECLARE vClientFk INT; - DECLARE vTicketFk INT; - DECLARE vIsTaxDataChecked BOOL; - DECLARE vCompanyFk INT; - DECLARE vShipped DATE; - DECLARE vPriority INT DEFAULT 1; - DECLARE vReportDeliveryNote INT DEFAULT 1; - DECLARE vNewInvoiceId INT; - DECLARE vIsUeeMember BOOL; - DECLARE vWithPackage BOOL; - - DECLARE cur CURSOR FOR - SELECT ticketFk FROM tmp.ticketClosure; - - DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; - DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN - RESIGNAL; - END; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure2; - CREATE TEMPORARY TABLE tmp.ticketClosure2 - SELECT ticketFk FROM tmp.ticketClosure; - INSERT INTO tmp.ticketClosure - SELECT id FROM stowaway s - JOIN tmp.ticketClosure2 tc ON s.shipFk = tc.ticketFk; - OPEN cur; - - proc: LOOP - SET vDone = FALSE; - - FETCH cur INTO vTicketFk; - - IF vDone THEN - LEAVE proc; - END IF; - - -- ticketClosure start - SELECT - c.id, - c.isTaxDataChecked, - t.companyFk, - t.shipped, - co.isUeeMember, - w.isManaged - INTO vClientFk, - vIsTaxDataChecked, - vCompanyFk, - vShipped, - vIsUeeMember, - vWithPackage - FROM ticket t - JOIN `client` c ON c.id = t.clientFk - JOIN province p ON p.id = c.provinceFk - JOIN country co ON co.id = p.countryFk - JOIN warehouse w ON w.id = t.warehouseFk - WHERE t.id = vTicketFk; - - -- Fusión de ticket - -- CALL mergeTicketUnattended(vTicketFk, TRUE); JGF 2017/12/04 - - INSERT INTO ticketPackaging (ticketFk, packagingFk, quantity) - (SELECT vTicketFk, p.id, COUNT(*) - FROM expedition e - JOIN packaging p ON p.itemFk = e.itemFk - WHERE e.ticketFk = vTicketFk AND p.isPackageReturnable - AND vWithPackage - GROUP BY p.itemFk); - - -- No retornables o no catalogados - INSERT INTO sale (itemFk, ticketFk, concept, quantity, price, isPriceFixed) - (SELECT e.itemFk, vTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.itemFk, vClientFk), 1 - FROM expedition e - JOIN item i ON i.id = e.itemFk - LEFT JOIN packaging p ON p.itemFk = i.id - WHERE e.ticketFk = vTicketFk AND IFNULL(p.isPackageReturnable, 0) = 0 - AND getSpecialPrice(e.itemFk, vClientFk) > 0 - GROUP BY e.itemFk); - - IF(vIsUeeMember = FALSE) THEN - - -- Facturacion rapida - CALL ticketTrackingAdd(vTicketFk, 'DELIVERED', 20); - -- Facturar si está contabilizado - IF vIsTaxDataChecked THEN - - IF (SELECT clientTaxArea(vClientFk, vCompanyFk)) = 'NATIONAL' THEN - CALL invoiceMakeByClient( - vClientFk, - (SELECT invoiceSerial(vClientFk, vCompanyFk, 'M')), - vShipped, - vCompanyFk, - vNewInvoiceId); - ELSE - CALL invoiceMakeByTicket(vTicketFk, (SELECT invoiceSerial(vClientFk, vCompanyFk, 'R')), vNewInvoiceId); - END IF; - - END IF; - ELSE - -- Albaran_print - CALL ticketTrackingAdd(vTicketFk, (SELECT vn.getAlert3State(vTicketFk)), 20); - INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(vPriority, vReportDeliveryNote, vTicketFk); - END IF; - - -- ticketClosure end - END LOOP; - - CLOSE cur; - - DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure2; +BEGIN +/** + * Realiza el cierre de todos los + * tickets de la table ticketClosure. + */ + DECLARE vDone BOOL; + DECLARE vClientFk INT; + DECLARE vTicketFk INT; + DECLARE vIsTaxDataChecked BOOL; + DECLARE vCompanyFk INT; + DECLARE vShipped DATE; + DECLARE vPriority INT DEFAULT 1; + DECLARE vReportDeliveryNote INT DEFAULT 1; + DECLARE vNewInvoiceId INT; + DECLARE vHasDailyInvoice BOOL; + DECLARE vWithPackage BOOL; + + DECLARE cur CURSOR FOR + SELECT ticketFk FROM tmp.ticketClosure; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN + RESIGNAL; + END; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure2; + CREATE TEMPORARY TABLE tmp.ticketClosure2 + SELECT ticketFk FROM tmp.ticketClosure; + INSERT INTO tmp.ticketClosure + SELECT id FROM stowaway s + JOIN tmp.ticketClosure2 tc ON s.shipFk = tc.ticketFk; + OPEN cur; + + proc: LOOP + SET vDone = FALSE; + + FETCH cur INTO vTicketFk; + + IF vDone THEN + LEAVE proc; + END IF; + + -- ticketClosure start + SELECT + c.id, + c.isTaxDataChecked, + t.companyFk, + t.shipped, + co.hasDailyInvoice, + w.isManaged + INTO vClientFk, + vIsTaxDataChecked, + vCompanyFk, + vShipped, + vHasDailyInvoice, + vWithPackage + FROM ticket t + JOIN `client` c ON c.id = t.clientFk + JOIN province p ON p.id = c.provinceFk + JOIN country co ON co.id = p.countryFk + JOIN warehouse w ON w.id = t.warehouseFk + WHERE t.id = vTicketFk; + + INSERT INTO ticketPackaging (ticketFk, packagingFk, quantity) + (SELECT vTicketFk, p.id, COUNT(*) + FROM expedition e + JOIN packaging p ON p.itemFk = e.itemFk + WHERE e.ticketFk = vTicketFk AND p.isPackageReturnable + AND vWithPackage + GROUP BY p.itemFk); + + -- No retornables o no catalogados + INSERT INTO sale (itemFk, ticketFk, concept, quantity, price, isPriceFixed) + (SELECT e.itemFk, vTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.itemFk, vClientFk), 1 + FROM expedition e + JOIN item i ON i.id = e.itemFk + LEFT JOIN packaging p ON p.itemFk = i.id + WHERE e.ticketFk = vTicketFk AND IFNULL(p.isPackageReturnable, 0) = 0 + AND getSpecialPrice(e.itemFk, vClientFk) > 0 + GROUP BY e.itemFk); + + IF(vHasDailyInvoice) THEN + + -- Facturacion rapida + CALL ticketTrackingAdd(vTicketFk, 'DELIVERED', 20); + -- Facturar si está contabilizado + IF vIsTaxDataChecked THEN + + IF (SELECT clientTaxArea(vClientFk, vCompanyFk)) = 'NATIONAL' THEN + CALL invoiceMakeByClient( + vClientFk, + (SELECT invoiceSerial(vClientFk, vCompanyFk, 'M')), + vShipped, + vCompanyFk, + vNewInvoiceId); + ELSE + CALL invoiceMakeByTicket(vTicketFk, (SELECT invoiceSerial(vClientFk, vCompanyFk, 'R')), vNewInvoiceId); + END IF; + + END IF; + ELSE + -- Albaran_print + CALL ticketTrackingAdd(vTicketFk, (SELECT vn.getAlert3State(vTicketFk)), 20); + INSERT INTO printServerQueue(priorityFk, reportFk, param1) VALUES(vPriority, vReportDeliveryNote, vTicketFk); + END IF; + + -- ticketClosure end + END LOOP; + + CLOSE cur; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketClosure2; END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -39877,6 +39881,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `ticketComponentCalculate`( vAddressFk INT, vAgencyModeFk INT) proc: BEGIN +-- OBSOLETO usar catalog_componentCalculate /** * Calcula los componentes de un ticket * @@ -40501,7 +40506,7 @@ CREATE DEFINER=`root`@`%` PROCEDURE `ticketComponentPreview`( vAgencyModeFk INT, vWarehouseFk SMALLINT) BEGIN - +-- OBSOLETO usar ticket_componentPreview DECLARE vShipped DATE; DECLARE vBuyOrderItem INT DEFAULT 100; @@ -40886,7 +40891,16 @@ BEGIN START TRANSACTION; - UPDATE ticket t + IF (SELECT addressFk FROM ticket WHERE id = vTicketFk) <> vAddressFk THEN + + UPDATE ticket t + JOIN address a ON a.id = vAddressFk + SET t.nickname = a.nickname + WHERE t.id = vTicketFk; + + END IF; + + UPDATE ticket t SET t.clientFk = vClientFk, t.agencyModeFk = vAgencyModeFk, @@ -41112,6 +41126,103 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticketCreateWithoutZone` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticketCreateWithoutZone`( + vClientId INT + ,vShipped DATE + ,vWarehouseFk INT + ,vCompanyFk INT + ,vAddressFk INT + ,vAgencyModeFk INT + ,vRouteFk INT + ,vlanded DATE + ,vUserId INT + ,OUT vNewTicket INT) +BEGIN + + DECLARE vZoneFk INT; + + IF vClientId IS NULL THEN + CALL util.throw ('CLIENT_NOT_ESPECIFIED'); + END IF; + + IF NOT vAddressFk OR vAddressFk IS NULL THEN + SELECT id INTO vAddressFk + FROM address + WHERE clientFk = vClientId AND isDefaultAddress; + END IF; + + IF NOT vAgencyModeFk OR vAgencyModeFk IS NULL THEN + SELECT agencyModeFk INTO vAgencyModeFk + FROM address + WHERE clientFk = vClientId AND isDefaultAddress; + END IF; + + CALL vn.zoneGetShippedWarehouse(vlanded, vAddressFk, vAgencyModeFk); + + SELECT id INTO vZoneFk FROM tmp.zoneGetShipped + WHERE shipped = vShipped AND warehouseFk = vWarehouseFk LIMIT 1; + + INSERT INTO vn2008.Tickets ( + Id_Cliente, + Fecha, + Id_Consigna, + Id_Agencia, + Alias, + warehouse_id, + Id_Ruta, + empresa_id, + landing, + zoneFk + ) + SELECT + vClientId, + vShipped, + a.id, + IF(vAgencyModeFk, vAgencyModeFk, a.agencyModeFk), + a.nickname, + vWarehouseFk, + IF(vRouteFk,vRouteFk,NULL), + vCompanyFk, + vlanded, + vZoneFk + FROM address a + JOIN agencyMode am ON am.id = a.agencyModeFk + WHERE a.id = vAddressFk; + + SET vNewTicket = LAST_INSERT_ID(); + + INSERT INTO ticketObservation(ticketFk, observationTypeFk, description) + SELECT vNewTicket, ao.observationTypeFk, ao.description + FROM addressObservation ao + JOIN address a ON a.id = ao.addressFk + WHERE a.id = vAddressFk; + + -- CALL logAddWithUser(vNewTicket, vUserId, 'insert', 'ticket', CONCAT('Ha creado el ticket', ' ', vNewTicket)); + INSERT INTO vn.ticketLog + SET originFk = vNewTicket, userFk = vUserId, `action` = 'insert', description = CONCAT('Ha creado el ticket:', ' ', vNewTicket); + + IF (SELECT ct.isCreatedAsServed FROM vn.clientType ct JOIN vn.client c ON c.typeFk = ct.code WHERE c.id = vClientId ) <> FALSE THEN + INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador) + SELECT id, vNewTicket, getWorker() + FROM state + WHERE `code` = 'DELIVERED'; + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `ticketCreateWithUser` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -41297,6 +41408,153 @@ BEGIN JOIN vn.client c ON c.id = tp.clientFk; + INSERT INTO tmp.ticketProblems(ticketFk, isFreezed) + SELECT DISTINCT tl.ticketFk, 1 + FROM tmp.ticketList tl + JOIN vn.client c ON c.id = tl.clientFk + WHERE c.isFreezed; + + DROP TEMPORARY TABLE IF EXISTS tmp.clientGetDebt; + CREATE TEMPORARY TABLE tmp.clientGetDebt + (PRIMARY KEY (clientFk)) + ENGINE = MEMORY + SELECT DISTINCT clientFk + FROM tmp.ticketList; + + CALL clientGetDebt(CURDATE()); + + + INSERT INTO tmp.ticketProblems(ticketFk, risk) + SELECT DISTINCT tl.ticketFk, r.risk + FROM tmp.ticketList tl + JOIN vn.ticket t ON t.id = tl.ticketFk + JOIN vn.agencyMode a ON t.agencyModeFk = a.id + JOIN tmp.risk r ON r.clientFk = t.clientFk + JOIN vn.client c ON c.id = t.clientFk + WHERE r.risk > c.credit + 10 + AND a.deliveryMethodFk != 3 + ON DUPLICATE KEY UPDATE + risk = r.risk; + + INSERT INTO tmp.ticketProblems(ticketFk, hasTicketRequest) + SELECT DISTINCT tl.ticketFk, 1 + FROM tmp.ticketList tl + JOIN vn.ticketRequest tr ON tr.ticketFk = tl.ticketFk + WHERE tr.isOK IS NULL + ON DUPLICATE KEY UPDATE + hasTicketRequest = 1; + + OPEN vCursor; + + WHILE NOT vDone + DO + FETCH vCursor INTO vWarehouse, vDate; + + CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouse); + CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouse, vDate); + + + INSERT INTO tmp.ticketProblems(ticketFk, isAvailable) + SELECT tl.ticketFk, 0 + FROM tmp.ticketList tl + JOIN vn.ticket t ON t.id = tl.ticketFk + LEFT JOIN vn.sale s ON s.ticketFk = t.id + JOIN vn.item i ON i.id = s.itemFk + JOIN vn.itemType it on it.id = i.typeFk + LEFT JOIN cache.available av ON av.item_id = i.id + AND av.calc_id = vAvailableCache + WHERE date(t.shipped) = vDate + AND categoryFk != 6 + AND IFNULL(av.available, 0) < 0 + AND s.isPicked = FALSE + AND NOT i.generic + AND vWarehouse = t.warehouseFk + GROUP BY tl.ticketFk + ON DUPLICATE KEY UPDATE + isAvailable = 0; + + INSERT INTO tmp.ticketProblems(ticketFk, isAvailable) + SELECT tl.ticketFk, 0 + FROM tmp.ticketList tl + JOIN vn.ticket t ON t.id = tl.ticketFk + LEFT JOIN vn.sale s ON s.ticketFk = t.id + JOIN vn.item i ON i.id = s.itemFk + JOIN vn.itemType it on it.id = i.typeFk + LEFT JOIN cache.visible v ON i.id = v.item_id AND v.calc_id = vVisibleCache + LEFT JOIN cache.available av ON av.item_id = i.id AND av.calc_id = vAvailableCache + WHERE IFNULL(av.available, 0) >= 0 + AND s.quantity > IFNULL(v.visible, 0) + AND s.isPicked = FALSE + AND s.reserved = FALSE + AND it.categoryFk != 6 + AND date(t.shipped) = vDate + AND NOT i.generic + AND CURDATE() = vDate + AND t.warehouseFk = vWarehouse + GROUP BY tl.ticketFk + ON DUPLICATE KEY UPDATE + isAvailable = 0; + + END WHILE; + + CLOSE vCursor; + + SELECT * FROM tmp.ticketProblems; + + DROP TEMPORARY TABLE + tmp.clientGetDebt, + tmp.ticketList; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticketGetProblemskk` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticketGetProblemskk`() +BEGIN + + DECLARE vWarehouse INT; + DECLARE vDate DATE; + DECLARE vAvailableCache INT; + DECLARE vVisibleCache INT; + DECLARE vDone INT DEFAULT 0; + + DECLARE vCursor CURSOR FOR + SELECT DISTINCT tt.warehouseFk, date(tt.shipped) + FROM tmp.ticketGetProblems tt + WHERE DATE(tt.shipped) BETWEEN CURDATE() + AND TIMESTAMPADD(DAY, 1.9, CURDATE()); + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketProblems; + CREATE TEMPORARY TABLE tmp.ticketProblems ( + ticketFk INT(11) PRIMARY KEY, + isFreezed INTEGER(1) DEFAULT 0, + risk DECIMAL(10,2) DEFAULT 0, + hasTicketRequest INTEGER(1) DEFAULT 0, + isAvailable INTEGER(1) DEFAULT 1 + ) ENGINE = MEMORY; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketList; + CREATE TEMPORARY TABLE tmp.ticketList + (PRIMARY KEY (ticketFk)) + ENGINE = MEMORY + SELECT tp.ticketFk, c.id clientFk + FROM tmp.ticketGetProblems tp + JOIN vn.client c ON c.id = tp.clientFk; + + INSERT INTO tmp.ticketProblems(ticketFk, isFreezed) SELECT DISTINCT tl.ticketFk, 1 FROM tmp.ticketList tl @@ -41905,7 +42163,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `ticketShippingFillLabel` */; +/*!50003 DROP PROCEDURE IF EXISTS `ticketShippingFillLabelKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -41915,9 +42173,10 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `ticketShippingFillLabel`(vTicketFk INT) +CREATE DEFINER=`root`@`%` PROCEDURE `ticketShippingFillLabelKk`(vTicketFk INT) BEGIN - /* Prepara el origen de datos para la etiqueta amarilla de preparacion previa + /* JGF 2019-06-12 A + * ahora el codigo esta en el tpv, ya no es un procedimiento, es un select * */ DECLARE vCalcFk INT; @@ -42285,9 +42544,9 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; @@ -42310,7 +42569,6 @@ BEGIN JOIN vn.ticket t on t.id = s.ticketFk JOIN bi.rotacion r ON r.Id_Article = s.itemFk AND r.warehouse_id = t.warehouseFk WHERE ic.merchandise - AND ic.id < 6 AND t.shipped BETWEEN vDateStart AND vDateEnd GROUP BY s.ticketFk; END ;; @@ -42319,6 +42577,45 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticketVolumeByDate_ventas` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticketVolumeByDate_ventas`(vDate DATE) +BEGIN + + DECLARE vDateStart DATETIME DEFAULT DATE(vDate); + DECLARE vDateEnd DATETIME DEFAULT util.dayEnd(vDate); + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketVolumeByDate; + + CREATE TEMPORARY TABLE tmp.ticketVolumeByDate + ENGINE = MEMORY + SELECT s.ticketFk, + CAST(SUM(r.cm3 * s.quantity) / 1000000 AS DECIMAL(10,2)) as m3 + FROM sale s + JOIN bs.ventas v ON v.Id_Movimiento = s.id + JOIN vn.item i ON i.id = s.itemFk + JOIN vn.itemType it ON it.id = i.typeFk + JOIN vn.itemCategory ic ON ic.id = it.categoryFk + JOIN vn.ticket t on t.id = s.ticketFk + JOIN bi.rotacion r ON r.Id_Article = s.itemFk AND r.warehouse_id = t.warehouseFk + WHERE ic.merchandise + AND t.shipped BETWEEN vDateStart AND vDateEnd + AND it.name NOT IN ('Accesorios Funerarios','Composiciones planta','Composición bajo pedido','Coronas y centros') + GROUP BY s.ticketFk; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `ticket_Clone` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -42364,6 +42661,229 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticket_componentPreview` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticket_componentPreview`( + vTicketFk INT, + vLanded DATE, + vAddressFk INT, + vZoneFk INT, + vWarehouseFk SMALLINT) +BEGIN +/** + * Calcula los componentes de los articulos de un ticket + * + * @param vTicketFk id del ticket + * @param vLanded nueva fecha de entrega + * @param vAddressFk nuevo consignatario + * @param vZoneFk nueva zona + * @param vWarehouseFk nuevo warehouse + * + * @return tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost) + */ + DECLARE vShipped DATE; + DECLARE vBuyOrderItem INT DEFAULT 100; + + DECLARE vHasDataChanged BOOL DEFAULT FALSE; + DECLARE vHasAddressChanged BOOL; + DECLARE vHasZoneChanged BOOL DEFAULT FALSE; + DECLARE vHasWarehouseChanged BOOL DEFAULT FALSE; + + DECLARE vAddressTypeRateFk INT DEFAULT NULL; + DECLARE vAgencyModeTypeRateFk INT DEFAULT NULL; + + DECLARE vHasChangeAll BOOL DEFAULT FALSE; + + SELECT DATE(landed) <> vLanded, + addressFk <> vAddressFk, + zoneFk <> vZoneFk, + warehouseFk <> vWarehouseFk + INTO + vHasDataChanged, + vHasAddressChanged, + vHasZoneChanged, + vHasWarehouseChanged + FROM vn.ticket t + WHERE t.id = vTicketFk; + + IF vHasDataChanged OR vHasWarehouseChanged THEN + SET vHasChangeAll = TRUE; + END IF; + + IF vHasAddressChanged THEN + SET vAddressTypeRateFk = 5; + END IF; + + IF vHasZoneChanged THEN + SET vAgencyModeTypeRateFk = 6; + END IF; + + SELECT TIMESTAMPADD(DAY, -travelingDays, vLanded) INTO vShipped + FROM zone + WHERE id = vZoneFk; + + CALL buyUltimate(vWarehouseFk, vShipped); + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot; + CREATE TEMPORARY TABLE tmp.ticketLot ENGINE = MEMORY ( + SELECT + vWarehouseFk AS warehouseFk, + NULL AS available, + s.itemFk, + bu.buyFk + FROM sale s + LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk + WHERE s.ticketFk = vTicketFk + AND s.itemFk != vBuyOrderItem + GROUP BY bu.warehouseFk, bu.itemFk); + + CALL catalog_componentCalculate(vZoneFk, vAddressFk, vShipped); + + REPLACE INTO tmp.ticketComponent (warehouseFk, itemFk, componentFk, cost) + SELECT t.warehouseFk, s.itemFk, sc.componentFk, sc.value + FROM saleComponent sc + JOIN sale s ON s.id = sc.saleFk + JOIN ticket t ON t.id = s.ticketFk + JOIN componentRate cr ON cr.id = sc.componentFk + WHERE s.ticketFk = vTicketFk + AND (cr.isRenewable = FALSE + OR + (NOT vHasChangeAll + AND (NOT (cr.componentTypeRate <=> vAddressTypeRateFk + OR cr.componentTypeRate <=> vAgencyModeTypeRateFk)))); + + SET @shipped = vShipped; + + DROP TEMPORARY TABLE + tmp.buyUltimate, + tmp.ticketLot; + + IF IFNULL(vShipped, CURDATE() - 1) < CURDATE() THEN + CALL util.throw('NO_AGENCY_AVAILABLE'); + END IF; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticket_getTax` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticket_getTax`(vTaxArea VARCHAR(25)) + READS SQL DATA +BEGIN +/** + * Calcula la base imponible, el IVA y el recargo de equivalencia para + * un conjunto de tickets. + * + * @table tmp.ticket(ticketFk) Identificadores de los tickets a calcular + * @return tmp.ticketAmount + * @return tmp.ticketTax Impuesto desglosado para cada ticket. + */ + DROP TEMPORARY TABLE IF EXISTS tmp.addressCompany; + CREATE TEMPORARY TABLE tmp.addressCompany + (INDEX (addressFk, companyFk)) + ENGINE = MEMORY + SELECT DISTINCT t.addressFk, t.companyFk + FROM tmp.ticket tmpTicket + JOIN ticket t ON t.id = tmpTicket.ticketFk; + + CALL addressTaxArea (); + + IF vTaxArea > '' THEN + UPDATE tmp.addressTaxArea + SET areaFk = vTaxArea; + END IF; + /** Solo se calcula la base imponible (taxableBase) y el impuesto se calculará posteriormente + * No se debería cambiar el sistema por problemas con los decimales + */ + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketTax; + CREATE TEMPORARY TABLE tmp.ticketTax + (INDEX (ticketFk)) + ENGINE = MEMORY + SELECT tmpTicket.ticketFk, + bp.pgcFk, + SUM(s.quantity * s.price * (100 - s.discount)/100 ) AS taxableBase, + pgc.rate, + tc.code + FROM tmp.ticket tmpTicket + JOIN sale s ON s.ticketFk = tmpTicket.ticketFk + JOIN item i ON i.id = s.itemFk + JOIN ticket t ON t.id = tmpTicket.ticketFk + JOIN supplier su ON su.id = t.companyFk + JOIN tmp.addressTaxArea ata + ON ata.addressFk = t.addressFk AND ata.companyFk = t.companyFk + JOIN itemTaxCountry itc + ON itc.itemFk = i.id AND itc.countryFk = su.countryFk + JOIN bookingPlanner bp + ON bp.countryFk = su.countryFk + AND bp.taxAreaFk = ata.areaFk + AND bp.taxClassFk = itc.taxClassFk + JOIN pgc ON pgc.code = bp.pgcFk + JOIN taxClass tc ON tc.id = bp.taxClassFk + GROUP BY tmpTicket.ticketFk, pgc.code,pgc.rate + HAVING taxableBase != 0; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketServiceTax; + CREATE TEMPORARY TABLE tmp.ticketServiceTax + (INDEX (ticketFk)) + ENGINE = MEMORY + SELECT tt.ticketFk, + SUM(ts.quantity * ts.price) AS taxableBase, + pgc.rate, + tc.code + FROM tmp.ticketTax tt + JOIN ticketService ts ON ts.ticketFk = tt.ticketFk + JOIN ticket t ON t.id = tt.ticketFk + JOIN supplier su ON su.id = t.companyFk + JOIN tmp.addressTaxArea ata + ON ata.addressFk = t.addressFk AND ata.companyFk = t.companyFk + JOIN bookingPlanner bp + ON bp.countryFk = su.countryFk + AND bp.taxAreaFk = ata.areaFk + AND bp.taxClassFk = ts.taxClassFk + JOIN pgc ON pgc.code = bp.pgcFk AND pgc.rate = tt.rate + JOIN taxClass tc ON tc.id = bp.taxClassFk + GROUP BY tt.ticketFk, tt.code,tt.rate + HAVING taxableBase != 0; + + UPDATE tmp.ticketTax tt + JOIN tmp.ticketServiceTax ts ON tt.ticketFk = ts.ticketFk AND tt.code = ts.code AND tt.rate = ts.rate + SET tt.taxableBase = tt.taxableBase + ts.taxableBase; + + DROP TEMPORARY TABLE IF EXISTS tmp.ticketAmount; + CREATE TEMPORARY TABLE tmp.ticketAmount + (INDEX (ticketFk)) + ENGINE = MEMORY + SELECT ticketFk, taxableBase, SUM(CAST(taxableBase * rate / 100 AS DECIMAL(10, 2))) tax,code + FROM tmp.ticketTax + GROUP BY ticketFk, code; + + DROP TEMPORARY TABLE IF EXISTS tmp.addressCompany; + DROP TEMPORARY TABLE IF EXISTS tmp.addressTaxArea; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `ticket_insertZone` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -42384,7 +42904,7 @@ BEGIN DECLARE vWarehouseFk INT; DECLARE vCursor CURSOR FOR SELECT id, landed, addressFk, agencyModeFk, warehouseFk - FROM vn.ticket WHERE shipped >= CURDATE() AND zoneFk IS NULL; + FROM vn.ticket WHERE shipped >= '2019-06-01' AND zoneFk IS NULL; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET vDone = 1; OPEN vCursor; @@ -42404,6 +42924,47 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `ticket_insertZoneKk` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `ticket_insertZoneKk`() +BEGIN + DECLARE vDone INT DEFAULT 0; + DECLARE vFechedTicket INT; + DECLARE vLanded DATE; + DECLARE vAddressFk INT; + DECLARE vAgencyModeFk INT; + DECLARE vWarehouseFk INT; + DECLARE vCursor CURSOR FOR + SELECT id, landed, addressFk, agencyModeFk, warehouseFk + FROM vn.ticket WHERE zoneFk IN (230,221,207,101,94); + DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET vDone = 1; + + OPEN vCursor; + + REPEAT + FETCH vCursor INTO vFechedTicket, vLanded, vAddressFk, vAgencyModeFk, vWarehouseFk; + CALL zoneGetShippedWarehouse(vLanded, vAddressFk, vAgencyModeFk); + UPDATE vn.ticket + SET zoneFk = (SELECT id FROM tmp.zoneGetShipped WHERE warehouseFk = vWarehouseFk) + WHERE id = vFechedTicket; + + UNTIL vDone END REPEAT; + DROP TEMPORARY TABLE tmp.zoneGetShipped; + CLOSE vCursor; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `ticket_recalcComponents` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -42487,6 +43048,103 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `timeBusiness_calculate` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `timeBusiness_calculate`(vDatedFrom DATETIME, vDatedTo DATETIME) +BEGIN + +/** + * Horas que debe trabajar un empleado según contrato y día. + * Se tendra en cuenta si tiene un horario especificado o si tiene vacaciones + * @param vDatedFrom workerTimeControl + * @param vDatedTo workerTimeControl + * @table tmp.user(userFk) + * @return tmp.timeControlCalculate + */ + + DROP TEMPORARY TABLE IF EXISTS tmp.timeBusinessCalculate; + DROP TEMPORARY TABLE IF EXISTS tmp.workerHasNotCalendar; + + CREATE TEMPORARY TABLE tmp.timeBusinessCalculate + SELECT dated, + business_id, + userFk, + departmentFk, + hourStart, + hourEnd, + timeWorkSeconds, + SEC_TO_TIME(timeWorkSeconds) timeWorkSexagesimal, + timeWorkSeconds / 3600 timeWorkDecimal, + type, + hoursWeek + FROM(SELECT t.dated, + b.business_id, + w.userFk, + bl.department_id departmentFk, + GROUP_CONCAT(DISTINCT LEFT(j.start,2) ORDER BY j.start ASC SEPARATOR '-') hourStart , + GROUP_CONCAT(DISTINCT LEFT(j.end,2) ORDER BY j.end ASC SEPARATOR '-') hourEnd, + IFNULL(SUM(TIME_TO_SEC(j.end)) - SUM(TIME_TO_SEC(j.start)),0) timeWorkSeconds, + cs.type, + cl.hours_week hoursWeek + FROM vn.time t + LEFT JOIN postgresql.business b ON t.dated BETWEEN b.date_start AND ifnull(b.date_end, vDatedTo ) + LEFT JOIN postgresql.profile AS pr ON b.client_id = pr.profile_id + LEFT JOIN postgresql.person AS p ON pr.person_id = p.person_id + LEFT JOIN vn.worker AS w ON p.id_trabajador = w.id + JOIN tmp.`user` u ON u.userFK = w.userFK + JOIN postgresql.business_labour AS bl ON b.business_id = bl.business_id + LEFT JOIN postgresql.business_labour_payroll AS bp ON bl.business_id = bp.business_id + LEFT JOIN postgresql.professional_category AS pc ON bl.professional_category_id = pc.professional_category_id + LEFT JOIN postgresql.workcenter AS wc ON bl.workcenter_id = wc.workcenter_id + LEFT JOIN postgresql.calendar_labour_type AS cl ON bl.calendar_labour_type_id = cl.calendar_labour_type_id + LEFT JOIN postgresql.journey AS j ON j.business_id = b.business_id and j.day_id=WEEKDAY(t.dated)+1 + LEFT JOIN postgresql.calendar_employee ce ON ce.business_id=b.business_id and ce.date = t.dated + LEFT JOIN postgresql.calendar_state cs ON cs.calendar_state_id = ce.calendar_state_id + WHERE t.dated BETWEEN vDatedFrom AND vDatedTo + GROUP BY w.userFk,dated + )sub; + + CREATE TEMPORARY TABLE tmp.workerHasNotCalendar + SELECT userFK,hoursWeek + FROM tmp.timeBusinessCalculate + GROUP BY userFK + HAVING SUM(timeWorkSeconds)=0; + + UPDATE tmp.timeBusinessCalculate t, tmp.workerHasNotCalendar w + SET t.timeWorkSeconds = w.hoursweek / 5 * 3600, + t.timeWorkSexagesimal = SEC_TO_TIME( w.hoursweek / 5 * 3600), + t.timeWorkDecimal = w.hoursweek / 5 + WHERE DAYOFWEEK(t.dated) IN(2,3,4,5,6) AND t.userFk= w.userFk; + + + UPDATE tmp.timeBusinessCalculate t + SET t.timeWorkSeconds = 0, + t.timeWorkSexagesimal = 0, + t.timeWorkDecimal = 0 + WHERE type IN ('Vacaciones','Festivo','Baja enfermedad común','Baja mutua','Permiso retribuido'); + + UPDATE tmp.timeBusinessCalculate t + SET t.timeWorkSeconds = t.timeWorkSeconds/2, + t.timeWorkSexagesimal = SEC_TO_TIME(t.timeWorkSeconds/2), + t.timeWorkDecimal = t.timeWorkDecimal/2 + WHERE type = 'Vacaciones 1/2 día'; + + DROP TEMPORARY TABLE tmp.workerHasNotCalendar; + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `timeControl_calculate` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -43038,9 +43696,9 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; @@ -43055,6 +43713,7 @@ BEGIN p.name, p.firstname, d.name AS department, + d.department_id as departmentFk, b.date_start, d.production, CAST(12 * blp.importepactado / clt.hours_week / 52 AS DECIMAL(10,2)) as costeHora @@ -43070,7 +43729,7 @@ BEGIN WHERE b.date_start <= vDate AND IFNULL(b.date_end,'3000-01-01') > vDate ; - -- SELECT * FROM tmp.workerDepartmentByDate; + -- SELECT * FROM tmp.workerDepartmentByDate; END ;; DELIMITER ; @@ -43792,6 +44451,83 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `zoneAddPostcode` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `zoneAddPostcode`() +BEGIN +/** + * Añade un código postal a una población y regenera el arbol de zonas. + * + * @table tmp.postcode(postcode, townFk) Codigo postal a añadir e id poblacion + */ + + DECLARE vDone BOOL; + DECLARE vParent INT DEFAULT 1; + DECLARE vTownFk INT; + DECLARE vPostCode VARCHAR(100); + + DECLARE townCur CURSOR FOR + SELECT t.geoFk, t.id, tt.`code` + FROM tmp.postcode tt + JOIN vn.town t ON t.id = tt.townFk + ORDER BY t.geoFk, t.`name`; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE; + DECLARE CONTINUE HANDLER FOR 1062 SET vDone = TRUE; + + -- Remove existing postCodes from zoneGeo + DELETE zg, pc FROM tmp.postcode tpc + JOIN vn.postCode pc ON pc.code = tpc.code + AND pc.townFk = tpc.townFK + JOIN vn.zoneGeo zg ON zg.id = pc.geoFk; + + -- > Town cursor start + OPEN townCur; + + townLoop: LOOP + SET vDone = FALSE; + + FETCH townCur INTO vParent, vTownFk, vPostCode; + + IF vDone THEN + LEAVE townLoop; + END IF; + + INSERT INTO `vn`.`postCode` (`code`, `townFk`) + VALUES (vPostCode, vTownFk); + + CALL nst.nodeAdd('vn', 'zoneGeo', vParent, vPostCode); + END LOOP; + CLOSE townCur; + -- < Town cursor end + + UPDATE tmp.postcode tt + JOIN vn.zoneGeo z ON z.name = tt.code + JOIN vn.postCode pc ON pc.code = tt.code + SET pc.geoFk = z.id + WHERE pc.geoFk IS NULL; + + DROP TEMPORARY TABLE IF EXISTS tmp.zoneGeo; + CREATE TEMPORARY TABLE tmp.zoneGeo + (id INT AUTO_INCREMENT PRIMARY KEY) + ENGINE = MEMORY + SELECT * FROM vn.zoneGeo; + + CALL vn.nestTree('tmp', 'zoneGeo', 'vn', 'zoneGeo'); +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `zoneGetAgency` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -43839,12 +44575,13 @@ BEGIN JOIN agencyMode am ON am.id = z.agencyModeFk WHERE zgSon.`name` LIKE vPostalCode AND zc.delivered = vLanded + AND TIMESTAMPADD(DAY,-z.travelingDays, vLanded) >= CURDATE() AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) - ORDER BY z.id, zgFather.depth DESC) t + ORDER BY z.id, zgFather.depth DESC, zi.isIncluded DESC) t GROUP BY zoneFk - HAVING isIncluded > 0) t + HAVING isIncluded > 0 + ORDER BY shipped) t GROUP BY agencyModeFk; - END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -43889,6 +44626,7 @@ BEGIN WHERE zgSon.`name` LIKE vPostalCode AND z.agencyModeFk = vAgencyModeFk AND z.warehouseFk = vWarehouseFk + AND TIMESTAMPADD(DAY,-z.travelingDays, zc.delivered) >= CURDATE() AND IF(TIMESTAMPADD(DAY,-z.travelingDays, zc.delivered) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) ORDER BY landed ASC, zgFather.depth DESC) t HAVING isIncluded > 0 LIMIT 1; @@ -43991,9 +44729,11 @@ BEGIN AND z.agencyModeFk = vAgencyModeFk AND z.warehouseFk = vWarehouseFk AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) - ORDER BY z.id, landed ASC, zgFather.depth DESC) t + ORDER BY z.id, zgFather.depth DESC, isIncluded DESC) t GROUP BY id - HAVING isIncluded > 0) t + HAVING isIncluded > 0 + ORDER BY shipped) + t GROUP BY agencyModeFk; END ;; DELIMITER ; @@ -44044,9 +44784,10 @@ BEGIN AND zc.delivered = vLanded AND z.agencyModeFk = vAgencyModeFk AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) - ORDER BY z.id, shipped ASC, zgFather.depth DESC) t + ORDER BY z.id, shipped ASC, zgFather.depth DESC, zi.isIncluded DESC) t GROUP BY warehouseFk, id - HAVING isIncluded > 0) t + HAVING isIncluded > 0 + ORDER BY shipped) t GROUP BY warehouseFk; END ;; DELIMITER ; @@ -44080,28 +44821,31 @@ BEGIN SELECT postalCode INTO vPostalCode FROM address WHERE id = vAddress; - SELECT * FROM ( - SELECT am.id, - am.name agencyMode, - am.description, - am.deliveryMethodFk, - TIMESTAMPADD(DAY,-z.travelingDays, vLanded) shipped, - z.warehouseFk, - zi.isIncluded - FROM zoneGeo zgSon - JOIN zoneGeo zgFather ON zgSon.lft BETWEEN zgFather.lft AND zgFather.rgt - JOIN zoneIncluded zi ON zi.geoFk = zgFather.id - JOIN zone z ON z.id = zi.zoneFk - JOIN zoneCalendar zc ON zc.zoneFk = z.id - JOIN agencyMode am ON am.id = z.agencyModeFk - WHERE zgSon.`name` LIKE vPostalCode - AND delivered = vLanded - AND z.warehouseFk = vWarehouse - AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) - ORDER BY zgFather.depth DESC) t - GROUP BY id - HAVING isIncluded > 0; + SELECT * FROM ( + SELECT am.id agencyModeFk, + am.name agencyMode, + am.description, + am.deliveryMethodFk, + TIMESTAMPADD(DAY,-z.travelingDays, vLanded) shipped, + z.warehouseFk, + zi.isIncluded, + z.id zoneFk + FROM zoneGeo zgSon + JOIN zoneGeo zgFather ON zgSon.lft BETWEEN zgFather.lft AND zgFather.rgt + JOIN zoneIncluded zi ON zi.geoFk = zgFather.id + JOIN zone z ON z.id = zi.zoneFk + JOIN zoneCalendar zc ON zc.zoneFk = z.id + JOIN agencyMode am ON am.id = z.agencyModeFk + WHERE zgSon.`name` LIKE vPostalCode + AND delivered = vLanded + AND z.warehouseFk = vWarehouse + AND IF(TIMESTAMPADD(DAY,-z.travelingDays, vLanded) = CURDATE(), hour(now()) < hour(z.`hour`),TRUE) + ORDER BY z.id, zgFather.depth DESC) t + GROUP BY zoneFk + HAVING isIncluded > 0 + ORDER BY shipped) t + GROUP BY agencyModeFk; END ;; DELIMITER ; @@ -44130,7 +44874,7 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp.country; CREATE TEMPORARY TABLE tmp.country SELECT id FROM country - WHERE country IN('España exento'); + WHERE country IN('Italia'); CALL vn.zoneNestCountry(); CALL vn.zoneNestProvince(); @@ -44500,7 +45244,7 @@ CREATE TABLE `Agencias` ( PRIMARY KEY (`Id_Agencia`), KEY `Agencias` (`Agencia`), KEY `Vista` (`Vista`) -) ENGINE=InnoDB AUTO_INCREMENT=1226 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1227 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -44639,7 +45383,7 @@ CREATE TABLE `Articles` ( CONSTRAINT `Articles_ibfk_5` FOREIGN KEY (`tipo_id`) REFERENCES `Tipos` (`tipo_id`) ON UPDATE CASCADE, CONSTRAINT `expenceFk` FOREIGN KEY (`expenceFk`) REFERENCES `Gastos` (`Id_Gasto`) ON UPDATE CASCADE, CONSTRAINT `producer_id` FOREIGN KEY (`producer_id`) REFERENCES `producer` (`producer_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=352049 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=356331 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -44857,7 +45601,7 @@ CREATE TABLE `Articles_dits` ( KEY `fgkey1_idx` (`idaccion_dits`), KEY `fgkey2_idx` (`Id_Ticket`), KEY `fgkey3_idx` (`Id_Trabajador`) -) ENGINE=InnoDB AUTO_INCREMENT=21432 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=21433 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -44880,7 +45624,7 @@ CREATE TABLE `Articles_nicho` ( KEY `Articles_nicho_wh_fk` (`warehouse_id`), CONSTRAINT `Articles_nicho_wh_fk` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `Articles_nichos_fk` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=791578 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=815746 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -45006,7 +45750,7 @@ CREATE TABLE `Cajas` ( KEY `warehouse_id` (`warehouse_id`), KEY `fk_Cajas_Proveedores_account1_idx` (`Proveedores_account_Id`), CONSTRAINT `Cajas_ibfk_2` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=693289 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=701382 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -45138,7 +45882,7 @@ CREATE TABLE `Clientes` ( CONSTRAINT `canal_nuevo_cliente` FOREIGN KEY (`chanel_id`) REFERENCES `chanel` (`chanel_id`) ON UPDATE CASCADE, CONSTRAINT `tipos_de_cliente` FOREIGN KEY (`clientes_tipo_id`) REFERENCES `clientes_tipo` (`clientes_tipo_id`) ON UPDATE CASCADE, CONSTRAINT `typeFk` FOREIGN KEY (`typeFk`) REFERENCES `clientes_tipo` (`code`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=15883 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=16026 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -45295,7 +46039,7 @@ CREATE TABLE `Clientes_cedidos` ( CONSTRAINT `cliente_cedido_fk` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `new_trabajador_fk` FOREIGN KEY (`Id_Trabajador_new`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `trabajador_fk` FOREIGN KEY (`Id_Trabajador_old`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Clientes que se han cambiado de comercial, pero durante un tiempo comisionan a los dos, al anterior y al actual'; +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Clientes que se han cambiado de comercial, pero durante un tiempo comisionan a los dos, al anterior y al actual'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -45413,7 +46157,7 @@ CREATE TABLE `Colas` ( KEY `Id_Trabajador` (`Id_Trabajador`), CONSTRAINT `Colas_ibfk_3` FOREIGN KEY (`Id_Prioridad`) REFERENCES `Prioridades` (`Id_Prioridad`) ON UPDATE CASCADE, CONSTRAINT `Colas_ibfk_4` FOREIGN KEY (`Id_Impresora`) REFERENCES `Impresoras` (`Id_Impresora`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=18010 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=20850 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -45567,7 +46311,7 @@ CREATE TABLE `Consignatarios` ( CONSTRAINT `Consignatarios_ibfk_3` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON UPDATE CASCADE, CONSTRAINT `Consignatarios_ibfk_4` FOREIGN KEY (`Id_Agencia`) REFERENCES `Agencias` (`Id_Agencia`) ON UPDATE CASCADE, CONSTRAINT `address_customer_id` FOREIGN KEY (`Id_cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=27912 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=28210 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -45695,7 +46439,7 @@ CREATE TABLE `Contactos` ( PRIMARY KEY (`Id_Contacto`), KEY `Telefono` (`Telefono`), KEY `Movil` (`Movil`) -) ENGINE=InnoDB AUTO_INCREMENT=2709 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2719 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -45922,7 +46666,7 @@ CREATE TABLE `Entradas_dits` ( CONSTRAINT `Entradas_dits_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `vn`.`entry` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fgkey_entradas_1` FOREIGN KEY (`idaccion_dits`) REFERENCES `accion_dits` (`idaccion_dits`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `fgkey_entradas_3` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3604893 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3658182 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -45940,7 +46684,7 @@ CREATE TABLE `Entradas_kop` ( PRIMARY KEY (`Id_Entradas_kop`), KEY `entradas_entradas_kop_idx` (`Id_Entrada`), CONSTRAINT `entradas_entradas_kop` FOREIGN KEY (`Id_Entrada`) REFERENCES `vn`.`entry` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Relaciona las entradas con los origenes de compra'; +) ENGINE=InnoDB AUTO_INCREMENT=107 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Relaciona las entradas con los origenes de compra'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -46028,7 +46772,7 @@ CREATE TABLE `Equipos` ( PRIMARY KEY (`id`), KEY `trabajador_id` (`trabajador_id`), CONSTRAINT `Equipos_ibfk_1` FOREIGN KEY (`trabajador_id`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=210 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=214 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -46184,7 +46928,7 @@ CREATE TABLE `Facturas` ( CONSTRAINT `Facturas_ibfk_4` FOREIGN KEY (`cplusTaxBreakFk`) REFERENCES `vn`.`cplusTaxBreak` (`id`) ON UPDATE CASCADE, CONSTRAINT `invoice_bank_id` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE, CONSTRAINT `invoice_customer_id` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=501941 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=505772 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -46363,7 +47107,7 @@ CREATE TABLE `Greuges` ( KEY `Id_Ticket_Greuge_Ticket_idx` (`Id_Ticket`), CONSTRAINT `Id_Ticket_Greuge_Ticket` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `greuges_type_fk` FOREIGN KEY (`Greuges_type_id`) REFERENCES `Greuges_type` (`Greuges_type_id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3397252 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT; +) ENGINE=InnoDB AUTO_INCREMENT=3477560 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=COMPACT; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -46564,7 +47308,7 @@ CREATE TABLE `Movimientos` ( KEY `itemFk_ticketFk` (`Id_Article`,`Id_Ticket`), CONSTRAINT `Movimientos_ibfk_1` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON UPDATE CASCADE, CONSTRAINT `movement_ticket_id` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=24724776 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=24994828 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -46734,7 +47478,7 @@ CREATE TABLE `Movimientos_mark` ( KEY `Id_Movimiento` (`Id_Movimiento`), KEY `fgnStateFk_idx` (`stateFk`), CONSTRAINT `fgnStateFk` FOREIGN KEY (`stateFk`) REFERENCES `state` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=17009960 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=17669475 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -46839,7 +47583,7 @@ CREATE TABLE `Ordenes` ( CONSTRAINT `fgnAtender` FOREIGN KEY (`atenderFk`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE, CONSTRAINT `fgnRequester` FOREIGN KEY (`requesterFk`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE, CONSTRAINT `fgnTicket` FOREIGN KEY (`ticketFk`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=44656 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=45807 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -46943,7 +47687,7 @@ CREATE TABLE `Pagares` ( KEY `empresa_id` (`kk_empresa_id`), KEY `pago_id` (`pago_id`), CONSTRAINT `Pagares_ibfk_2` FOREIGN KEY (`pago_id`) REFERENCES `pago` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2872 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2875 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -46963,6 +47707,7 @@ CREATE TABLE `Paises` ( `nst_geo_id` int(11) DEFAULT NULL, `nst_name` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL, `geoFk` int(11) DEFAULT NULL, + `hasDailyInvoice` tinyint(4) NOT NULL DEFAULT '0', `isUeeMember` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`Id`), KEY `Id_Paisreal` (`Id_Paisreal`) @@ -47069,7 +47814,7 @@ CREATE TABLE `Proveedores` ( CONSTRAINT `pay_dem_id` FOREIGN KEY (`pay_dem_id`) REFERENCES `pay_dem` (`id`) ON UPDATE CASCADE, CONSTRAINT `pay_met_id` FOREIGN KEY (`pay_met_id`) REFERENCES `pay_met` (`id`) ON UPDATE CASCADE, CONSTRAINT `province_id` FOREIGN KEY (`province_id`) REFERENCES `province` (`province_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2784 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2807 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47095,7 +47840,7 @@ CREATE TABLE `Proveedores_account` ( KEY `fk_Proveedores_account_entity1_idx` (`entity_id`), KEY `fk_banco_prov_account_idx` (`Id_Banco`), CONSTRAINT `fk_banco_prov_account` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=790 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=804 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47185,10 +47930,11 @@ CREATE TABLE `Recibos` ( KEY `Id_Trabajador` (`Id_Trabajador`), KEY `empresa_id` (`empresa_id`), KEY `clientDate` (`Id_Cliente`,`Fechacobro`), + KEY `id_factura` (`Id_Factura`), CONSTRAINT `Recibos_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE, CONSTRAINT `Recibos_ibfk_2` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE, CONSTRAINT `recibo_customer_id` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=568547 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=575388 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -47279,7 +48025,7 @@ CREATE TABLE `Relaciones` ( KEY `Id_Contacto` (`Id_Contacto`), KEY `Id_Proveedor` (`Id_Proveedor`), KEY `Id_Cliente` (`Id_Cliente`) -) ENGINE=InnoDB AUTO_INCREMENT=2710 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2723 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47299,7 +48045,7 @@ CREATE TABLE `Remesas` ( KEY `empresa_id` (`empresa_id`), CONSTRAINT `Remesas_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE, CONSTRAINT `Remesas_ibfk_2` FOREIGN KEY (`Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1284 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1296 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47324,7 +48070,7 @@ CREATE TABLE `Reservas` ( PRIMARY KEY (`Id_Reserva`), KEY `Id_1` (`Id_Ticket`), KEY `Id_Article` (`Id_Article`) -) ENGINE=InnoDB AUTO_INCREMENT=192 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=377 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47355,7 +48101,7 @@ CREATE TABLE `Rutas` ( KEY `Fecha` (`Fecha`), KEY `gestdoc_id` (`gestdoc_id`), CONSTRAINT `Rutas_ibfk_1` FOREIGN KEY (`gestdoc_id`) REFERENCES `gestdoc` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=52839 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=53935 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -47439,7 +48185,7 @@ CREATE TABLE `Rutas_Master` ( PRIMARY KEY (`id`), KEY `fk_rutas_warehouse_id_idx` (`warehouse_id`), CONSTRAINT `fk_rutas_warehouse_id` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=109 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47530,7 +48276,7 @@ CREATE TABLE `Saldos_Prevision` ( KEY `empresa_prevision_idx` (`empresa_id`), CONSTRAINT `banco_prevision` FOREIGN KEY (`Id_Banco`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE, CONSTRAINT `empresa_prevision` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Aqui ponemos los gastos e ingresos pendientes de introducir '; +) ENGINE=InnoDB AUTO_INCREMENT=236 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Aqui ponemos los gastos e ingresos pendientes de introducir '; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47565,7 +48311,7 @@ CREATE TABLE `Split_lines` ( KEY `Id_Compra` (`Id_Compra`), CONSTRAINT `Id_Compra` FOREIGN KEY (`Id_Compra`) REFERENCES `vn`.`buy` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `Split_lines_ibfk_1` FOREIGN KEY (`Id_Split`) REFERENCES `Splits` (`Id_Split`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=354599 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=356443 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47583,7 +48329,7 @@ CREATE TABLE `Splits` ( `Notas` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`Id_Split`), KEY `Id_Entrada` (`Id_Entrada`) -) ENGINE=InnoDB AUTO_INCREMENT=36658 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=36721 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47663,14 +48409,16 @@ CREATE TABLE `Tickets` ( KEY `Id_Ruta` (`Id_Ruta`), KEY `warehouse_date` (`warehouse_id`,`Fecha`), KEY `Fecha` (`Fecha`,`Id_Cliente`), + KEY `tickets_zone_fk_idx` (`zoneFk`), CONSTRAINT `Tickets_ibfk_1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE, CONSTRAINT `Tickets_ibfk_5` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE, CONSTRAINT `Tickets_ibfk_6` FOREIGN KEY (`Id_Consigna`) REFERENCES `Consignatarios` (`id_consigna`) ON UPDATE CASCADE, CONSTRAINT `Tickets_ibfk_8` FOREIGN KEY (`Id_Agencia`) REFERENCES `Agencias` (`Id_Agencia`), CONSTRAINT `Tickets_ibfk_9` FOREIGN KEY (`Id_Ruta`) REFERENCES `Rutas` (`Id_Ruta`) ON UPDATE CASCADE, CONSTRAINT `ticket_customer_id` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE, - CONSTRAINT `tickets_fk10` FOREIGN KEY (`Factura`) REFERENCES `Facturas` (`Id_Factura`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2275791 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + CONSTRAINT `tickets_fk10` FOREIGN KEY (`Factura`) REFERENCES `Facturas` (`Id_Factura`) ON UPDATE CASCADE, + CONSTRAINT `tickets_zone_fk` FOREIGN KEY (`zoneFk`) REFERENCES `vn`.`zone` (`id`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=2308849 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -47818,7 +48566,7 @@ CREATE TABLE `Tickets_dits` ( CONSTRAINT `Tickets_dits_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `fgkey1` FOREIGN KEY (`idaccion_dits`) REFERENCES `accion_dits` (`idaccion_dits`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `fgkey3` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=64687971 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=64770285 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -47899,7 +48647,7 @@ CREATE TABLE `Tickets_turno` ( `weekDay` tinyint(1) DEFAULT NULL COMMENT 'funcion de mysql Lunes = 0, Domingo = 6', PRIMARY KEY (`Id_Ticket`), CONSTRAINT `Id_Ticket_fk` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2271089 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2297438 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -47969,7 +48717,7 @@ CREATE TABLE `Tipos` ( CONSTRAINT `Tipos_ibfk_2` FOREIGN KEY (`roleCodeFk`) REFERENCES `account`.`role` (`name`) ON UPDATE CASCADE, CONSTRAINT `Trabajador` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE, CONSTRAINT `warehouseFk5` FOREIGN KEY (`warehouseFk`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=269 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Protege la tabla tipos de updates para los 4 parámetros de los compradores, en funcion del valor del campo CodigoRojo de tblContadores.'; +) ENGINE=InnoDB AUTO_INCREMENT=276 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Protege la tabla tipos de updates para los 4 parámetros de los compradores, en funcion del valor del campo CodigoRojo de tblContadores.'; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -48055,9 +48803,11 @@ CREATE TABLE `Trabajadores` ( UNIQUE KEY `user_id_UNIQUE` (`user_id`), UNIQUE KEY `Id_Cliente_Interno` (`Id_Cliente_Interno`), KEY `sub` (`sub`), + KEY `boss_idx` (`boss`), + KEY `empresa_id` (`empresa_id`), CONSTRAINT `Clientes` FOREIGN KEY (`Id_Cliente_Interno`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE, CONSTRAINT `Trabajadores_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1318 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1339 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -48192,7 +48942,7 @@ CREATE TABLE `Vehiculos_consumo` ( PRIMARY KEY (`Vehiculos_consumo_id`,`Id_Vehiculo`), KEY `fk_Vehiculos_consumo_Vehiculos_idx` (`Id_Vehiculo`), CONSTRAINT `fk_Vehiculos_consumo_Vehiculos` FOREIGN KEY (`Id_Vehiculo`) REFERENCES `Vehiculos` (`Id_Vehiculo`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=11412 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla apuntan el importe de los tickets de la gasolinera solred, con quien tenemos un contrato y nos facturan mensualmente'; +) ENGINE=InnoDB AUTO_INCREMENT=11644 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla apuntan el importe de los tickets de la gasolinera solred, con quien tenemos un contrato y nos facturan mensualmente'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -48306,7 +49056,7 @@ CREATE TABLE `XDiario` ( PRIMARY KEY (`id`), KEY `empresa_id` (`empresa_id`), CONSTRAINT `XDiario_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3830019 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3870178 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -48392,7 +49142,7 @@ CREATE TABLE `account_conciliacion` ( KEY `fg_accconciliacion_key1_idx` (`Id_Proveedores_account`), KEY `index_id_calculated` (`id_calculated`), CONSTRAINT `fg_key1_accountconc` FOREIGN KEY (`Id_Proveedores_account`) REFERENCES `Proveedores_account` (`Id_Proveedores_account`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=26838 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=28659 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -48438,7 +49188,7 @@ CREATE TABLE `account_detail` ( KEY `fk_account_detail_Proveedores_account1_idx` (`Id_Proveedores_account`), CONSTRAINT `fk_account_detail_account_detail_type1` FOREIGN KEY (`account_detail_type_id`) REFERENCES `account_detail_type` (`account_detail_type_id`) ON UPDATE CASCADE, CONSTRAINT `fk_account_detail_account_id_proveedores_account` FOREIGN KEY (`Id_Proveedores_account`) REFERENCES `Proveedores_account` (`Id_Proveedores_account`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -48725,7 +49475,7 @@ CREATE TABLE `albaran` ( CONSTRAINT `fk_albaran_empresa1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE, CONSTRAINT `fk_albaran_recibida` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `fk_albaran_warehouse1` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3263 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3341 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -48803,7 +49553,7 @@ CREATE TABLE `awb` ( CONSTRAINT `awbInvoiceIn` FOREIGN KEY (`invoiceInFk`) REFERENCES `recibida` (`id`) ON DELETE SET NULL ON UPDATE CASCADE, CONSTRAINT `awbTransitoryFk` FOREIGN KEY (`transitario_id`) REFERENCES `Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE, CONSTRAINT `awb_ibfk_1` FOREIGN KEY (`iva_id`) REFERENCES `iva_codigo` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3236 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3288 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -48969,7 +49719,7 @@ CREATE TABLE `awb_component` ( CONSTRAINT `awb_component_` FOREIGN KEY (`awb_component_type_id`) REFERENCES `awb_component_type` (`awb_component_type_id`) ON UPDATE CASCADE, CONSTRAINT `awb_role_fk` FOREIGN KEY (`awb_role_id`) REFERENCES `awb_role` (`awb_role_id`) ON UPDATE CASCADE, CONSTRAINT `awb_unit_fk` FOREIGN KEY (`awb_unit_id`) REFERENCES `awb_unit` (`awb_unit_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=24215 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=25494 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49003,7 +49753,7 @@ CREATE TABLE `awb_component_template` ( CONSTRAINT `Id_Moneda` FOREIGN KEY (`Id_Moneda`) REFERENCES `Monedas` (`Id_Moneda`) ON UPDATE CASCADE, CONSTRAINT `awb_unit_fk1` FOREIGN KEY (`awb_unit_id`) REFERENCES `awb_unit` (`awb_unit_id`) ON UPDATE CASCADE, CONSTRAINT `role_fk` FOREIGN KEY (`awb_role_id`) REFERENCES `awb_role` (`awb_role_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=783 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=804 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49084,7 +49834,7 @@ CREATE TABLE `awb_gestdoc` ( KEY `awb_gestdoc_gestdoc_fk` (`gestdoc_id`), CONSTRAINT `awb_gestdoc_awb_fk` FOREIGN KEY (`awb_id`) REFERENCES `awb` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `awb_gestdoc_gestdoc_fk` FOREIGN KEY (`gestdoc_id`) REFERENCES `gestdoc` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2849 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2899 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49184,7 +49934,7 @@ CREATE TABLE `balance_nest_tree` ( `Id_Gasto` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL, `isSelected` tinyint(1) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=394 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=403 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49203,7 +49953,7 @@ CREATE TABLE `barcodes` ( UNIQUE KEY `Id_Article_2` (`Id_Article`,`code`), KEY `Id_Article` (`Id_Article`), CONSTRAINT `barcodes_ibfk_1` FOREIGN KEY (`Id_Article`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=40571 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=40796 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49553,7 +50303,7 @@ CREATE TABLE `cl_act` ( CONSTRAINT `cl_act_ibfk_1` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `cl_act_ibfk_3` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE, CONSTRAINT `cl_act_ibfk_4` FOREIGN KEY (`cl_main_id`) REFERENCES `cl_main` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=107779 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Acciones en respuesta a las reclamaciones'; +) ENGINE=InnoDB AUTO_INCREMENT=109939 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Acciones en respuesta a las reclamaciones'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49587,7 +50337,7 @@ CREATE TABLE `cl_cau` ( CONSTRAINT `cl_cau_ibfk_7` FOREIGN KEY (`cl_mot_id`) REFERENCES `cl_mot` (`id`) ON UPDATE CASCADE, CONSTRAINT `cl_cau_ibfk_8` FOREIGN KEY (`cl_con_id`) REFERENCES `cl_con` (`id`) ON UPDATE CASCADE, CONSTRAINT `cl_cau_ibfk_9` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=55880 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Causas de las reclamaciones'; +) ENGINE=InnoDB AUTO_INCREMENT=56786 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Causas de las reclamaciones'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49637,7 +50387,7 @@ CREATE TABLE `cl_det` ( KEY `cl_main_id` (`cl_main_id`), CONSTRAINT `cl_det_ibfk_7` FOREIGN KEY (`Id_Movimiento`) REFERENCES `Movimientos` (`Id_Movimiento`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `cl_det_ibfk_8` FOREIGN KEY (`cl_main_id`) REFERENCES `cl_main` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=142948 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalle de las reclamaciones'; +) ENGINE=InnoDB AUTO_INCREMENT=145391 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Detalle de las reclamaciones'; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -49725,7 +50475,7 @@ CREATE TABLE `cl_main` ( CONSTRAINT `cl_main_ibfk_4` FOREIGN KEY (`cl_dep_id`) REFERENCES `cl_dep` (`id`) ON UPDATE CASCADE, CONSTRAINT `cl_main_ibfk_5` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `cl_main_ticketFk` FOREIGN KEY (`ticketFk`) REFERENCES `Tickets` (`Id_Ticket`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=63367 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Reclamaciones, tabla principal'; +) ENGINE=InnoDB AUTO_INCREMENT=64770 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Reclamaciones, tabla principal'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -49841,7 +50591,7 @@ CREATE TABLE `client_observation` ( KEY `Id_Cliente` (`Id_Cliente`), CONSTRAINT `client_observation_ibfk_1` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `client_observation_ibfk_2` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=75121 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Todas las observaciones referentes a un ticket'; +) ENGINE=InnoDB AUTO_INCREMENT=75637 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Todas las observaciones referentes a un ticket'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50009,7 +50759,7 @@ CREATE TABLE `consignatarios_observation` ( `text` text COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`consignatarios_observation_id`), UNIQUE KEY `Id_Consigna` (`Id_Consigna`,`observation_type_id`) -) ENGINE=InnoDB AUTO_INCREMENT=3854 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Observaciones de los consignatarios'; +) ENGINE=InnoDB AUTO_INCREMENT=3960 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Observaciones de los consignatarios'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50091,7 +50841,7 @@ CREATE TABLE `credit` ( KEY `credit_ClienteFk` (`Id_Cliente`), CONSTRAINT `credit_ClienteFk` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `workers_fk` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=77944 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=79110 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50181,7 +50931,6 @@ CREATE TABLE `department` ( `rgt` int(11) NOT NULL, `Id_Trabajador` int(11) DEFAULT NULL COMMENT 'Id_Trabajador es el jefe del departamento', `company_id` int(11) NOT NULL, - `father_id` int(11) DEFAULT NULL, `boss_id` int(11) DEFAULT NULL, `x` int(11) DEFAULT NULL, `y` int(11) DEFAULT NULL, @@ -50195,11 +50944,8 @@ CREATE TABLE `department` ( UNIQUE KEY `name_UNIQUE` (`name`), KEY `fk_department_Trabajadores1_idx` (`Id_Trabajador`), KEY `dep_org_ibfk_3_idx` (`company_id`), - KEY `fk_department_department1_idx` (`father_id`), - KEY `fk_department_department1_idx_idx` (`father_id`), - CONSTRAINT `fk_department_Trabajadores1` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE, - CONSTRAINT `fk_department_department1_idx` FOREIGN KEY (`father_id`) REFERENCES `department` (`department_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=91 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + CONSTRAINT `fk_department_Trabajadores1` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE +) ENGINE=InnoDB AUTO_INCREMENT=94 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50216,7 +50962,7 @@ CREATE TABLE `device` ( PRIMARY KEY (`device_id`), UNIQUE KEY `device_id_UNIQUE` (`device_id`), UNIQUE KEY `sn_UNIQUE` (`sn`) -) ENGINE=InnoDB AUTO_INCREMENT=295 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=301 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50566,7 +51312,7 @@ CREATE TABLE `entity` ( UNIQUE KEY `bic_UNIQUE` (`bic`), KEY `fg_entity1_idx` (`pais_id`), CONSTRAINT `fg_entity1` FOREIGN KEY (`pais_id`) REFERENCES `Paises` (`Id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=30036 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Entidades bancarias '; +) ENGINE=InnoDB AUTO_INCREMENT=30038 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Entidades bancarias '; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50606,7 +51352,7 @@ CREATE TABLE `escritos_det` ( PRIMARY KEY (`id`), KEY `empresa_id` (`empresa_id`), CONSTRAINT `escritos_det_ibfk_1` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=17533 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=17654 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -50636,7 +51382,7 @@ CREATE TABLE `expeditions` ( KEY `index4` (`ticket_id`), CONSTRAINT `Id_Agencia` FOREIGN KEY (`agency_id`) REFERENCES `Agencias` (`Id_Agencia`) ON UPDATE CASCADE, CONSTRAINT `ticket_id` FOREIGN KEY (`ticket_id`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3071780 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=3126160 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -50880,7 +51626,7 @@ CREATE TABLE `gestdoc` ( UNIQUE KEY `emp_id` (`emp_id`,`orden`,`warehouse_id`), KEY `trabajador_id` (`trabajador_id`), KEY `warehouse_id` (`warehouse_id`) -) ENGINE=InnoDB AUTO_INCREMENT=1251703 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='document managment system'; +) ENGINE=InnoDB AUTO_INCREMENT=1271242 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='document managment system'; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -51085,7 +51831,7 @@ CREATE TABLE `intrastat_data` ( KEY `recibida` (`recibida_id`), CONSTRAINT `intrastat_data_ibfk_1` FOREIGN KEY (`intrastat_id`) REFERENCES `Intrastat` (`Codintrastat`) ON UPDATE CASCADE, CONSTRAINT `intrastat_data_ibfk_2` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=76236 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=76873 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -51379,8 +52125,10 @@ CREATE TABLE `mail` ( `senderFk` int(11) DEFAULT NULL, `recipientFk` int(11) DEFAULT NULL, `plainTextBody` text COLLATE utf8_unicode_ci, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1737134 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + PRIMARY KEY (`id`), + KEY `sent_idx` (`sent`), + KEY `creation_idx` (`DATE_ODBC`) +) ENGINE=InnoDB AUTO_INCREMENT=1769154 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -51438,7 +52186,7 @@ CREATE TABLE `mandato` ( CONSTRAINT `mandato_fgkey1` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `mandato_fgkey2` FOREIGN KEY (`empresa_id`) REFERENCES `empresa` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `mandato_fgkey3` FOREIGN KEY (`idmandato_tipo`) REFERENCES `mandato_tipo` (`idmandato_tipo`) ON DELETE NO ACTION ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=16501 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=16590 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -51647,7 +52395,7 @@ CREATE TABLE `pago` ( CONSTRAINT `pago_moneda` FOREIGN KEY (`id_moneda`) REFERENCES `Monedas` (`Id_Moneda`) ON UPDATE CASCADE, CONSTRAINT `pago_pay_met` FOREIGN KEY (`pay_met_id`) REFERENCES `pay_met` (`id`) ON UPDATE CASCADE, CONSTRAINT `proveedor_pago` FOREIGN KEY (`id_proveedor`) REFERENCES `Proveedores` (`Id_Proveedor`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=49205 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=49866 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -51774,7 +52522,7 @@ CREATE TABLE `pay_met` ( `graceDays` int(11) unsigned NOT NULL DEFAULT '0', `ibanRequired` tinyint(3) DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -52144,7 +52892,7 @@ CREATE TABLE `price_fixed` ( KEY `date_end` (`date_end`), KEY `warehouse_id` (`warehouse_id`), CONSTRAINT `price_fixed_ibfk_1` FOREIGN KEY (`item_id`) REFERENCES `Articles` (`Id_Article`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=62744 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=63004 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -52206,7 +52954,7 @@ CREATE TABLE `producer` ( `visible` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`producer_id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=10022 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=10653 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -52267,7 +53015,7 @@ CREATE TABLE `province` ( CONSTRAINT `province_ibfk_1` FOREIGN KEY (`Paises_Id`) REFERENCES `Paises` (`Id`) ON UPDATE CASCADE, CONSTRAINT `province_zone_fk` FOREIGN KEY (`zone`) REFERENCES `zones` (`zone_id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `warehouse_Id` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON DELETE SET NULL ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=194 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=195 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -52375,7 +53123,7 @@ CREATE TABLE `recibida` ( CONSTRAINT `recibida_ibfk_5` FOREIGN KEY (`cplusInvoiceType472Fk`) REFERENCES `vn`.`cplusInvoiceType472` (`id`) ON UPDATE CASCADE, CONSTRAINT `recibida_ibfk_6` FOREIGN KEY (`cplusRectificationTypeFk`) REFERENCES `vn`.`cplusRectificationType` (`id`) ON UPDATE CASCADE, CONSTRAINT `recibida_ibfk_7` FOREIGN KEY (`cplusTrascendency472Fk`) REFERENCES `vn`.`cplusTrascendency472` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=82104 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=83145 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -52964,7 +53712,7 @@ CREATE TABLE `recibida_iva` ( CONSTRAINT `recibida_iva_ibfk_2` FOREIGN KEY (`iva_id`) REFERENCES `iva_codigo` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT `recibida_iva_ibfk_5` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `recibida_iva_ibfk_6` FOREIGN KEY (`gastos_id`) REFERENCES `Gastos` (`Id_Gasto`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=134155 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=137049 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -52987,7 +53735,7 @@ CREATE TABLE `recibida_vencimiento` ( KEY `banco_id` (`banco_id`), CONSTRAINT `recibida_vencimiento_ibfk_6` FOREIGN KEY (`banco_id`) REFERENCES `Bancos` (`Id_Banco`) ON UPDATE CASCADE, CONSTRAINT `recibida_vencimiento_ibfk_7` FOREIGN KEY (`recibida_id`) REFERENCES `recibida` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=132054 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=135173 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -53030,7 +53778,7 @@ CREATE TABLE `recovery` ( KEY `cliente_idx` (`Id_Cliente`), CONSTRAINT `cliente333` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE, CONSTRAINT `cliente_cliente` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=300 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla apuntaremos los acuerdos de recobro semanal a '; +) ENGINE=InnoDB AUTO_INCREMENT=301 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='En esta tabla apuntaremos los acuerdos de recobro semanal a '; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -53212,7 +53960,7 @@ CREATE TABLE `scan` ( `name` varchar(45) CHARACTER SET utf8 DEFAULT NULL, `odbc_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=94739 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Se borra automaticamente 8 dias en el pasado desde vn2008.clean'; +) ENGINE=InnoDB AUTO_INCREMENT=97650 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Se borra automaticamente 8 dias en el pasado desde vn2008.clean'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -53228,10 +53976,14 @@ CREATE TABLE `scanTree` ( `lft` int(11) NOT NULL, `rgt` int(11) NOT NULL, `depth` bigint(22) NOT NULL DEFAULT '0', - `sons` decimal(10,0) DEFAULT NULL, + `sons` int(11) DEFAULT '0', + `lastScanned` datetime DEFAULT NULL, + `routeCount` int(11) DEFAULT NULL, + `minRoute` int(11) DEFAULT NULL, + `maxRoute` int(11) DEFAULT NULL, + `scanned` int(11) DEFAULT NULL, PRIMARY KEY (`id`), - KEY `lft_rgt_depth_idx` (`lft`,`rgt`,`depth`), - KEY `name_idx` (`name`) + KEY `lft_rgt_depth` (`lft`,`rgt`,`depth`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -53250,7 +54002,7 @@ CREATE TABLE `scan_line` ( PRIMARY KEY (`scan_line_id`), KEY `id_scan_id_idx` (`scan_id`), CONSTRAINT `id_scan_id` FOREIGN KEY (`scan_id`) REFERENCES `scan` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1185392 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=1225949 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -53272,7 +54024,7 @@ CREATE TABLE `sharingcart` ( KEY `Suplent` (`Id_Suplente`), CONSTRAINT `Suplent_key` FOREIGN KEY (`Id_Suplente`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE, CONSTRAINT `Trabajador_key` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2074 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=2094 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -53350,7 +54102,7 @@ CREATE TABLE `sharingclient` ( KEY `Client` (`Id_Cliente`), CONSTRAINT `Clients_key` FOREIGN KEY (`Id_Cliente`) REFERENCES `Clientes` (`id_cliente`) ON UPDATE CASCADE, CONSTRAINT `Trabajadores_key` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -53450,9 +54202,16 @@ CREATE TABLE `sort_merge_results_ernesto` ( `max_heap_table_size` int(11) DEFAULT NULL, `created_tmp_disk_tables` int(11) DEFAULT NULL, `created_tmp_tables` int(11) DEFAULT NULL, + `Created_tmp_files` int(11) DEFAULT NULL, `OpenTablesxUptimeDivOpened` float DEFAULT NULL, + `join_buffer_size` int(11) DEFAULT NULL, + `innodb_open_files` int(11) DEFAULT NULL, + `open_files_limit` int(11) DEFAULT NULL, + `query_cache_size` int(11) DEFAULT NULL, + `query_cache_type` varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`hora`), - UNIQUE KEY `hora_UNIQUE` (`hora`) + UNIQUE KEY `hora_UNIQUE` (`hora`), + KEY `uptime` (`uptime`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -53541,7 +54300,7 @@ CREATE TABLE `tarifas` ( PRIMARY KEY (`tarifa_id`), KEY `tarifa_warehouse` (`warehouse_id`), CONSTRAINT `tarifa_warehouse` FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=177 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=179 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -53592,7 +54351,8 @@ CREATE TABLE `tblContadores` ( `km_price` decimal(10,1) DEFAULT NULL, `route_option` int(11) DEFAULT '1', `dbproduccion` tinyint(1) NOT NULL DEFAULT '1', - PRIMARY KEY (`id`) + PRIMARY KEY (`id`), + KEY `fechainv_idx` (`FechaInventario`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; @@ -53755,7 +54515,7 @@ CREATE TABLE `ticket_observation` ( KEY `observation_type_id` (`observation_type_id`), CONSTRAINT `ticket_observation_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `ticket_observation_ibfk_2` FOREIGN KEY (`observation_type_id`) REFERENCES `observation_type` (`observation_type_id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=1368841 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Todas las observaciones referentes a un ticket'; +) ENGINE=InnoDB AUTO_INCREMENT=1392301 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Todas las observaciones referentes a un ticket'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -53890,7 +54650,7 @@ CREATE TABLE `travel_dits` ( KEY `fgkey2_idx` (`Id_Ticket`), KEY `fgkey3_idx` (`Id_Trabajador`), CONSTRAINT `travel_dits_ibfk_1` FOREIGN KEY (`Id_Trabajador`) REFERENCES `Trabajadores` (`Id_Trabajador`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=222501 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=226132 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -55193,9 +55953,10 @@ CREATE TABLE `workerTeam` ( `team` int(11) NOT NULL, `user` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), - KEY `user_team_idx` (`user`), + KEY `user_idx` (`user`), + KEY `team_idx` (`team`), CONSTRAINT `user_team` FOREIGN KEY (`user`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=219 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=223 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -58958,13 +59719,245 @@ DELIMITER ; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `balance_create`(IN vStartingMonth INT + , IN vEndingMonth INT + , IN vCompany INT + , IN vIsConsolidated BOOLEAN + , IN vInterGroupSalesIncluded BOOLEAN) +BEGIN + + DECLARE v_sql TEXT; + DECLARE strTABLE VARCHAR(20) DEFAULT "balance_nest_tree"; + DECLARE intGAP INTEGER DEFAULT 7; + DECLARE intYEARS INTEGER DEFAULT 3; + DECLARE vConsolidatedGroup INTEGER; + DECLARE vStartingDate DATE DEFAULT '2016-01-01'; + DECLARE vStartingYear INT DEFAULT 2016; + + -- Solicitamos la tabla tmp.nest, como base para el balance + CALL nest_tree(strTABLE,intGAP, FALSE); + + DROP TEMPORARY TABLE IF EXISTS tmp.balance; + CREATE TEMPORARY TABLE tmp.balance + SELECT * FROM tmp.nest; + + DROP TEMPORARY TABLE IF EXISTS tmp.empresas_receptoras; + DROP TEMPORARY TABLE IF EXISTS tmp.empresas_emisoras; + + SELECT empresa_grupo INTO vConsolidatedGroup + FROM empresa + WHERE id = vCompany; + + CREATE TEMPORARY TABLE tmp.empresas_receptoras + SELECT id as empresa_id + FROM vn2008.empresa + WHERE id = vCompany + OR empresa_grupo = IF(vIsConsolidated, vConsolidatedGroup, NULL); + + CREATE TEMPORARY TABLE tmp.empresas_emisoras + SELECT Id_Proveedor as empresa_id + FROM vn2008.Proveedores p; + + IF vInterGroupSalesIncluded = FALSE THEN + + DELETE ee.* + FROM tmp.empresas_emisoras ee + JOIN vn2008.empresa e on e.id = ee.empresa_id + WHERE e.empresa_grupo = vConsolidatedGroup; + + END IF; + + -- Se calculan las facturas que intervienen, para luego poder servir el desglose desde aqui + + DROP TEMPORARY TABLE IF EXISTS tmp.balance_desglose; + CREATE TEMPORARY TABLE tmp.balance_desglose + SELECT er.empresa_id as receptora_id + , ee.empresa_id as emisora_id + , year(IFNULL(r.bookEntried,IFNULL(r.dateBooking, r.Fecha))) as `year` + , month(IFNULL(r.bookEntried,IFNULL(r.dateBooking, r.Fecha))) as `month` + , gastos_id as Id_Gasto + , sum(bi) as importe + FROM recibida r + JOIN recibida_iva ri on ri.recibida_id = r.id + JOIN tmp.empresas_receptoras er on er.empresa_id = r.empresa_id + JOIN tmp.empresas_emisoras ee ON ee.empresa_id = r.proveedor_id + WHERE IFNULL(r.bookEntried,IFNULL(r.dateBooking, r.Fecha)) >= vStartingDate + AND r.contabilizada + GROUP BY Id_Gasto, year, month, emisora_id, receptora_id; + + INSERT INTO tmp.balance_desglose(receptora_id + , emisora_id + , year + , month + , Id_Gasto + , importe) + SELECT gr.empresa_id + , gr.empresa_id + , year + , month + , Id_Gasto + , sum(importe) + FROM gastos_resumen gr + JOIN tmp.empresas_receptoras er on gr.empresa_id = er.empresa_id + WHERE year >= vStartingYear + AND month BETWEEN vStartingMonth AND vEndingMonth + GROUP BY Id_Gasto, year, month, gr.empresa_id; + + + DELETE FROM tmp.balance_desglose + WHERE month < vStartingMonth + OR month > vEndingMonth; + + + + -- Ahora el balance + SET v_sql = sql_printf ( + ' + ALTER TABLE tmp.balance + ADD COLUMN %t INT(10) NULL , + ADD COLUMN %t INT(10) NULL , + ADD COLUMN %t INT(10) NULL , + ADD COLUMN Id_Gasto VARCHAR(10) NULL, + ADD COLUMN Gasto VARCHAR(45) NULL; + ', + YEAR(CURDATE())-2, + YEAR(CURDATE())-1, + YEAR(CURDATE()) + ); + + CALL util.exec (v_sql); + + + -- Añadimos los gastos, para facilitar el formulario + + UPDATE tmp.balance b + JOIN vn2008.balance_nest_tree bnt on bnt.id = b.id + JOIN (SELECT Id_Gasto, Gasto + FROM vn2008.Gastos + GROUP BY Id_Gasto) g ON g.Id_Gasto = bnt.Id_Gasto + SET b.Id_Gasto = g.Id_Gasto + , b.Gasto = g.Gasto; + + -- Rellenamos los valores de primer nivel, los que corresponden a los gastos simples + + WHILE intYEARS > 0 DO + + SET intYEARS = intYEARS - 1; + + SET v_sql = sql_printf ( + ' + UPDATE tmp.balance b + JOIN + ( + SELECT Id_Gasto, sum(Importe) as Importe + FROM tmp.balance_desglose + WHERE year = %v + GROUP BY Id_Gasto + ) sub on sub.Id_Gasto = b.Id_Gasto + SET %t = - Importe; + ', + YEAR(CURDATE()) - intYEARS, + YEAR(CURDATE()) - intYEARS + ); + + CALL util.exec (v_sql); + + END WHILE; + + -- Añadimos las ventas + + + SET v_sql = sql_printf ( + ' + UPDATE tmp.balance b + JOIN ( + SELECT sum(IF(year = %v, venta, 0)) as y2 + , sum(IF(year = %v, venta, 0)) as y1 + , sum(IF(year = %v, venta, 0)) as y0 + , c.Gasto + + FROM bs.ventas_contables c + join tmp.empresas_receptoras er on er.empresa_id = c.empresa_id + WHERE month BETWEEN %v AND %v + GROUP BY c.Gasto + + ) sub ON sub.Gasto = b.Id_Gasto + SET %t = IFNULL(%t,0) + sub.y2 + , %t = IFNULL(%t,0) + sub.y1 + , %t = IFNULL(%t,0) + sub.y0 + ; + + ', + YEAR(CURDATE()) - 2, + YEAR(CURDATE()) - 1, + YEAR(CURDATE()), + vStartingMonth, + vEndingMonth, + YEAR(CURDATE()) - 2, YEAR(CURDATE()) - 2, + YEAR(CURDATE()) - 1, YEAR(CURDATE()) - 1, + YEAR(CURDATE()), YEAR(CURDATE()) + + ); + + CALL util.exec (v_sql); + + -- Ventas intra grupo + IF NOT vInterGroupSalesIncluded THEN + + SELECT lft, rgt + INTO @grupoLft, @grupoRgt + FROM tmp.balance b + WHERE TRIM(b.`name`) = 'Grupo'; + + DELETE + FROM tmp.balance + WHERE lft BETWEEN @grupoLft AND @grupoRgt; + + END IF; + + + -- Rellenamos el valor de los padres con la suma de los hijos + DROP TEMPORARY TABLE IF EXISTS tmp.balance_aux; + CREATE TEMPORARY TABLE tmp.balance_aux SELECT * FROM tmp.balance; + + UPDATE tmp.balance b + JOIN + ( + select b1.id, b1.name, sum(b2.`2017`) as `2017`, sum(b2.`2018`) as `2018`, sum(b2.`2019`) as `2019` + from tmp.nest b1 + join tmp.balance_aux b2 on b2.lft between b1.lft and b1.rgt + group by b1.id) sub on sub.id = b.id + SET b.`2017` = sub.`2017`, b.`2018` = sub.`2018`, b.`2019` = sub.`2019` + ; + + + + SELECT *, concat('',ifnull(Id_Gasto,'')) as newgasto FROM tmp.balance; + + +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `balance_create_old` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `balance_create_old`(IN vStartingMonth INT , IN vEndingMonth INT , IN vCompany INT , IN vConsolidate BOOLEAN @@ -59214,7 +60207,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_articlelist` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_articlelistKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -59224,7 +60217,7 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_articlelist`(IN strART VARCHAR(50) +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_articlelistKk`(IN strART VARCHAR(50) , IN minMED DOUBLE , IN maxMED DOUBLE , IN minPVP DOUBLE @@ -59329,7 +60322,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_items_` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_items_Kk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -59337,9 +60330,9 @@ DELIMITER ; /*!50003 SET character_set_results = utf8 */ ; /*!50003 SET collation_connection = utf8_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = '' */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_items_`(v_date DATE, -- fecha de recepcion de mercancia +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_items_Kk`(v_date DATE, -- fecha de recepcion de mercancia v_consigna INT, v_agencia INT) BEGIN @@ -59390,50 +60383,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_types_` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_types_`( - v_date DATE, -- fecha de recepcion de mercancia - v_consigna INT, - v_agencia INT) -BEGIN -/** - * Calcula los tipos disponibles para un conjunto de almacenes - * y fechas devueltos por el procedimiento agencyHourGetShipped() - * - * @table t_bionic_available_types Tabla con los tipos disponibles - **/ - - CALL bionic_available_(v_date, v_consigna, v_agencia); - - DROP TEMPORARY TABLE IF EXISTS t_bionic_available_types; - CREATE TEMPORARY TABLE t_bionic_available_types - (INDEX (tipo_id)) - ENGINE = MEMORY - SELECT a.tipo_id, t.Tipo - FROM `cache`.available c - JOIN Articles a ON c.item_id = a.Id_Article - JOIN Tipos t ON t.tipo_id = a.tipo_id - JOIN t_bionic_available ba ON c.calc_id = ba.calc_id - WHERE c.available > 0 -- JGF 2016-03-23 en el bionic no apareixen negatius, els tipos que no continguen disponible, tampoc els volem mostrar - AND t.Orden != 0 - GROUP BY t.tipo_id; - - DROP TEMPORARY TABLE t_bionic_available; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `bionic_available_types_filter` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -59486,7 +60435,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_available_types_Kk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -59496,7 +60445,51 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc`( +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_available_types_Kk`( + v_date DATE, -- fecha de recepcion de mercancia + v_consigna INT, + v_agencia INT) +BEGIN +/** + * Calcula los tipos disponibles para un conjunto de almacenes + * y fechas devueltos por el procedimiento agencyHourGetShipped() + * + * @table t_bionic_available_types Tabla con los tipos disponibles + **/ + + CALL bionic_available_(v_date, v_consigna, v_agencia); + + DROP TEMPORARY TABLE IF EXISTS t_bionic_available_types; + CREATE TEMPORARY TABLE t_bionic_available_types + (INDEX (tipo_id)) + ENGINE = MEMORY + SELECT a.tipo_id, t.Tipo + FROM `cache`.available c + JOIN Articles a ON c.item_id = a.Id_Article + JOIN Tipos t ON t.tipo_id = a.tipo_id + JOIN t_bionic_available ba ON c.calc_id = ba.calc_id + WHERE c.available > 0 -- JGF 2016-03-23 en el bionic no apareixen negatius, els tipos que no continguen disponible, tampoc els volem mostrar + AND t.Orden != 0 + GROUP BY t.tipo_id; + + DROP TEMPORARY TABLE t_bionic_available; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_calcKk` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calcKk`( vLanded DATE, vAddress INT, vAgency INT) @@ -59971,17 +60964,17 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_componentTest` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_componentTestKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_componentTest`(IN `v_consigna` INT, IN `v_agencia` INT) +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_componentTestKk`(IN `v_consigna` INT, IN `v_agencia` INT) proc: BEGIN DECLARE v_customer INT; @@ -60261,17 +61254,17 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_component_beta` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_component_betaKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8mb4 */ ; -/*!50003 SET character_set_results = utf8mb4 */ ; -/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_component_beta`(IN `v_consigna` INT, IN `v_agencia` INT) +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_component_betaKk`(IN `v_consigna` INT, IN `v_agencia` INT) proc: BEGIN DECLARE v_customer INT; @@ -60708,7 +61701,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_movement_ok` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_calc_movement_okKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -60718,7 +61711,7 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_movement_ok`(IN v_ticket BIGINT) +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_calc_movement_okKk`(IN v_ticket BIGINT) BEGIN /* @@ -60997,7 +61990,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_make_update` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_make_updateKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -61007,7 +62000,7 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_make_update`( +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_make_updateKk`( i_ticket INT ,i_agencia INT ,i_consigna INT @@ -61063,7 +62056,7 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `bionic_make_updateTest` */; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_make_updateTestKk` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; /*!50003 SET @saved_col_connection = @@collation_connection */ ; @@ -61073,7 +62066,7 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `bionic_make_updateTest`( +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_make_updateTestKk`( i_ticket INT ,i_agencia INT ,i_consigna INT @@ -61773,6 +62766,71 @@ CLOSE rs; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `bionic_tickets_range_bionizar1` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8 */ ; +/*!50003 SET character_set_results = utf8 */ ; +/*!50003 SET collation_connection = utf8_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `bionic_tickets_range_bionizar1`(IN datSTART DATE, IN datEND DATE) +BEGIN + DECLARE done BIT DEFAULT 0; + DECLARE datEND_Midnight DATETIME DEFAULT vn2008.dayend(datEND); + DECLARE v_ticket BIGINT; + DECLARE foo BIGINT; + + DECLARE rs CURSOR FOR + select t.Id_Ticket,mc.Id_Componente + from vn2008.Tickets t + join vn2008.Movimientos m on t.Id_Ticket = m.Id_Ticket + join vn2008.Articles a using(Id_Article) + left join vn2008.Movimientos_componentes mc using(Id_Movimiento) + join vn2008.Tipos tp on a.tipo_id = tp.tipo_id + where t.Id_Ticket IN ( +2289128,2284779,2284635,2286676,2284587,2282128,2278957,2277164,2281389,2276123,2281635,2275445, +2276690,2271157,2277229,2276191,2276066,2277224,2275760,2275660,2274908,2246354,2246354,2274894, +2275234,2270977,2274789,2274816,2274789,2274661,2274661,2246301,2274154,2273365,2272475,2273851, +2273851,2269991,2273086,2273419,2272564,2270541,2264699,2268730,2268730,2264699,2270364,2272806, +2264699,2272134,2272536,2268865,2266791,2272430,2272430,2246535,2272223) +group by t.Id_Ticket; + + DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; + + OPEN rs; + + FETCH rs INTO v_ticket ,foo; + + WHILE NOT done DO + -- select v_ticket; + + CALL vn.ticket_recalcComponents(v_ticket); + + call Ditacio(v_ticket + ,'Bioniza Ticket' + ,'T' + , 20 + , 'proc bionic_tickets_range_bionizar' + , NULL); + + FETCH rs INTO v_ticket,foo ; + + END WHILE; + + +CLOSE rs; + + + END ;; DELIMITER ; /*!50003 SET sql_mode = @saved_sql_mode */ ; @@ -62057,7 +63115,7 @@ BEGIN JOIN Entradas e ON e.Id_Entrada = c.Id_Entrada JOIN travel t ON t.id = e.travel_id WHERE c.Id_Article = v_item - AND t.shipment = CURDATE() AND t.warehouse_id_out IN (7, 40) + AND DATE(t.shipment) = CURDATE() AND t.warehouse_id_out IN (7, 40) AND t.warehouse_id NOT IN (44, 1) AND NOT e.redada AND NOT e.Inventario AND IFNULL(c.Vida, 0) < c.Etiquetas @@ -64649,7 +65707,7 @@ DELIMITER ; DELIMITER ;; CREATE DEFINER=`root`@`%` PROCEDURE `clonWeeklyTickets`(IN vWeek INT) BEGIN - DECLARE done BIT DEFAULT 0; + DECLARE vIsDone BOOL; DECLARE vLanding DATE; DECLARE vShipment DATE; DECLARE vWarehouse INT; @@ -64667,27 +65725,67 @@ BEGIN FROM Tickets_turno tt JOIN Tickets t ON tt.Id_Ticket = t.Id_Ticket; - DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; + DECLARE CONTINUE HANDLER FOR NOT FOUND SET vIsDone = TRUE; - SET done = 0; SET vYear = YEAR(CURDATE()) + IF(vWeek < WEEK(CURDATE()),1, 0); OPEN rsTicket; - FETCH rsTicket INTO vTicket, vWeekDay, vClient, vWarehouse, vEmpresa, vConsignatario, vAgencia; + myLoop: LOOP + BEGIN + DECLARE vError TEXT; + DECLARE vSalesPersonEmail VARCHAR(150); + DECLARE vMailSent BOOL; + DECLARE vSubject VARCHAR(150); + DECLARE vMessage TEXT; + DECLARE CONTINUE HANDLER FOR SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + vError = MESSAGE_TEXT; - WHILE NOT done DO - + IF vError = 'NOT_ZONE_WITH_THIS_PARAMETERS' THEN + SELECT e.email INTO vSalesPersonEmail + FROM vn.client c + JOIN vn.worker sp ON sp.id = c.salesPersonFk + JOIN account.emailUser e ON e.userFk = sp.userFk + WHERE c.id = vClient; + + SET vSubject = CONCAT('Turnos - No se ha podido clonar el ticket ', vTicket); + SET vMessage = CONCAT('No se ha podido clonar el ticket ', vTicket, + ' porque no hay una zona de envío disponible'); + + SELECT COUNT(*) INTO vMailSent + FROM vn.mail + WHERE sender = vSalesPersonEmail + AND subject = vSubject; + + IF NOT vMailSent THEN + INSERT INTO vn2008.mail (`to`,`subject`,`text`) + VALUES (vSalesPersonEmail, vSubject, vMessage); + END IF; + END IF; + END; + + SET vIsDone = FALSE; + FETCH rsTicket INTO vTicket, vWeekDay, vClient, vWarehouse, vEmpresa, vConsignatario, vAgencia; + + IF vIsDone THEN + LEAVE myLoop; + END IF; SELECT date INTO vShipment - FROM time - WHERE year = vYear AND week = vWeek - AND WEEKDAY(date) = vWeekDay; - + FROM time + WHERE year = vYear AND week = vWeek + AND WEEKDAY(date) = vWeekDay; + -- busca si el ticket ya ha sido clonado IF (select count(*) FROM Tickets t JOIN ticket_observation tob ON t.Id_Ticket = tob.Id_Ticket - WHERE Id_Consigna = vConsignatario AND Fecha = vShipment AND tob.text LIKE CONCAT('%',vTicket,'%')) = 0 + WHERE Id_Consigna = vConsignatario AND DATE(Fecha) = vShipment AND tob.text LIKE CONCAT('%',vTicket,'%')) = 0 THEN + CALL vn.zoneGetLanded(vShipment, vConsignatario, vAgencia, vWarehouse); + + SELECT landed INTO vLanding from tmp.zoneGetLanded; + IF (SELECT COUNT(*) FROM Agencias WHERE Id_Agencia = vAgencia AND Agencia LIKE '%turno%') THEN SET vAgencia = NULL; END IF; @@ -64714,9 +65812,8 @@ BEGIN CALL vn.ticketCalculateClon(vNewTicket, vTicket); END IF; - FETCH rsTicket INTO vTicket, vWeekDay, vClient, vWarehouse, vEmpresa, vConsignatario, vAgencia; - - END WHILE; + END; + END LOOP; CLOSE rsTicket; @@ -76854,6 +77951,7 @@ loop1: REPEAT Select VARIABLE_value into @Created_tmp_disk_tables from information_schema.GLOBAL_STATUS where VARIABLE_NAME like 'Created_tmp_disk_tables'; Select VARIABLE_value into @created_tmp_tables from information_schema.GLOBAL_STATUS where VARIABLE_NAME like 'created_tmp_tables'; + Select VARIABLE_value into @Created_tmp_files from information_schema.GLOBAL_STATUS where VARIABLE_NAME like 'Created_tmp_files'; Select VARIABLE_value into @opened_tables from information_schema.GLOBAL_STATUS where VARIABLE_NAME like 'opened_tables'; Select VARIABLE_value into @open_tables from information_schema.GLOBAL_STATUS where VARIABLE_NAME like 'open_tables'; Select VARIABLE_value into @TABLE_OPEN_CACHE_OVERFLOWS from information_schema.GLOBAL_STATUS where VARIABLE_NAME like 'TABLE_OPEN_CACHE_OVERFLOWS'; @@ -76869,7 +77967,12 @@ loop1: REPEAT Select @@global.sort_buffer_size into @sort_buffer_size; Select @@global.max_sort_length into @max_sort_length; select @@global.tmp_table_size into @tmp_table_size; + select @@global.join_buffer_size into @join_buffer_size; select @@global.max_heap_table_size into @max_heap_table_size; + Select @@global.open_files_limit into @open_files_limit; + Select @@global.innodb_open_files into @innodb_open_files; + Select @@global.query_cache_size into @query_cache_size; + Select @@global.query_cache_type into @query_cache_type; SELECT (Open_tables * Uptime / Opened_Tables) AS OpenTablesxUptimeDivOpened INTO @OpenTablesxUptimeDivOpened FROM (SELECT variable_value Uptime FROM information_schema.global_status @@ -76881,9 +77984,9 @@ loop1: REPEAT WHERE variable_name = 'Opened_tables') opnd; INSERT INTO sort_merge_results_ernesto (hora, uptime, uptime_since_flush, smp_old, smp_new, smp, smp_hour,connections, Threads_created, Threads_cached, Thread_cache_size, sort_buffer_size, max_sort_length, opened_tables, - Created_tmp_disk_tables, created_tmp_tables, Innodb_os_log_written, table_definition_cache, table_open_cache, table_open_cache_instances, open_tables, TABLE_OPEN_CACHE_OVERFLOWS, TABLE_OPEN_CACHE_MISSES, TABLE_OPEN_CACHE_HITS, tmp_table_size, max_heap_table_size, OpenTablesxUptimeDivOpened) + Created_tmp_disk_tables, created_tmp_tables, Innodb_os_log_written, table_definition_cache, table_open_cache, table_open_cache_instances, open_tables, TABLE_OPEN_CACHE_OVERFLOWS, TABLE_OPEN_CACHE_MISSES, TABLE_OPEN_CACHE_HITS, tmp_table_size, max_heap_table_size, OpenTablesxUptimeDivOpened, join_buffer_size, open_files_limit, innodb_open_files, Created_tmp_files, query_cache_size, query_cache_type) VALUES (now(), @uptime, @uptime_since_flush, @SMP_OLD, @SMP_NEW, @SMP, @SMP_RATE, @connections, @Threads_created, @Threads_cached, @Thread_cache_size, @sort_buffer_size, @max_sort_length, @opened_tables, - @Created_tmp_disk_tables, @created_tmp_tables, @Innodb_os_log_written, @table_definition_cache, @table_open_cache, @table_open_cache_instances, @open_tables, @TABLE_OPEN_CACHE_OVERFLOWS, @TABLE_OPEN_CACHE_MISSES, @TABLE_OPEN_CACHE_HITS, @tmp_table_size, @max_heap_table_size, @OpenTablesxUptimeDivOpened); + @Created_tmp_disk_tables, @created_tmp_tables, @Innodb_os_log_written, @table_definition_cache, @table_open_cache, @table_open_cache_instances, @open_tables, @TABLE_OPEN_CACHE_OVERFLOWS, @TABLE_OPEN_CACHE_MISSES, @TABLE_OPEN_CACHE_HITS, @tmp_table_size, @max_heap_table_size, @OpenTablesxUptimeDivOpened, @join_buffer_size, @open_files_limit, @innodb_open_files, @Created_tmp_files, @query_cache_size, @query_cache_type); if (i mod 3 = 0) then SELECT * FROM sort_merge_results_ernesto order by hora desc; @@ -81346,53 +82449,6 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; -/*!50003 DROP PROCEDURE IF EXISTS `weekly_sales_new` */; -/*!50003 SET @saved_cs_client = @@character_set_client */ ; -/*!50003 SET @saved_cs_results = @@character_set_results */ ; -/*!50003 SET @saved_col_connection = @@collation_connection */ ; -/*!50003 SET character_set_client = utf8 */ ; -/*!50003 SET character_set_results = utf8 */ ; -/*!50003 SET collation_connection = utf8_general_ci */ ; -/*!50003 SET @saved_sql_mode = @@sql_mode */ ; -/*!50003 SET sql_mode = '' */ ; -DELIMITER ;; -CREATE DEFINER=`root`@`%` PROCEDURE `weekly_sales_new`(v_wh SMALLINT, v_date_ini DATETIME, v_date_end DATETIME) -BEGIN - IF v_date_end IS NULL THEN - SET v_date_end = v_date_ini; - END IF; - - SET v_date_end = TIMESTAMPADD(DAY, 1, v_date_end); - - CREATE TEMPORARY TABLE weekly_ticket - (INDEX idx USING HASH (Id_Ticket)) - ENGINE = MEMORY - SELECT Id_Ticket, to_weeks (DATE(Fecha)) week, warehouse_id - FROM Tickets t - JOIN warehouse w ON w.id = t.warehouse_id - WHERE Fecha >= v_date_ini AND Fecha < v_date_end - AND Id_Cliente NOT IN (400, 200) - AND NOT w.fuente - AND v_wh IN (t.warehouse_id, 0); - - CREATE TEMPORARY TABLE weekly_sales - ENGINE = MEMORY - SELECT week, warehouse_id, a.Id_Article item_id, SUM(Cantidad) AS amount, - SUM(Cantidad * Preu * (100 - Descuento) / 100) AS price - FROM Movimientos m - JOIN weekly_ticket t USING (Id_Ticket) - JOIN Articles a USING (Id_Article) - INNER JOIN Tipos USING (tipo_id) - WHERE reino_id != 6 - GROUP BY week, warehouse_id, item_id; - - DROP TEMPORARY TABLE weekly_ticket; -END ;; -DELIMITER ; -/*!50003 SET sql_mode = @saved_sql_mode */ ; -/*!50003 SET character_set_client = @saved_cs_client */ ; -/*!50003 SET character_set_results = @saved_cs_results */ ; -/*!50003 SET collation_connection = @saved_col_connection */ ; /*!50003 DROP PROCEDURE IF EXISTS `XDiario_Quadrator` */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -82651,6 +83707,53 @@ DELIMITER ; /*!50003 SET character_set_client = @saved_cs_client */ ; /*!50003 SET character_set_results = @saved_cs_results */ ; /*!50003 SET collation_connection = @saved_col_connection */ ; +/*!50003 DROP PROCEDURE IF EXISTS `__weekly_sales_new` */; +/*!50003 SET @saved_cs_client = @@character_set_client */ ; +/*!50003 SET @saved_cs_results = @@character_set_results */ ; +/*!50003 SET @saved_col_connection = @@collation_connection */ ; +/*!50003 SET character_set_client = utf8mb4 */ ; +/*!50003 SET character_set_results = utf8mb4 */ ; +/*!50003 SET collation_connection = utf8mb4_general_ci */ ; +/*!50003 SET @saved_sql_mode = @@sql_mode */ ; +/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ; +DELIMITER ;; +CREATE DEFINER=`root`@`%` PROCEDURE `__weekly_sales_new`(v_wh SMALLINT, v_date_ini DATETIME, v_date_end DATETIME) +BEGIN + IF v_date_end IS NULL THEN + SET v_date_end = v_date_ini; + END IF; + + SET v_date_end = TIMESTAMPADD(DAY, 1, v_date_end); + + CREATE TEMPORARY TABLE weekly_ticket + (INDEX idx USING HASH (Id_Ticket)) + ENGINE = MEMORY + SELECT Id_Ticket, to_weeks (DATE(Fecha)) week, warehouse_id + FROM Tickets t + JOIN warehouse w ON w.id = t.warehouse_id + WHERE Fecha >= v_date_ini AND Fecha < v_date_end + AND Id_Cliente NOT IN (400, 200) + AND NOT w.fuente + AND v_wh IN (t.warehouse_id, 0); + + CREATE TEMPORARY TABLE weekly_sales + ENGINE = MEMORY + SELECT week, warehouse_id, a.Id_Article item_id, SUM(Cantidad) AS amount, + SUM(Cantidad * Preu * (100 - Descuento) / 100) AS price + FROM Movimientos m + JOIN weekly_ticket t USING (Id_Ticket) + JOIN Articles a USING (Id_Article) + INNER JOIN Tipos USING (tipo_id) + WHERE reino_id != 6 + GROUP BY week, warehouse_id, item_id; + + DROP TEMPORARY TABLE weekly_ticket; +END ;; +DELIMITER ; +/*!50003 SET sql_mode = @saved_sql_mode */ ; +/*!50003 SET character_set_client = @saved_cs_client */ ; +/*!50003 SET character_set_results = @saved_cs_results */ ; +/*!50003 SET collation_connection = @saved_col_connection */ ; -- -- Current Database: `vncontrol` @@ -82717,7 +83820,7 @@ CREATE TABLE `inter` ( CONSTRAINT `inter_ibfk_1` FOREIGN KEY (`Id_Ticket`) REFERENCES `vn2008`.`Tickets` (`Id_Ticket`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `inter_state` FOREIGN KEY (`state_id`) REFERENCES `vn2008`.`state` (`id`) ON UPDATE CASCADE, CONSTRAINT `responsable` FOREIGN KEY (`Id_Supervisor`) REFERENCES `vn2008`.`Trabajadores` (`Id_Trabajador`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=17518595 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; +) ENGINE=InnoDB AUTO_INCREMENT=18117378 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -83332,24 +84435,6 @@ USE `cache`; USE `edi`; --- --- Final view structure for view `__ekt` --- - -/*!50001 DROP VIEW IF EXISTS `__ekt`*/; -/*!50001 SET @saved_cs_client = @@character_set_client */; -/*!50001 SET @saved_cs_results = @@character_set_results */; -/*!50001 SET @saved_col_connection = @@collation_connection */; -/*!50001 SET character_set_client = utf8mb4 */; -/*!50001 SET character_set_results = utf8mb4 */; -/*!50001 SET collation_connection = utf8mb4_general_ci */; -/*!50001 CREATE ALGORITHM=UNDEFINED */ -/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ -/*!50001 VIEW `__ekt` AS select `t`.`id` AS `id`,`t`.`barcode` AS `barcode`,`t`.`entry_year` AS `entryYear`,`t`.`delivery_number` AS `deliveryNumber`,`t`.`fec` AS `fec`,`t`.`hor` AS `hor`,`t`.`now` AS `now`,`t`.`ptj` AS `ptj`,`t`.`ref` AS `ref`,`t`.`item` AS `item`,`t`.`pac` AS `pac`,`t`.`qty` AS `qty`,`t`.`ori` AS `ori`,`t`.`cat` AS `cat`,`t`.`agj` AS `agj`,`t`.`kop` AS `kop`,`t`.`ptd` AS `ptd`,`t`.`sub` AS `sub`,`t`.`pro` AS `pro`,`t`.`pri` AS `pri`,`t`.`package` AS `package`,`t`.`auction` AS `auction`,`t`.`klo` AS `klo`,`t`.`k01` AS `k1`,`t`.`k02` AS `k2`,`t`.`k03` AS `k3`,`t`.`k04` AS `k4`,`t`.`s1` AS `s1`,`t`.`s2` AS `s2`,`t`.`s3` AS `s3`,`t`.`s4` AS `s4`,`t`.`s5` AS `s5`,`t`.`s6` AS `s6`,`t`.`ok` AS `ok`,`t`.`trolley_id` AS `trolleyFk`,`t`.`putOrderFk` AS `putOrderFk`,`t`.`scanned` AS `scanned` from `vn2008`.`buy_edi` `t` */; -/*!50001 SET character_set_client = @saved_cs_client */; -/*!50001 SET character_set_results = @saved_cs_results */; -/*!50001 SET collation_connection = @saved_col_connection */; - -- -- Final view structure for view `supplyOffer` -- @@ -84821,7 +85906,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ -/*!50001 VIEW `country` AS select `p`.`Id` AS `id`,`p`.`Pais` AS `country`,`p`.`CEE` AS `CEE`,`p`.`isUeeMember` AS `isUeeMember`,`p`.`Codigo` AS `code`,`p`.`Id_Moneda` AS `currencyFk`,`p`.`Id_Paisreal` AS `politicalCountryFk`,`p`.`geoFk` AS `geoFk` from `vn2008`.`Paises` `p` */; +/*!50001 VIEW `country` AS select `p`.`Id` AS `id`,`p`.`Pais` AS `country`,`p`.`CEE` AS `CEE`,`p`.`isUeeMember` AS `isUeeMember`,`p`.`Codigo` AS `code`,`p`.`Id_Moneda` AS `currencyFk`,`p`.`Id_Paisreal` AS `politicalCountryFk`,`p`.`geoFk` AS `geoFk`,`p`.`hasDailyInvoice` AS `hasDailyInvoice` from `vn2008`.`Paises` `p` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -84893,7 +85978,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ -/*!50001 VIEW `department` AS select `b`.`department_id` AS `id`,`b`.`name` AS `name`,`b`.`father_id` AS `fatherFk`,`b`.`production` AS `isProduction`,`b`.`lft` AS `lft`,`b`.`rgt` AS `rgt`,`b`.`isSelected` AS `isSelected`,`b`.`depth` AS `depth`,`b`.`sons` AS `sons` from `vn2008`.`department` `b` */; +/*!50001 VIEW `department` AS select `b`.`department_id` AS `id`,`b`.`name` AS `name`,`b`.`production` AS `isProduction`,`b`.`lft` AS `lft`,`b`.`rgt` AS `rgt`,`b`.`isSelected` AS `isSelected`,`b`.`depth` AS `depth`,`b`.`sons` AS `sons` from `vn2008`.`department` `b` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -85757,7 +86842,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ -/*!50001 VIEW `itemShelvingAvailable` AS select `s`.`id` AS `saleFk`,`tst`.`updated` AS `Modificado`,`s`.`ticketFk` AS `ticketFk`,`stk`.`isChecked` AS `isPicked`,`s`.`itemFk` AS `itemFk`,`s`.`quantity` AS `quantity`,`s`.`concept` AS `concept`,`i`.`size` AS `size`,`st`.`name` AS `Estado`,`st`.`sectorProdPriority` AS `sectorProdPriority`,`its`.`available` AS `available`,`pk`.`sectorFk` AS `sectorFk`,`sh`.`code` AS `matricula`,`pk`.`id` AS `parking`,`its`.`id` AS `itemShelving`,`am`.`name` AS `Agency`,`t`.`shipped` AS `shipped`,`its`.`grouping` AS `grouping`,`its`.`packing` AS `packing` from ((((((((((`vn`.`sale` `s` join `vn`.`ticket` `t` on((`t`.`id` = `s`.`ticketFk`))) join `vn`.`agencyMode` `am` on((`am`.`id` = `t`.`agencyModeFk`))) join `vn`.`ticketStateToday` `tst` on((`tst`.`ticket` = `t`.`id`))) join `vn`.`state` `st` on((`st`.`id` = `tst`.`state`))) join `vn`.`item` `i` on((`i`.`id` = `s`.`itemFk`))) join `vn`.`itemShelving` `its` on((`its`.`itemFk` = `s`.`itemFk`))) join `vn`.`shelving` `sh` on((`sh`.`code` = `its`.`shelvingFk`))) join `vn`.`parking` `pk` on((`pk`.`id` = `sh`.`parkingFk`))) join `vn`.`sector` `sc` on(((`sc`.`id` = `pk`.`sectorFk`) and (`sc`.`warehouseFk` = `t`.`warehouseFk`)))) left join `vn`.`saleTracking` `stk` on(((`stk`.`saleFk` = `s`.`id`) and (`stk`.`stateFk` = 26)))) where ((`t`.`shipped` between `util`.`yesterday`() and `util`.`dayend`(curdate())) and (`its`.`available` > 0) and (`sh`.`code` <> 'FUE') and (`its`.`grouping` <= `s`.`quantity`) and `st`.`sectorProdPriority`) */; +/*!50001 VIEW `itemShelvingAvailable` AS select `s`.`id` AS `saleFk`,`tst`.`updated` AS `Modificado`,`s`.`ticketFk` AS `ticketFk`,`stk`.`isChecked` AS `isPicked`,`s`.`itemFk` AS `itemFk`,`s`.`quantity` AS `quantity`,`s`.`concept` AS `concept`,`i`.`size` AS `size`,`st`.`name` AS `Estado`,`st`.`sectorProdPriority` AS `sectorProdPriority`,`its`.`available` AS `available`,`pk`.`sectorFk` AS `sectorFk`,`sh`.`code` AS `matricula`,`pk`.`id` AS `parking`,`its`.`id` AS `itemShelving`,`am`.`name` AS `Agency`,`t`.`shipped` AS `shipped`,`its`.`grouping` AS `grouping`,`its`.`packing` AS `packing`,`z`.`hour` AS `hour` from (((((((((((`vn`.`sale` `s` join `vn`.`ticket` `t` on((`t`.`id` = `s`.`ticketFk`))) join `vn`.`agencyMode` `am` on((`am`.`id` = `t`.`agencyModeFk`))) join `vn`.`ticketStateToday` `tst` on((`tst`.`ticket` = `t`.`id`))) join `vn`.`state` `st` on((`st`.`id` = `tst`.`state`))) join `vn`.`item` `i` on((`i`.`id` = `s`.`itemFk`))) join `vn`.`itemShelving` `its` on((`its`.`itemFk` = `s`.`itemFk`))) join `vn`.`shelving` `sh` on((`sh`.`code` = `its`.`shelvingFk`))) join `vn`.`parking` `pk` on((`pk`.`id` = `sh`.`parkingFk`))) join `vn`.`sector` `sc` on(((`sc`.`id` = `pk`.`sectorFk`) and (`sc`.`warehouseFk` = `t`.`warehouseFk`)))) left join `vn`.`saleTracking` `stk` on(((`stk`.`saleFk` = `s`.`id`) and (`stk`.`stateFk` = 26)))) left join `vn`.`zone` `z` on((`z`.`id` = `t`.`zoneFk`))) where ((`t`.`shipped` between `util`.`yesterday`() and `util`.`dayend`(curdate())) and (`its`.`available` > 0) and (`sh`.`code` <> 'FUE') and (`its`.`grouping` <= `s`.`quantity`) and `st`.`sectorProdPriority`) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -86446,6 +87531,24 @@ USE `vn`; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; +-- +-- Final view structure for view `rate` +-- + +/*!50001 DROP VIEW IF EXISTS `rate`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8 */; +/*!50001 SET character_set_results = utf8 */; +/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 CREATE ALGORITHM=UNDEFINED */ +/*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ +/*!50001 VIEW `rate` AS select `r`.`tarifa_id` AS `id`,`r`.`fecha` AS `dated`,`r`.`warehouse_id` AS `warehouseFk`,`r`.`t0` AS `rate0`,`r`.`t1` AS `rate1`,`r`.`t2` AS `rate2`,`r`.`t3` AS `rate3` from `vn2008`.`tarifas` `r` */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; + -- -- Final view structure for view `receipt` -- @@ -86927,7 +88030,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ -/*!50001 VIEW `ticketGetVolume` AS select `s`.`ticketFk` AS `ticketFk`,`t`.`routeFk` AS `routeFk`,`s`.`id` AS `saleFk`,`t`.`shipped` AS `Fecha`,(((`s`.`quantity` * `r`.`cm3`) * `i`.`compression`) / 1000000) AS `volume` from (((`vn`.`sale` `s` join `vn`.`item` `i` on((`i`.`id` = `s`.`itemFk`))) join `vn`.`ticket` `t` on((`t`.`id` = `s`.`ticketFk`))) join `bi`.`rotacion` `r` on(((`r`.`Id_Article` = `s`.`itemFk`) and (`r`.`warehouse_id` = `t`.`warehouseFk`)))) */; +/*!50001 VIEW `ticketGetVolume` AS select `s`.`ticketFk` AS `ticketFk`,`t`.`routeFk` AS `routeFk`,`s`.`id` AS `saleFk`,`t`.`shipped` AS `shipped`,(((`s`.`quantity` * `r`.`cm3`) * `i`.`compression`) / 1000000) AS `volume` from (((`vn`.`sale` `s` join `vn`.`item` `i` on((`i`.`id` = `s`.`itemFk`))) join `vn`.`ticket` `t` on((`t`.`id` = `s`.`ticketFk`))) join `bi`.`rotacion` `r` on(((`r`.`Id_Article` = `s`.`itemFk`) and (`r`.`warehouse_id` = `t`.`warehouseFk`)))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -87035,7 +88138,7 @@ USE `vn`; /*!50001 SET collation_connection = utf8_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ -/*!50001 VIEW `ticketToPrepare` AS select `m`.`Id_Ticket` AS `Id_Ticket`,`mk`.`Id_Movimiento` AS `Id_Movimiento`,`mk`.`Id_Movimiento_mark` AS `Id_Movimiento_mark`,`mk`.`Id_Trabajador` AS `Id_Trabjador`,`m`.`Id_Article` AS `Id_Article`,`m`.`Concepte` AS `Concepte`,`art`.`subName` AS `subName`,(`mk`.`original_quantity` - ifnull(`is`.`quantity`,0)) AS `Cantidad`,`mk`.`original_quantity` AS `original_quantity`,if(hour(`t`.`shipped`),hour(`t`.`shipped`),hour(`z`.`hour`)) AS `Hora`,hour(`t`.`shipped`) AS `Departure`,minute(`t`.`shipped`) AS `Minuto`,`am`.`agencyFk` AS `agency_id`,`t`.`warehouseFk` AS `warehouse_id`,`a`.`provinceFk` AS `province_id`,`is`.`quantity` AS `picked` from (((((((`vn2008`.`Movimientos_mark` `mk` join `vn2008`.`Movimientos` `m` on((`m`.`Id_Movimiento` = `mk`.`Id_Movimiento`))) join `vn`.`ticket` `t` on((`m`.`Id_Ticket` = `t`.`id`))) join `vn`.`agencyMode` `am` on((`am`.`id` = `t`.`agencyModeFk`))) join `vn`.`address` `a` on((`a`.`id` = `t`.`addressFk`))) left join `vn`.`itemShelvingSale` `is` on((`is`.`saleFk` = `mk`.`Id_Movimiento`))) join `vn2008`.`Articles` `art` on((`art`.`Id_Article` = `m`.`Id_Article`))) left join `vn`.`zone` `z` on((`z`.`id` = `t`.`zoneFk`))) where ((`mk`.`stateFk` = 26) and (`mk`.`valor` <> 1) and (`t`.`warehouseFk` = 1)) group by `mk`.`Id_Movimiento_mark` */; +/*!50001 VIEW `ticketToPrepare` AS select `m`.`Id_Ticket` AS `Id_Ticket`,`mk`.`Id_Movimiento` AS `Id_Movimiento`,`mk`.`Id_Movimiento_mark` AS `Id_Movimiento_mark`,`mk`.`Id_Trabajador` AS `Id_Trabjador`,`m`.`Id_Article` AS `Id_Article`,`m`.`Concepte` AS `Concepte`,`art`.`subName` AS `subName`,(`mk`.`original_quantity` - ifnull(`is`.`quantity`,0)) AS `Cantidad`,`mk`.`original_quantity` AS `original_quantity`,if(hour(`t`.`shipped`),hour(`t`.`shipped`),hour(`z`.`hour`)) AS `Hora`,hour(`t`.`shipped`) AS `Departure`,minute(`t`.`shipped`) AS `Minuto`,`am`.`agencyFk` AS `agency_id`,`t`.`warehouseFk` AS `warehouse_id`,`a`.`provinceFk` AS `province_id`,`is`.`quantity` AS `picked`,`t`.`zoneFk` AS `zoneFk` from (((((((`vn2008`.`Movimientos_mark` `mk` join `vn2008`.`Movimientos` `m` on((`m`.`Id_Movimiento` = `mk`.`Id_Movimiento`))) join `vn`.`ticket` `t` on((`m`.`Id_Ticket` = `t`.`id`))) join `vn`.`agencyMode` `am` on((`am`.`id` = `t`.`agencyModeFk`))) join `vn`.`address` `a` on((`a`.`id` = `t`.`addressFk`))) left join `vn`.`itemShelvingSale` `is` on((`is`.`saleFk` = `mk`.`Id_Movimiento`))) join `vn2008`.`Articles` `art` on((`art`.`Id_Article` = `m`.`Id_Article`))) left join `vn`.`zone` `z` on((`z`.`id` = `t`.`zoneFk`))) where ((`mk`.`stateFk` = 26) and (`mk`.`valor` <> 1) and (`t`.`warehouseFk` = 1)) group by `mk`.`Id_Movimiento_mark` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -88764,12 +89867,12 @@ USE `vn2008`; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; /*!50001 SET @saved_col_connection = @@collation_connection */; -/*!50001 SET character_set_client = utf8 */; -/*!50001 SET character_set_results = utf8 */; -/*!50001 SET collation_connection = utf8_general_ci */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_general_ci */; /*!50001 CREATE ALGORITHM=UNDEFINED */ /*!50013 DEFINER=`root`@`%` SQL SECURITY DEFINER */ -/*!50001 VIEW `v_user` AS select `u`.`id` AS `id`,`u`.`role` AS `mysql_user_id`,`u`.`name` AS `name`,`u`.`password` AS `password`,`u`.`active` AS `active` from `account`.`user` `u` */; +/*!50001 VIEW `v_user` AS select `u`.`id` AS `id`,abs(`u`.`role`) AS `mysql_user_id`,`u`.`name` AS `name`,'' AS `password`,abs(`u`.`active`) AS `active` from `account`.`user` `u` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; @@ -88987,4 +90090,4 @@ USE `vncontrol`; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2019-06-07 14:17:32 +-- Dump completed on 2019-07-04 11:10:28 diff --git a/db/tests/cache/last_buy_refresh.spec.js b/db/tests/cache/last_buy_refresh.spec.js index e6203a00a..485c725bb 100644 --- a/db/tests/cache/last_buy_refresh.spec.js +++ b/db/tests/cache/last_buy_refresh.spec.js @@ -20,21 +20,27 @@ describe('last_buy_refresh()', () => { let lastBuyTable = result[lastBuyTableIndex]; - expect(lastBuyTable.length).toEqual(4); + expect(lastBuyTable.length).toEqual(6); expect(lastBuyTable[0].item_id).toEqual(1); expect(lastBuyTable[1].item_id).toEqual(2); expect(lastBuyTable[2].item_id).toEqual(3); expect(lastBuyTable[3].item_id).toEqual(4); + expect(lastBuyTable[4].item_id).toEqual(8); + expect(lastBuyTable[5].item_id).toEqual(9); expect(lastBuyTable[0].warehouse_id).toEqual(1); expect(lastBuyTable[1].warehouse_id).toEqual(1); expect(lastBuyTable[2].warehouse_id).toEqual(1); expect(lastBuyTable[3].warehouse_id).toEqual(1); + expect(lastBuyTable[4].warehouse_id).toEqual(1); + expect(lastBuyTable[5].warehouse_id).toEqual(1); expect(lastBuyTable[1].buy_id).toEqual(4); expect(lastBuyTable[0].buy_id).toEqual(3); expect(lastBuyTable[2].buy_id).toEqual(5); - expect(lastBuyTable[3].buy_id).toEqual(6); + expect(lastBuyTable[3].buy_id).toEqual(8); + expect(lastBuyTable[4].buy_id).toEqual(6); + expect(lastBuyTable[5].buy_id).toEqual(7); }); }); diff --git a/db/tests/vn/buyUltimate.spec.js b/db/tests/vn/buyUltimate.spec.js index 4ff6c4708..8a5e6a3df 100644 --- a/db/tests/vn/buyUltimate.spec.js +++ b/db/tests/vn/buyUltimate.spec.js @@ -29,21 +29,27 @@ describe('buyUltimate()', () => { let buyUltimateTable = result[buyUltimateTableIndex]; - expect(buyUltimateTable.length).toEqual(4); + expect(buyUltimateTable.length).toEqual(6); expect(buyUltimateTable[0].itemFk).toEqual(1); expect(buyUltimateTable[1].itemFk).toEqual(2); expect(buyUltimateTable[2].itemFk).toEqual(3); expect(buyUltimateTable[3].itemFk).toEqual(4); + expect(buyUltimateTable[4].itemFk).toEqual(8); + expect(buyUltimateTable[5].itemFk).toEqual(9); expect(buyUltimateTable[0].warehouseFk).toEqual(1); expect(buyUltimateTable[1].warehouseFk).toEqual(1); expect(buyUltimateTable[2].warehouseFk).toEqual(1); expect(buyUltimateTable[3].warehouseFk).toEqual(1); + expect(buyUltimateTable[4].warehouseFk).toEqual(1); + expect(buyUltimateTable[5].warehouseFk).toEqual(1); expect(buyUltimateTable[1].buyFk).toEqual(4); expect(buyUltimateTable[0].buyFk).toEqual(3); expect(buyUltimateTable[2].buyFk).toEqual(5); - expect(buyUltimateTable[3].buyFk).toEqual(6); + expect(buyUltimateTable[3].buyFk).toEqual(8); + expect(buyUltimateTable[4].buyFk).toEqual(6); + expect(buyUltimateTable[5].buyFk).toEqual(7); }); }); diff --git a/db/tests/vn/ticketCalculateClon.spec.js b/db/tests/vn/ticketCalculateClon.spec.js index 0b3969f1f..4015d57db 100644 --- a/db/tests/vn/ticketCalculateClon.spec.js +++ b/db/tests/vn/ticketCalculateClon.spec.js @@ -86,18 +86,20 @@ describe('ticket ticketCalculateClon()', () => { stmt = new ParameterizedSQL('CALL vn.ticketCalculateClon(@result, ?)', [params.originalTicketId]); stmts.push(stmt); - - let orderIndex = stmts.push(`SELECT * FROM vn.orderTicket WHERE ticketFk = @result`) - 1; - stmts.push('ROLLBACK'); let sql = ParameterizedSQL.join(stmts, ';'); - let result = await app.models.Ticket.rawStmt(sql); - let expectedOrder = 11; - let newestTicketIdInFixtures = 21; + let error; - expect(result[orderIndex][0].orderFk).toEqual(expectedOrder); - expect(result[orderIndex][0].ticketFk).toBeGreaterThan(newestTicketIdInFixtures); + try { + await app.models.Ticket.rawStmt(sql); + } catch (e) { + error = e; + } + + expect(error).toBeDefined(); + expect(error.statusCode).toBe(500); + expect(error.code).toBe('ER_SIGNAL_EXCEPTION'); }); }); diff --git a/db/tests/vn/ticketCreateWithUser.spec.js b/db/tests/vn/ticketCreateWithUser.spec.js index e45d95f78..51ebfe000 100644 --- a/db/tests/vn/ticketCreateWithUser.spec.js +++ b/db/tests/vn/ticketCreateWithUser.spec.js @@ -14,8 +14,8 @@ describe('ticket ticketCreateWithUser()', () => { shipped: today, warehouseFk: 1, companyFk: 442, - addressFk: 1, - agencyModeFk: 2, + addressFk: 121, + agencyModeFk: 1, routeFk: null, landed: today, userId: 18 @@ -64,8 +64,8 @@ describe('ticket ticketCreateWithUser()', () => { shipped: today, warehouseFk: 1, companyFk: 442, - addressFk: 1, - agencyModeFk: 2, + addressFk: 121, + agencyModeFk: 1, routeFk: null, landed: today, userId: 18 @@ -91,7 +91,6 @@ describe('ticket ticketCreateWithUser()', () => { let sql = ParameterizedSQL.join(stmts, ';'); let result = await app.models.Ticket.rawStmt(sql); - let firstTicketObservation = result[ticketObsevationsIndex][0]; let secondTicketObservation = result[ticketObsevationsIndex][1]; let thirdTicketObservation = result[ticketObsevationsIndex][2]; @@ -116,7 +115,7 @@ describe('ticket ticketCreateWithUser()', () => { warehouseFk: 1, companyFk: 442, addressFk: 0, - agencyModeFk: 2, + agencyModeFk: 1, routeFk: null, landed: today, userId: 18 @@ -162,8 +161,8 @@ describe('ticket ticketCreateWithUser()', () => { shipped: today, warehouseFk: 1, companyFk: 442, - addressFk: 0, - agencyModeFk: 2, + addressFk: 121, + agencyModeFk: 1, routeFk: null, landed: today, userId: 18 @@ -186,7 +185,7 @@ describe('ticket ticketCreateWithUser()', () => { params.userId ]); stmts.push(stmt); - + stmts.push(`select @newTicketId`); let ticketStateCodeIndex = stmts.push(`SELECT code FROM vn.ticketState WHERE ticketFk = @newTicketId`) - 1; stmts.push('ROLLBACK'); @@ -196,6 +195,6 @@ describe('ticket ticketCreateWithUser()', () => { let ticketStateCode = result[ticketStateCodeIndex][0].code; - expect(ticketStateCode).toEqual('DELIVERED'); + expect(ticketStateCode).toEqual('FREE'); }); }); diff --git a/e2e/dms/temp/file.txt b/e2e/dms/temp/file.txt new file mode 100644 index 000000000..5ef648a88 --- /dev/null +++ b/e2e/dms/temp/file.txt @@ -0,0 +1 @@ +It works! \ No newline at end of file diff --git a/e2e/helpers/config.js b/e2e/helpers/config.js index e5862d52c..8e5bda96c 100644 --- a/e2e/helpers/config.js +++ b/e2e/helpers/config.js @@ -1,3 +1,3 @@ -export default { +module.exports = { url: 'http://localhost:5000' }; diff --git a/e2e/helpers/extensions.js b/e2e/helpers/extensions.js index 2b53d88b2..abdb637e3 100644 --- a/e2e/helpers/extensions.js +++ b/e2e/helpers/extensions.js @@ -144,6 +144,7 @@ let actions = { waitToGetProperty: function(selector, property, done) { this.wait((selector, property) => { const element = document.querySelector(selector); + return element && element[property] != null && element[property] !== ''; }, selector, property) .getProperty(selector, property) @@ -164,10 +165,10 @@ let actions = { .catch(done); }, - waitToFocus: function(selector, done) { + focusElement: function(selector, done) { this.wait(selector) - .evaluate_now(selector => { - let element = document.querySelector(selector); + .evaluate_now(elemenetSelector => { + let element = document.querySelector(elemenetSelector); element.focus(); }, done, selector) .then(done) @@ -270,8 +271,8 @@ let actions = { waitForClassPresent: function(selector, className, done) { this.wait(selector) - .wait((selector, className) => { - if (document.querySelector(selector).classList.contains(className)) + .wait((elementSelector, targetClass) => { + if (document.querySelector(elementSelector).classList.contains(targetClass)) return true; }, selector, className) .then(done) @@ -398,7 +399,7 @@ let actions = { }, autocompleteSearch: function(autocompleteSelector, searchValue, done) { - this.wait(autocompleteSelector) + this.wait(`${autocompleteSelector} input`) .waitToClick(`${autocompleteSelector} input`) .write(`${autocompleteSelector} vn-drop-down input`, searchValue) .waitToClick(`${autocompleteSelector} li.active`) @@ -488,7 +489,14 @@ let actions = { }) .then(done) .catch(done); - } + }, + + waitForSpinnerLoad: function(done) { + let spinnerSelector = 'vn-spinner > div'; + this.waitForClassNotPresent(spinnerSelector, 'is-active') + .then(done) + .catch(done); + }, }; Object.keys(actions).forEach(function(name) { diff --git a/e2e/helpers/nightmare.js b/e2e/helpers/nightmare.js index 664af43c9..7b579eb08 100644 --- a/e2e/helpers/nightmare.js +++ b/e2e/helpers/nightmare.js @@ -1,6 +1,4 @@ -/* eslint no-console: 0 */ const Nightmare = require('nightmare'); - let nightmare; module.exports = function createNightmare(width = 1280, height = 720) { diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js index 3c264006b..7586b1846 100644 --- a/e2e/helpers/selectors.js +++ b/e2e/helpers/selectors.js @@ -9,7 +9,7 @@ export default { ticketsButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="ticket.index"]', invoiceOutButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="invoiceOut.index"]', claimsButton: 'vn-main-menu [vn-id="apps-menu"] ul > li[ui-sref="claim.index"]', - returnToModuleIndexButton: `a[translate-attr="{title: 'Return to module index'}"]`, + returnToModuleIndexButton: 'a[ui-sref="order.index"]', userMenuButton: 'vn-topbar #user', userLocalWarehouse: 'vn-topbar vn-popover vn-autocomplete[field="$ctrl.localWarehouseFk"]', userLocalBank: 'vn-topbar vn-popover vn-autocomplete[field="$ctrl.localBankFk"]', @@ -19,7 +19,7 @@ export default { userConfigFirstAutocompleteClear: '#localWarehouse > div > div > div > vn-icon.clear', userConfigSecondAutocompleteClear: '#localBank > div > div > div > vn-icon.clear', userConfigThirdAutocompleteClear: '#localCompany > div > div > div > vn-icon.clear', - acceptVnConfirm: 'vn-confirm button[response=ACCEPT]' + acceptButton: 'vn-confirm button[response=ACCEPT]' }, clientsIndex: { searchClientInput: `${components.vnTextfield}`, @@ -90,7 +90,7 @@ export default { newBankEntityButton: 'vn-client-billing-data vn-icon-button[vn-tooltip="New bank entity"] > button', newBankEntityName: 'vn-client-billing-data > vn-dialog vn-textfield[label="Name"] input', newBankEntityBIC: 'vn-client-billing-data > vn-dialog vn-textfield[label="Swift / BIC"] input', - newBankEntityCode: 'vn-client-billing-data > vn-dialog vn-textfield[label="Code"] input', + newBankEntityCode: 'vn-client-billing-data > vn-dialog vn-textfield[label="Entity Code"] input', acceptBankEntityButton: 'vn-client-billing-data > vn-dialog button[response="ACCEPT"]', saveButton: `${components.vnSubmit}` }, @@ -116,7 +116,7 @@ export default { firstObservationDescriptionInput: 'vn-client-address-edit [name=observations] :nth-child(1) [model="observation.description"] input', secondObservationTypeAutocomplete: 'vn-client-address-edit [name=observations] :nth-child(2) [field="observation.observationTypeFk"]', secondObservationDescriptionInput: 'vn-client-address-edit [name=observations] :nth-child(2) [model="observation.description"] input', - addObservationButton: 'vn-client-address-edit vn-icon-button[icon="add_circle"]', + addObservationButton: 'vn-client-address-edit div[name="observations"] vn-icon-button[icon="add_circle"]', saveButton: `${components.vnSubmit}`, cancelCreateAddressButton: 'button[ui-sref="client.card.address.index"]', cancelEditAddressButton: 'vn-client-address-edit > form > vn-button-bar > vn-button > button' @@ -164,7 +164,7 @@ export default { balanceButton: 'vn-left-menu a[ui-sref="client.card.balance.index"]', companyAutocomplete: 'vn-client-balance-index vn-autocomplete[field="$ctrl.companyFk"]', newPaymentButton: `${components.vnFloatButton}`, - newPaymentBankInut: 'vn-client-balance-create vn-textfield[field="$ctrl.receipt.bankFk"] input', + newPaymentBank: 'vn-client-balance-create vn-autocomplete[field="$ctrl.receipt.bankFk"]', newPaymentAmountInput: 'vn-client-balance-create vn-input-number[field="$ctrl.receipt.amountPaid"] input', saveButton: 'vn-client-balance-create vn-button[label="Save"]', firstBalanceLine: 'vn-client-balance-index vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(8)' @@ -176,7 +176,6 @@ export default { }, itemsIndex: { searchIcon: 'vn-item-index vn-searchbar vn-icon[icon="search"]', - goBackToModuleIndexButton: 'vn-item-descriptor a[href="#!/item/index"]', createItemButton: `${components.vnFloatButton}`, searchResult: 'vn-item-index a.vn-tr', searchResultPreviewButton: 'vn-item-index .buttons > [icon="desktop_windows"]', @@ -211,6 +210,7 @@ export default { cancelButton: 'button[ui-sref="item.index"]' }, itemDescriptor: { + goBackToModuleIndexButton: 'vn-item-descriptor a[href="#!/item/index"]', moreMenu: 'vn-item-descriptor vn-icon-menu > div > vn-icon', moreMenuRegularizeButton: 'vn-item-descriptor vn-drop-down > vn-popover ul > li[name="Regularize stock"]', regularizeQuantityInput: 'vn-item-descriptor > vn-dialog > div > form > div.body > tpl-body > div > vn-textfield > div > div > div.infix > input', @@ -290,9 +290,9 @@ export default { barcode: 'vn-item-summary [name="barcode"]' }, itemDiary: { - thirdTicketId: 'vn-item-diary vn-tbody > vn-tr:nth-child(3) > vn-td:nth-child(2) > span', + secondTicketId: 'vn-item-diary vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(2) > span', firstBalance: 'vn-item-diary vn-tbody > vn-tr:nth-child(1) > vn-td.balance', - fifthBalance: 'vn-item-diary vn-tbody > vn-tr:nth-child(5) > vn-td.balance', + fourthBalance: 'vn-item-diary vn-tbody > vn-tr:nth-child(4) > vn-td.balance', warehouseAutocomplete: 'vn-item-diary vn-autocomplete[field="$ctrl.warehouseFk"]', }, itemLog: { @@ -300,12 +300,20 @@ export default { fifthLineCreatedProperty: 'vn-item-log > vn-log vn-tbody > vn-tr:nth-child(5) > vn-td > vn-one:nth-child(3) > div span:nth-child(3)', }, ticketSummary: { + header: 'vn-ticket-summary > vn-card > div > h5', + state: 'vn-ticket-summary vn-label-value[label="State"] > section > span', + route: 'vn-ticket-summary vn-label-value[label="Route"] > section > span', + total: 'vn-ticket-summary vn-one.taxes > p:nth-child(3) > strong', sale: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr', firstSaleItemId: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > span', + firstSaleDescriptorImage: 'vn-ticket-summary vn-item-descriptor-popover > vn-popover vn-item-descriptor img', + itemDescriptorPopover: 'vn-ticket-summary vn-item-descriptor-popover > vn-popover', + itemDescriptorPopoverItemDiaryButton: 'vn-ticket-summary > vn-item-descriptor-popover a[href="#!/item/2/diary?warehouseFk=5&ticketFk=20"]', popoverDiaryButton: 'vn-ticket-summary vn-item-descriptor-popover vn-item-descriptor vn-icon[icon="icon-transaction"]', firstSaleQuantity: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(3)', firstSaleDiscount: 'vn-ticket-summary [name="sales"] vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(6)', - invoiceOutRef: 'vn-ticket-summary > vn-card > div > vn-horizontal > vn-one:nth-child(1) > vn-label-value:nth-child(6) > section > span' + invoiceOutRef: 'vn-ticket-summary > vn-card > div > vn-horizontal > vn-one:nth-child(1) > vn-label-value:nth-child(6) > section > span', + setOk: 'vn-ticket-summary vn-button[label="SET OK"] > button' }, ticketsIndex: { openAdvancedSearchButton: 'vn-ticket-index vn-searchbar t-right-icons > vn-icon[icon="keyboard_arrow_down"]', @@ -332,16 +340,17 @@ export default { createButton: `${components.vnSubmit}` }, ticketDescriptor: { + idLabelValue: 'vn-ticket-descriptor vn-label-value[label="Id"]', + stateLabelValue: 'vn-ticket-descriptor vn-label-value[label="State"]', + goBackToModuleIndexButton: 'vn-ticket-descriptor a[ui-sref="ticket.index"]', moreMenu: 'vn-ticket-descriptor vn-icon-menu > div > vn-icon', moreMenuAddStowaway: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Add stowaway"]', moreMenuDeleteStowawayButton: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Remove stowaway"]', moreMenuAddToTurn: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Add turn"]', moreMenuDeleteTicket: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Delete ticket"]', moreMenuMakeInvoice: 'vn-ticket-descriptor vn-drop-down > vn-popover ul > li[name="Make invoice"]', - addStowawayDialogSecondTicket: 'vn-ticket-descriptor > vn-add-stowaway > vn-dialog vn-table vn-tr:nth-child(2)', - shipSelectButton: 'vn-ticket-descriptor > div > div.body > div.quicklinks > vn-button-menu[icon="icon-stowaway"]', + addStowawayDialogFirstTicket: 'vn-ticket-descriptor > vn-add-stowaway > vn-dialog vn-table vn-tbody vn-tr', shipButton: 'vn-ticket-descriptor > div > div.body > div.quicklinks vn-icon[icon="icon-stowaway"]', - shipMenuSecondTicket: 'vn-ticket-descriptor div.quicklinks vn-drop-down li:nth-child(2)', thursdayButton: 'vn-ticket-descriptor > vn-dialog > div > form > div.body > tpl-body > div > vn-tool-bar > vn-button:nth-child(4)', saturdayButton: 'vn-ticket-descriptor > vn-dialog > div > form > div.body > tpl-body > div > vn-tool-bar > vn-button:nth-child(6)', closeStowawayDialog: 'vn-ticket-descriptor > vn-add-stowaway > vn-dialog > div > button[class="close"]', @@ -375,27 +384,33 @@ export default { saleButton: 'vn-left-menu a[ui-sref="ticket.card.sale"]', saleLine: 'vn-table div > vn-tbody > vn-tr', saleDescriptorPopover: 'vn-ticket-sale vn-item-descriptor-popover > vn-popover', - saleDescriptorPopoverSummaryButton: 'vn-item-descriptor-popover a[href="#!/item/1/summary"]', + saleDescriptorPopoverSummaryButton: 'vn-item-descriptor-popover a[ui-sref="item.card.summary({id: $ctrl.item.id})"]', descriptorItemDiaryButton: 'vn-item-descriptor .quicklinks.ng-scope > vn-horizontal > a > vn-icon > i', newItemButton: 'vn-float-button[icon="add"]', + moreMenu: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] > div > button', + moreMenuCreateClaim: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Add claim"]', + moreMenuReserve: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Mark as reserved"]', + moreMenuUnmarkReseved: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Unmark as reserved"]', + moreMenuUpdateDiscount: 'vn-ticket-sale vn-tool-bar > vn-button-menu[vn-id="more-button"] vn-drop-down > vn-popover ul > li[name="Update discount"]', + moreMenuUpdateDiscountInput: 'vn-ticket-sale vn-dialog form vn-ticket-sale-edit-discount vn-input-number[model="$ctrl.newDiscount"] input', + firstSaleClaimIcon: 'vn-ticket-sale vn-table vn-tbody > vn-tr:nth-child(1) vn-icon[icon="icon-claims"]', firstSaleDescriptorImage: 'vn-ticket-sale vn-item-descriptor-popover > vn-popover vn-item-descriptor img', firstSaleText: 'vn-table div > vn-tbody > vn-tr:nth-child(1)', firstSaleThumbnailImage: 'vn-ticket-sale:nth-child(1) vn-tr:nth-child(1) vn-td:nth-child(3) > img', firstSaleZoomedImage: 'body > div > div > img', - firstSaleQuantity: 'vn-textfield[model="sale.quantity"]:nth-child(1) input', - firstSaleQuantityCell: 'vn-ticket-sale vn-tr:nth-child(1) > vn-td-editable', + firstSaleQuantity: 'vn-input-number[model="sale.quantity"]:nth-child(1) input', + firstSaleQuantityCell: 'vn-ticket-sale vn-tr:nth-child(1) > vn-td-editable:nth-child(5)', firstSaleQuantityClearInput: 'vn-textfield[model="sale.quantity"] div.suffix > i', - firstSaleID: 'vn-ticket-sale:nth-child(1) vn-td:nth-child(4) > span', - firstSalePrice: 'vn-ticket-sale:nth-child(1) vn-tr:nth-child(1) > vn-td:nth-child(7) > span', - firstSalePriceInput: 'vn-ticket-sale:nth-child(1) vn-popover.edit.dialog-summary.ng-isolate-scope.vn-popover.shown vn-textfield input', - firstSaleDiscount: 'vn-ticket-sale:nth-child(1) vn-td:nth-child(8) > span', - firstSaleDiscountInput: 'vn-ticket-sale:nth-child(1) vn-ticket-sale-edit-discount vn-textfield input', + firstSaleID: 'vn-ticket-sale:nth-child(1) vn-td-editable:nth-child(4) text > span', + firstSalePrice: 'vn-ticket-sale:nth-child(1) vn-tr:nth-child(1) > vn-td:nth-child(7)', + firstSalePriceInput: 'vn-ticket-sale:nth-child(1) vn-popover.edit.dialog-summary.ng-isolate-scope.vn-popover.shown vn-input-number input', + firstSaleDiscount: 'vn-ticket-sale:nth-child(1) vn-td:nth-child(8)', + firstSaleDiscountInput: 'vn-ticket-sale:nth-child(1) vn-ticket-sale-edit-discount vn-input-number input', firstSaleImport: 'vn-ticket-sale:nth-child(1) vn-td:nth-child(9)', firstSaleReservedIcon: 'vn-ticket-sale vn-tr:nth-child(1) > vn-td:nth-child(2) > vn-icon:nth-child(3)', - firstSaleColour: 'vn-ticket-sale vn-tr:nth-child(1) vn-td:nth-child(6) section:nth-child(1)', - firstSaleLength: 'vn-ticket-sale vn-tr:nth-child(1) vn-td:nth-child(6) section:nth-child(3)', + firstSaleColour: 'vn-ticket-sale vn-tr:nth-child(1) vn-td-editable:nth-child(6) section:nth-child(1)', + firstSaleLength: 'vn-ticket-sale vn-tr:nth-child(1) vn-td-editable:nth-child(6) section:nth-child(3)', firstSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(1) vn-check[field="sale.checked"] md-checkbox', - secondSaleClaimIcon: 'vn-ticket-sale > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(2) > a > vn-icon', secondSaleColour: 'vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(6) section:nth-child(5)', secondSalePrice: 'vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(7) > span', secondSaleDiscount: 'vn-ticket-sale vn-tr:nth-child(2) vn-td:nth-child(8)', @@ -407,12 +422,12 @@ export default { thirdSaleCheckbox: 'vn-ticket-sale vn-tr:nth-child(3) vn-check[field="sale.checked"] md-checkbox', deleteSaleButton: 'vn-ticket-sale vn-tool-bar > vn-button[icon="delete"]', transferSaleButton: 'vn-ticket-sale vn-tool-bar > vn-button[icon="call_split"]', - moveToTicketInput: 'vn-ticket-sale vn-popover.transfer vn-textfield[model="$ctrl.moveToTicketFk"] input', + moveToTicketInput: 'vn-ticket-sale vn-popover.transfer vn-textfield[model="$ctrl.receiverTicketId"] input', moveToTicketInputClearButton: 'vn-popover.shown i[title="Clear"]', moveToTicketButton: 'vn-ticket-sale vn-popover.transfer vn-icon[icon="arrow_forward_ios"]', moveToNewTicketButton: 'vn-ticket-sale vn-popover.transfer vn-button[label="New ticket"]', acceptDeleteLineButton: 'vn-ticket-sale > vn-confirm[vn-id="delete-lines"] button[response=ACCEPT]', - acceptDeleteTicketButton: 'vn-ticket-sale > vn-confirm[vn-id="deleteConfirmation"] button[response=ACCEPT]', + acceptDeleteTicketButton: 'vn-ticket-sale > vn-confirm[vn-id="delete-ticket"] button[response=ACCEPT]', stateMenuButton: 'vn-ticket-sale vn-tool-bar > vn-button-menu[label="State"]' }, ticketTracking: { @@ -479,6 +494,24 @@ export default { searchResult: 'vn-claim-index vn-card > div > vn-table > div > vn-tbody > a', searchButton: 'vn-claim-index vn-searchbar vn-icon[icon="search"]' }, + claimDescriptor: { + moreMenu: 'vn-claim-descriptor vn-icon-menu[vn-id="more-button"]', + moreMenuDeleteClaim: 'vn-claim-descriptor vn-icon-menu vn-drop-down li[name="Delete claim"]', + acceptDeleteClaim: 'vn-claim-descriptor > vn-confirm[vn-id="confirm-delete-claim"] button[response="ACCEPT"]' + }, + claimSummary: { + header: 'vn-claim-summary > vn-card > div > h5', + state: 'vn-claim-summary vn-label-value[label="State"] > section > span', + observation: 'vn-claim-summary vn-textarea[model="$ctrl.summary.claim.observation"] > div > textarea', + firstSaleItemId: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(4) > vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(1) > span', + firstSaleDescriptorImage: 'vn-claim-summary vn-item-descriptor-popover > vn-popover vn-item-descriptor img', + itemDescriptorPopover: 'vn-claim-summary vn-item-descriptor-popover > vn-popover', + itemDescriptorPopoverItemDiaryButton: 'vn-claim-summary > vn-item-descriptor-popover a[href="#!/item/2/diary"]', + firstDevelopmentWorker: 'vn-claim-summary vn-horizontal > vn-auto:nth-child(5) > vn-table > div > vn-tbody > vn-tr:nth-child(1) > vn-td:nth-child(4) > span', + firstDevelopmentWorkerGoToClientButton: 'vn-claim-summary > vn-worker-descriptor-popover > vn-popover vn-worker-descriptor div.quicklinks > a[href="#!/client/21/summary"]', + firstActionTicketId: 'vn-claim-summary > vn-card > div > vn-horizontal > vn-auto:nth-child(6) > vn-table > div > vn-tbody > vn-tr > vn-td:nth-child(2) > span', + firstActionTicketDescriptor: 'vn-claim-summary > vn-ticket-descriptor-popover > vn-popover > div > div.content > vn-ticket-descriptor' + }, claimBasicData: { claimStateAutocomplete: 'vn-claim-basic-data vn-autocomplete[field="$ctrl.claim.claimStateFk"]', responsabilityInputRange: 'vn-input-range', @@ -486,10 +519,13 @@ export default { saveButton: `${components.vnSubmit}` }, claimDetail: { + secondItemDiscount: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(7) > span', + discountInput: 'vn-claim-detail vn-popover vn-input-number[model="$ctrl.newDiscount"] > div > div > div.infix > input', + discoutPopoverMana: 'vn-claim-detail > vn-popover > div > div.content > div > vn-horizontal > h5', addItemButton: 'vn-claim-detail a vn-float-button', firstClaimableSaleFromTicket: 'vn-claim-detail > vn-dialog vn-tbody > vn-tr', claimDetailLine: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr', - secondItemQuantityInput: 'vn-claim-detail vn-tr:nth-child(2) vn-input-number[model="saleClaimed.quantity"] input', + firstItemQuantityInput: 'vn-claim-detail vn-tr:nth-child(1) vn-input-number[model="saleClaimed.quantity"] input', totalClaimed: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-horizontal > div > vn-label-value:nth-child(2) > section > span', secondItemDeleteButton: 'vn-claim-detail > vn-vertical > vn-card > div > vn-vertical > vn-table > div > vn-tbody > vn-tr:nth-child(2) > vn-td:nth-child(9) > vn-icon-button > button > vn-icon > i' }, @@ -513,10 +549,8 @@ export default { importTicketButton: 'vn-claim-action vn-button[label="Import ticket"]', secondImportableTicket: 'vn-claim-action > vn-vertical > vn-popover > div > div.content > div > vn-table > div > vn-tbody > vn-tr:nth-child(2)', firstLineDestination: 'vn-claim-action vn-tr:nth-child(1) vn-autocomplete[field="saleClaimed.claimDestinationFk"]', - thirdLineDestination: 'vn-claim-action vn-tr:nth-child(3) vn-autocomplete[field="saleClaimed.claimDestinationFk"]', + secondLineDestination: 'vn-claim-action vn-tr:nth-child(2) vn-autocomplete[field="saleClaimed.claimDestinationFk"]', firstDeleteLine: 'vn-claim-action vn-tr:nth-child(1) vn-icon-button[icon="delete"]', - secondDeleteLine: 'vn-claim-action vn-tr:nth-child(2) vn-icon-button[icon="delete"]', - thirdDeleteLine: 'vn-claim-action vn-tr:nth-child(3) vn-icon-button[icon="delete"]', isPaidWithManaCheckbox: 'vn-check[field="$ctrl.claim.isChargedToMana"] md-checkbox' }, ordersIndex: { @@ -572,6 +606,9 @@ export default { descriptionInput: 'vn-route-create vn-textfield[field="$ctrl.route.description"] input', submitButton: 'vn-route-create vn-submit > input[type="submit"]' }, + routeDescriptor: { + volume: 'vn-route-descriptor vn-label-value[label="Volume"] > section > span' + }, routeSummary: { routeId: 'vn-route-summary > vn-card > div > vn-horizontal > vn-one:nth-child(1) > vn-label-value:nth-child(1) > section > span' }, @@ -591,6 +628,7 @@ export default { secondTicketPriority: 'vn-route-tickets vn-tr:nth-child(2) vn-textfield[model="ticket.priority"] input', thirdTicketPriority: 'vn-route-tickets vn-tr:nth-child(3) vn-textfield[model="ticket.priority"] input', fourthTicketPriority: 'vn-route-tickets vn-tr:nth-child(4) vn-textfield[model="ticket.priority"] input', + eleventhTicketPriority: 'vn-route-tickets vn-tr:nth-child(11) vn-textfield[model="ticket.priority"] input', firstTicketCheckbox: 'vn-route-tickets vn-tr:nth-child(1) vn-check md-checkbox', buscamanButton: 'vn-route-tickets vn-button[icon="icon-buscaman"]', firstTicketDeleteButton: 'vn-route-tickets vn-tr:nth-child(1) vn-icon[icon="delete"]', diff --git a/e2e/paths/02-client-module/03_edit_fiscal_data.spec.js b/e2e/paths/02-client-module/03_edit_fiscal_data.spec.js index cd005cae0..9ae1f6ae4 100644 --- a/e2e/paths/02-client-module/03_edit_fiscal_data.spec.js +++ b/e2e/paths/02-client-module/03_edit_fiscal_data.spec.js @@ -227,11 +227,11 @@ describe('Client Edit fiscalData path', () => { expect(result).toBe('unchecked'); }); - it('should confirm frozen checkbox is unchecked', async() => { + it('should confirm frozen checkbox is checked', async() => { const result = await nightmare .checkboxState(selectors.clientFiscalData.frozenCheckbox); - expect(result).toBe('unchecked'); + expect(result).toBe('checked'); }); it('should confirm Has to invoice checkbox is unchecked', async() => { diff --git a/e2e/paths/02-client-module/12_lock_of_verified_data.spec.js b/e2e/paths/02-client-module/12_lock_of_verified_data.spec.js index 971d1e5f9..d8378e577 100644 --- a/e2e/paths/02-client-module/12_lock_of_verified_data.spec.js +++ b/e2e/paths/02-client-module/12_lock_of_verified_data.spec.js @@ -8,7 +8,7 @@ describe('Client lock verified data path', () => { beforeAll(() => { nightmare .loginAndModule('salesPerson', 'client') - .accessToSearchResult('Petter Parker') + .accessToSearchResult('Hank Pym') .accessToSection('client.card.fiscalData'); }); @@ -27,7 +27,7 @@ describe('Client lock verified data path', () => { const result = await nightmare .wait(selectors.clientFiscalData.socialNameInput) .clearInput(selectors.clientFiscalData.socialNameInput) - .write(selectors.clientFiscalData.socialNameInput, 'salesPerson was here') + .write(selectors.clientFiscalData.socialNameInput, 'Captain America Civil War') .waitToClick(selectors.clientFiscalData.saveButton) .waitForLastSnackbar(); @@ -39,55 +39,16 @@ describe('Client lock verified data path', () => { .reloadSection('client.card.fiscalData') .waitToGetProperty(selectors.clientFiscalData.socialNameInput, 'value'); - expect(result).toEqual('salesPerson was here'); + expect(result).toEqual('Captain America Civil War'); }); }); describe('as administrative', () => { beforeAll(() => { nightmare - .waitForLogin('administrative'); - }); - - it('should navigate to clients index', async() => { - const url = await nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl(); - - expect(url.hash).toEqual('#!/client/index'); - }); - - it('should search again for the user Petter Parker', async() => { - const resultCount = await nightmare - .write(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult); - - expect(resultCount).toEqual(1); - }); - - it(`should click on the search result to access to the Petter Parkers fiscal data`, async() => { - const url = await nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); - }); - - it(`should click on the fiscal data button`, async() => { - const url = await nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); + .loginAndModule('administrative', 'client') + .accessToSearchResult('Hank Pym') + .accessToSection('client.card.fiscalData'); }); it('should confirm verified data button is enabled for administrative', async() => { @@ -110,18 +71,18 @@ describe('Client lock verified data path', () => { }); it('should confirm Verified data checkbox is checked', async() => { - const result = await nightmare + const isChecked = await nightmare .reloadSection('client.card.fiscalData') .checkboxState(selectors.clientFiscalData.verifiedDataCheckbox); - expect(result).toBe('checked'); + expect(isChecked).toEqual('checked'); }); it('should again edit the social name', async() => { const result = await nightmare .wait(selectors.clientFiscalData.socialNameInput) .clearInput(selectors.clientFiscalData.socialNameInput) - .write(selectors.clientFiscalData.socialNameInput, 'administrative was here') + .write(selectors.clientFiscalData.socialNameInput, 'Ant-Man and the Wasp') .waitToClick(selectors.clientFiscalData.saveButton) .waitForLastSnackbar(); @@ -133,71 +94,32 @@ describe('Client lock verified data path', () => { .reloadSection('client.card.fiscalData') .waitToGetProperty(selectors.clientFiscalData.socialNameInput, 'value'); - expect(result).toEqual('administrative was here'); + expect(result).toEqual('Ant-Man and the Wasp'); }); }); describe('as salesPerson second run', () => { beforeAll(() => { nightmare - .waitForLogin('salesPerson'); - }); - - it('should again click on the Clients button of the top bar menu', async() => { - const url = await nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl(); - - expect(url.hash).toEqual('#!/client/index'); - }); - - it('should again search for the user Petter Parker', async() => { - const resultCount = await nightmare - .write(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult); - - expect(resultCount).toEqual(1); - }); - - it(`should click on the search result to access to the client's fiscal data`, async() => { - const url = await nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); - }); - - it(`should click on the fiscal data button to start editing`, async() => { - const url = await nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); + .loginAndModule('salesPerson', 'client') + .accessToSearchResult('Hank Pym') + .accessToSection('client.card.fiscalData'); }); it('should confirm verified data button is disabled once again for salesPerson', async() => { - const result = await nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckbox) + const isChecked = await nightmare + .waitForClassPresent(selectors.clientFiscalData.verifiedDataCheckbox, 'md-checked') .evaluate(selector => { return document.querySelector(selector).getAttribute('disabled'); }, selectors.clientFiscalData.verifiedDataCheckbox); - expect(result).toBeTruthy(); + expect(isChecked).toBeTruthy(); }); it('should not be able to save change throwing a verified data error', async() => { const result = await nightmare .clearInput(selectors.clientFiscalData.socialNameInput) - .write(selectors.clientFiscalData.socialNameInput, 'salesPerson was here') + .write(selectors.clientFiscalData.socialNameInput, 'This wont happen') .waitToClick(selectors.clientFiscalData.saveButton) .waitForSnackbar(); @@ -209,64 +131,25 @@ describe('Client lock verified data path', () => { beforeAll(() => { nightmare .forceReloadSection('client.card.fiscalData') - .waitForLogin('salesAssistant'); - }); - - it('should now navigate to clients index', async() => { - const url = await nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl(); - - expect(url.hash).toEqual('#!/client/index'); - }); - - it('should now search again for the user Petter Parker', async() => { - const resultCount = await nightmare - .write(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult); - - expect(resultCount).toEqual(1); - }); - - it(`should click on the search result to access to the Petter Parkers fiscal data`, async() => { - const url = await nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); - }); - - it(`should click on the fiscal data button`, async() => { - const url = await nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); + .loginAndModule('salesAssistant', 'client') + .accessToSearchResult('Hank Pym') + .accessToSection('client.card.fiscalData'); }); it('should confirm verified data button is enabled for salesAssistant', async() => { - const result = await nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckbox) + const isDisabled = await nightmare + .waitForClassPresent(selectors.clientFiscalData.verifiedDataCheckbox, 'md-checked') .evaluate(selector => { - return document.querySelector(selector).getAttribute('disabled'); + return document.querySelector(selector).getAttribute('aria-disabled'); }, selectors.clientFiscalData.verifiedDataCheckbox); - expect(result).toBeFalsy(); + expect(isDisabled).toEqual('false'); }); it('should now edit the social name', async() => { const result = await nightmare .clearInput(selectors.clientFiscalData.socialNameInput) - .write(selectors.clientFiscalData.socialNameInput, 'salesAssistant was here') + .write(selectors.clientFiscalData.socialNameInput, 'new social name edition') .waitToClick(selectors.clientFiscalData.saveButton) .waitForLastSnackbar(); @@ -278,65 +161,26 @@ describe('Client lock verified data path', () => { .reloadSection('client.card.fiscalData') .waitToGetProperty(selectors.clientFiscalData.socialNameInput, 'value'); - expect(result).toEqual('salesAssistant was here'); + expect(result).toEqual('new social name edition'); }); }); describe('as salesPerson third run', () => { beforeAll(() => { nightmare - .waitForLogin('salesPerson'); - }); - - it('should now click on the Clients button of the top bar menu', async() => { - const url = await nightmare - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.clientsButton) - .wait(selectors.clientsIndex.createClientButton) - .parsedUrl(); - - expect(url.hash).toEqual('#!/client/index'); - }); - - it('should once again search for the user Petter Parker', async() => { - const resultCount = await nightmare - .write(selectors.clientsIndex.searchClientInput, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchButton) - .waitForNumberOfElements(selectors.clientsIndex.searchResult, 1) - .countElement(selectors.clientsIndex.searchResult); - - expect(resultCount).toEqual(1); - }); - - it(`should click on the search result to access to the client's fiscal data`, async() => { - const url = await nightmare - .waitForTextInElement(selectors.clientsIndex.searchResult, 'Petter Parker') - .waitToClick(selectors.clientsIndex.searchResult) - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); - }); - - it(`should click on the fiscal data button to start editing`, async() => { - const url = await nightmare - .waitToClick(selectors.clientFiscalData.fiscalDataButton) - .waitForURL('fiscal-data') - .parsedUrl(); - - expect(url.hash).toContain('fiscal-data'); + .loginAndModule('salesPerson', 'client') + .accessToSearchResult('Hank Pym') + .accessToSection('client.card.fiscalData'); }); it('should confirm verified data button is enabled once again', async() => { - const result = await nightmare - .wait(selectors.clientFiscalData.verifiedDataCheckbox) + const isChecked = await nightmare + .waitForClassPresent(selectors.clientFiscalData.verifiedDataCheckbox, 'md-checked') .evaluate(selector => { return document.querySelector(selector).getAttribute('disabled'); }, selectors.clientFiscalData.verifiedDataCheckbox); - expect(result).toBeTruthy(); + expect(isChecked).toBeTruthy(); }); it('should confirm the form is enabled for salesPerson', async() => { diff --git a/e2e/paths/02-client-module/14_balance.spec.js b/e2e/paths/02-client-module/14_balance.spec.js index e01840fb4..b661d998b 100644 --- a/e2e/paths/02-client-module/14_balance.spec.js +++ b/e2e/paths/02-client-module/14_balance.spec.js @@ -48,8 +48,7 @@ describe('Client balance path', () => { it('should create a new payment that clears the debt', async() => { let result = await nightmare - .clearInput(selectors.clientBalance.newPaymentBankInut) - .write(selectors.clientBalance.newPaymentBankInut, '2') + .autocompleteSearch(selectors.clientBalance.newPaymentBank, 'Pay on receipt') .waitToClick(selectors.clientBalance.saveButton) .waitForLastSnackbar(); diff --git a/e2e/paths/03-worker-module/02_time_control.spec.js b/e2e/paths/03-worker-module/02_time_control.spec.js index 0e72f40d9..89273d26c 100644 --- a/e2e/paths/03-worker-module/02_time_control.spec.js +++ b/e2e/paths/03-worker-module/02_time_control.spec.js @@ -17,6 +17,7 @@ describe('Worker time control path', () => { const scanTime = '07:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.mondayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.firstEntryOfMonday, 'innerText'); @@ -28,6 +29,7 @@ describe('Worker time control path', () => { const scanTime = '10:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.mondayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.secondEntryOfMonday, 'innerText'); @@ -39,6 +41,7 @@ describe('Worker time control path', () => { const scanTime = '15:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.mondayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.thirdEntryOfMonday, 'innerText'); @@ -50,6 +53,7 @@ describe('Worker time control path', () => { const scanTime = '10:20'; const result = await nightmare .waitToClick(selectors.workerTimeControl.mondayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.fourthEntryOfMonday, 'innerText'); @@ -78,6 +82,7 @@ describe('Worker time control path', () => { const scanTime = '08:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.tuesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.firstEntryOfTuesday, 'innerText'); @@ -89,6 +94,7 @@ describe('Worker time control path', () => { const scanTime = '10:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.tuesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.secondEntryOfTuesday, 'innerText'); @@ -100,6 +106,7 @@ describe('Worker time control path', () => { const scanTime = '10:20'; const result = await nightmare .waitToClick(selectors.workerTimeControl.tuesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.thirdEntryOfTuesday, 'innerText'); @@ -111,6 +118,7 @@ describe('Worker time control path', () => { const scanTime = '16:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.tuesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.fourthEntryOfTuesday, 'innerText'); @@ -131,6 +139,7 @@ describe('Worker time control path', () => { const scanTime = '09:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.wednesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.firstEntryOfWednesday, 'innerText'); @@ -142,6 +151,7 @@ describe('Worker time control path', () => { const scanTime = '10:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.wednesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.secondEntryOfWednesday, 'innerText'); @@ -153,6 +163,7 @@ describe('Worker time control path', () => { const scanTime = '10:20'; const result = await nightmare .waitToClick(selectors.workerTimeControl.wednesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.thirdEntryOfWednesday, 'innerText'); @@ -164,6 +175,7 @@ describe('Worker time control path', () => { const scanTime = '17:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.wednesdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.fourthEntryOfWednesday, 'innerText'); @@ -184,6 +196,7 @@ describe('Worker time control path', () => { const scanTime = '09:59'; const result = await nightmare .waitToClick(selectors.workerTimeControl.thursdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.firstEntryOfThursday, 'innerText'); @@ -195,6 +208,7 @@ describe('Worker time control path', () => { const scanTime = '10:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.thursdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.secondEntryOfThursday, 'innerText'); @@ -206,6 +220,7 @@ describe('Worker time control path', () => { const scanTime = '10:20'; const result = await nightmare .waitToClick(selectors.workerTimeControl.thursdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.thirdEntryOfThursday, 'innerText'); @@ -217,6 +232,7 @@ describe('Worker time control path', () => { const scanTime = '17:59'; const result = await nightmare .waitToClick(selectors.workerTimeControl.thursdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.fourthEntryOfThursday, 'innerText'); @@ -237,6 +253,7 @@ describe('Worker time control path', () => { const scanTime = '07:30'; const result = await nightmare .waitToClick(selectors.workerTimeControl.fridayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.firstEntryOfFriday, 'innerText'); @@ -248,6 +265,7 @@ describe('Worker time control path', () => { const scanTime = '10:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.fridayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.secondEntryOfFriday, 'innerText'); @@ -259,6 +277,7 @@ describe('Worker time control path', () => { const scanTime = '10:20'; const result = await nightmare .waitToClick(selectors.workerTimeControl.fridayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.thirdEntryOfFriday, 'innerText'); @@ -270,6 +289,7 @@ describe('Worker time control path', () => { const scanTime = '15:30'; const result = await nightmare .waitToClick(selectors.workerTimeControl.fridayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.fourthEntryOfFriday, 'innerText'); @@ -299,6 +319,7 @@ describe('Worker time control path', () => { const scanTime = '06:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.saturdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.firstEntryOfSaturday, 'innerText'); @@ -310,6 +331,7 @@ describe('Worker time control path', () => { const scanTime = '13:40'; const result = await nightmare .waitToClick(selectors.workerTimeControl.saturdayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.secondEntryOfSaturday, 'innerText'); @@ -330,6 +352,7 @@ describe('Worker time control path', () => { const scanTime = '05:00'; const result = await nightmare .waitToClick(selectors.workerTimeControl.sundayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.firstEntryOfSunday, 'innerText'); @@ -341,6 +364,7 @@ describe('Worker time control path', () => { const scanTime = '12:40'; const result = await nightmare .waitToClick(selectors.workerTimeControl.sundayAddTimeButton) + .clearInput(selectors.workerTimeControl.timeDialogInput) .write(selectors.workerTimeControl.timeDialogInput, scanTime) .waitToClick(selectors.workerTimeControl.confirmButton) .waitToGetProperty(selectors.workerTimeControl.secondEntryOfSunday, 'innerText'); @@ -385,6 +409,7 @@ describe('Worker time control path', () => { it('should Hank Pym check his hours are alright', async() => { const wholeWeekHours = await nightmare + .waitForTextInElement(selectors.workerTimeControl.weekWorkedHours, '56:00 Hours') .waitToGetProperty(selectors.workerTimeControl.weekWorkedHours, 'innerText'); expect(wholeWeekHours).toEqual('56:00 Hours'); diff --git a/e2e/paths/04-item-module/09_regularize.spec.js b/e2e/paths/04-item-module/09_regularize.spec.js index 8d352b493..0208a0eb5 100644 --- a/e2e/paths/04-item-module/09_regularize.spec.js +++ b/e2e/paths/04-item-module/09_regularize.spec.js @@ -174,9 +174,9 @@ describe('Item regularize path', () => { expect(url.hash).toEqual('#!/ticket/index'); }); - it('should search for the ticket with id 23 once again', async() => { + it('should search for the ticket with id 25 once again', async() => { const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, 23) + .write(selectors.ticketsIndex.searchTicketInput, 25) .waitToClick(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult); @@ -186,7 +186,7 @@ describe('Item regularize path', () => { it(`should now click on the search result to access to the ticket summary`, async() => { const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, '23') + .waitForTextInElement(selectors.ticketsIndex.searchResult, '25') .waitToClick(selectors.ticketsIndex.searchResult) .waitForURL('/summary') .parsedUrl(); diff --git a/e2e/paths/04-item-module/10_item_index.spec.js b/e2e/paths/04-item-module/10_item_index.spec.js index 64b7b2874..b83b37c59 100644 --- a/e2e/paths/04-item-module/10_item_index.spec.js +++ b/e2e/paths/04-item-module/10_item_index.spec.js @@ -39,7 +39,7 @@ describe('Item index path', () => { it('should navigate forth and back to see the images column is still visible', async() => { const imageVisible = await nightmare .waitToClick(selectors.itemsIndex.searchResult) - .waitToClick(selectors.itemsIndex.goBackToModuleIndexButton) + .waitToClick(selectors.itemDescriptor.goBackToModuleIndexButton) .waitToClick(selectors.itemsIndex.searchIcon) .wait(selectors.itemsIndex.searchResult) .isVisible(selectors.itemsIndex.firstItemImage); @@ -76,7 +76,7 @@ describe('Item index path', () => { it('should now navigate forth and back to see the ids column is now visible', async() => { const idVisible = await nightmare .waitToClick(selectors.itemsIndex.searchResult) - .waitToClick(selectors.itemsIndex.goBackToModuleIndexButton) + .waitToClick(selectors.itemDescriptor.goBackToModuleIndexButton) .waitToClick(selectors.itemsIndex.searchIcon) .wait(selectors.itemsIndex.searchResult) .isVisible(selectors.itemsIndex.firstItemId); diff --git a/e2e/paths/05-ticket-module/01_observations.spec.js b/e2e/paths/05-ticket-module/01_observations.spec.js index 3430a6771..42193ea57 100644 --- a/e2e/paths/05-ticket-module/01_observations.spec.js +++ b/e2e/paths/05-ticket-module/01_observations.spec.js @@ -7,13 +7,12 @@ describe('Ticket Create notes path', () => { beforeAll(() => { return nightmare .loginAndModule('employee', 'ticket') - .accessToSearchResult('id:1') + .accessToSearchResult(1) .accessToSection('ticket.card.observation'); }); - it(`should click create a new note and delete a former one`, async() => { + it('should create a new note', async() => { let result = await nightmare - .waitToClick(selectors.ticketNotes.firstNoteRemoveButton) .waitToClick(selectors.ticketNotes.addNoteButton) .autocompleteSearch(selectors.ticketNotes.firstNoteTypeAutocomplete, 'observation one') .write(selectors.ticketNotes.firstDescriptionInput, 'description') @@ -23,7 +22,7 @@ describe('Ticket Create notes path', () => { expect(result).toEqual('Data saved!'); }); - it(`should confirm the note is the expected one`, async() => { + it('should confirm the note is the expected one', async() => { let result = await nightmare .reloadSection('ticket.card.observation') .waitToGetProperty(`${selectors.ticketNotes.firstNoteTypeAutocomplete} input`, 'value'); @@ -35,4 +34,13 @@ describe('Ticket Create notes path', () => { expect(firstDescription).toEqual('description'); }); + + it('should delete the note', async() => { + let result = await nightmare + .waitToClick(selectors.ticketNotes.firstNoteRemoveButton) + .waitToClick(selectors.ticketNotes.submitNotesButton) + .waitForLastSnackbar(); + + expect(result).toEqual('Data saved!'); + }); }); diff --git a/e2e/paths/05-ticket-module/02_expeditions_and_log.spec.js b/e2e/paths/05-ticket-module/02_expeditions_and_log.spec.js index 680e651f0..8e4645051 100644 --- a/e2e/paths/05-ticket-module/02_expeditions_and_log.spec.js +++ b/e2e/paths/05-ticket-module/02_expeditions_and_log.spec.js @@ -21,7 +21,7 @@ describe('Ticket expeditions and log path', () => { .wait(selectors.ticketExpedition.expeditionRow) .countElement(selectors.ticketExpedition.expeditionRow); - expect(result).toEqual(5); + expect(result).toEqual(3); }); it(`should confirm the expedition deleted is shown now in the ticket log`, async() => { diff --git a/e2e/paths/05-ticket-module/03_sale.spec.js b/e2e/paths/05-ticket-module/03_sale.spec.js index b261cc612..7334d29e1 100644 --- a/e2e/paths/05-ticket-module/03_sale.spec.js +++ b/e2e/paths/05-ticket-module/03_sale.spec.js @@ -7,7 +7,7 @@ describe('Ticket List sale path', () => { beforeAll(() => { return nightmare .loginAndModule('employee', 'ticket') - .accessToSearchResult('id:8') + .accessToSearchResult(12) .accessToSection('ticket.card.sale'); }); @@ -15,21 +15,21 @@ describe('Ticket List sale path', () => { const value = await nightmare .waitToGetProperty(selectors.ticketSales.firstSaleColour, 'innerText'); - expect(value).toContain('Silver'); + expect(value).toContain('Black'); }); it('should confirm the first ticket sale contains the lenght', async() => { const value = await nightmare .waitToGetProperty(selectors.ticketSales.firstSaleText, 'innerText'); - expect(value).toContain('5'); + expect(value).toContain('1'); }); it('should confirm the first ticket sale contains the price', async() => { const value = await nightmare .waitToGetProperty(selectors.ticketSales.firstSalePrice, 'innerText'); - expect(value).toContain('1.30'); + expect(value).toContain('1.72'); }); it('should confirm the first ticket sale contains the discount', async() => { @@ -43,7 +43,7 @@ describe('Ticket List sale path', () => { const value = await nightmare .waitToGetProperty(selectors.ticketSales.firstSaleImport, 'innerText'); - expect(value).toContain('19.50'); + expect(value).toContain('34.40'); }); it('should navigate to the catalog by pressing the new item button', async() => { diff --git a/e2e/paths/05-ticket-module/06_basic_data_steps.spec.js b/e2e/paths/05-ticket-module/06_basic_data_steps.spec.js index d5e1a461b..4e0fe9945 100644 --- a/e2e/paths/05-ticket-module/06_basic_data_steps.spec.js +++ b/e2e/paths/05-ticket-module/06_basic_data_steps.spec.js @@ -23,10 +23,9 @@ describe('Ticket Edit basic data path', () => { it(`should have a price diference`, async() => { const result = await nightmare - .wait(1900) .waitToGetProperty(selectors.ticketBasicData.stepTwoTotalPriceDif, 'innerText'); - expect(result).toContain('-€13.95'); + expect(result).toContain('-€184.25'); }); it(`should then click next to move on to step three`, async() => { diff --git a/e2e/paths/05-ticket-module/07_edit_sale.spec.js b/e2e/paths/05-ticket-module/07_edit_sale.spec.js index 3deffa33b..4faab234a 100644 --- a/e2e/paths/05-ticket-module/07_edit_sale.spec.js +++ b/e2e/paths/05-ticket-module/07_edit_sale.spec.js @@ -1,28 +1,26 @@ import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; -// #1387 e2e Ticket Edit sale path -xdescribe('Ticket Edit sale path', () => { +describe('Ticket Edit sale path', () => { const nightmare = createNightmare(); beforeAll(() => { nightmare .loginAndModule('salesPerson', 'ticket') - .accessToSearchResult('16') + .accessToSearchResult(16) .accessToSection('ticket.card.sale'); }); - it(`should click on the second claim id to navigate over there`, async() => { + it(`should click on the first sale claim icon to navigate over there`, async() => { const url = await nightmare - .waitToClick(selectors.ticketSales.secondSaleClaimIcon) + .waitToClick(selectors.ticketSales.firstSaleClaimIcon) .wait(selectors.claimBasicData.claimStateAutocomplete) .parsedUrl(); expect(url.hash).toEqual('#!/claim/2/basic-data'); }); - - it('should now click on the Tickets button of the top bar menu', async() => { + it('should navigate to the tickets index', async() => { const url = await nightmare .waitToClick(selectors.globalItems.applicationsMenuButton) .wait(selectors.globalItems.applicationsMenuVisible) @@ -33,28 +31,17 @@ xdescribe('Ticket Edit sale path', () => { expect(url.hash).toEqual('#!/ticket/index'); }); - it('should again search for a specific ticket', async() => { - const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, '16') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .countElement(selectors.ticketsIndex.searchResult); - - expect(result).toEqual(1); - }); - - it(`should now click on the search result to access to the ticket Sale`, async() => { + it(`should search for a ticket and then navigate to it's sales`, async() => { const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) + .accessToSearchResult(16) + .accessToSection('ticket.card.sale') .waitForURL('/sale') .parsedUrl(); expect(url.hash).toContain('/sale'); }); - it(`should check the zoomed image isnt present`, async() => { + it(`should check the zoomed image isn't present`, async() => { const result = await nightmare .countElement(selectors.ticketSales.firstSaleZoomedImage); @@ -71,7 +58,7 @@ xdescribe('Ticket Edit sale path', () => { it(`should click on the zoomed image to close it`, async() => { const result = await nightmare - .wait(1000) + .wait(100) .clickIfVisible(selectors.ticketSales.firstSaleZoomedImage) .countElement(selectors.ticketSales.firstSaleZoomedImage); @@ -124,12 +111,8 @@ xdescribe('Ticket Edit sale path', () => { .waitToClick(selectors.globalItems.applicationsMenuButton) .wait(selectors.globalItems.applicationsMenuVisible) .waitToClick(selectors.globalItems.ticketsButton) - .write(selectors.ticketsIndex.searchTicketInput, '16') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) + .accessToSearchResult(16) + .accessToSection('ticket.card.sale') .waitForURL('/sale') .parsedUrl(); @@ -138,17 +121,17 @@ xdescribe('Ticket Edit sale path', () => { it('should try to add a higher quantity value and then receive an error', async() => { const result = await nightmare - .waitToFocus(selectors.ticketSales.firstSaleQuantityCell) - .write(selectors.ticketSales.firstSaleQuantity, '9\u000d') + .focusElement(selectors.ticketSales.firstSaleQuantityCell) + .write(selectors.ticketSales.firstSaleQuantity, '11\u000d') .waitForLastSnackbar(); expect(result).toEqual('The new quantity should be smaller than the old one'); }); - it('should remove 1 from quantity', async() => { + it('should remove 1 from the first sale quantity', async() => { const result = await nightmare - .waitToFocus(selectors.ticketSales.firstSaleQuantityCell) - .write(selectors.ticketSales.firstSaleQuantity, '4\u000d') + .focusElement(selectors.ticketSales.firstSaleQuantityCell) + .write(selectors.ticketSales.firstSaleQuantity, '9\u000d') .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); @@ -156,7 +139,7 @@ xdescribe('Ticket Edit sale path', () => { it('should update the price', async() => { const result = await nightmare - .waitToClick(selectors.ticketSales.firstSalePrice) + .waitToClick(`${selectors.ticketSales.firstSalePrice} > span`) .write(selectors.ticketSales.firstSalePriceInput, '5\u000d') .waitForLastSnackbar(); @@ -165,7 +148,8 @@ xdescribe('Ticket Edit sale path', () => { it('should confirm the price have been updated', async() => { const result = await nightmare - .waitToGetProperty(selectors.ticketSales.firstSalePrice, 'innerText'); + .wait(1999) + .waitToGetProperty(`${selectors.ticketSales.firstSalePrice} span`, 'innerText'); expect(result).toContain('5.00'); }); @@ -174,14 +158,13 @@ xdescribe('Ticket Edit sale path', () => { const result = await nightmare .waitToGetProperty(selectors.ticketSales.firstSaleImport, 'innerText'); - expect(result).toContain('20.00'); + expect(result).toContain('45.00'); }); it('should update the discount', async() => { const result = await nightmare - .waitToClick(selectors.ticketSales.firstSaleDiscount) + .waitToClick(`${selectors.ticketSales.firstSaleDiscount} > span`) .write(selectors.ticketSales.firstSaleDiscountInput, '50\u000d') - // .write('body', '\u000d') // simulates enter .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); @@ -189,29 +172,29 @@ xdescribe('Ticket Edit sale path', () => { it('should confirm the discount have been updated', async() => { const result = await nightmare - .waitForTextInElement(selectors.ticketSales.firstSaleDiscount, '50 %') - .waitToGetProperty(selectors.ticketSales.firstSaleDiscount, 'innerText'); + .waitForTextInElement(`${selectors.ticketSales.firstSaleDiscount} > span`, '50 %') + .waitToGetProperty(`${selectors.ticketSales.firstSaleDiscount} > span`, 'innerText'); expect(result).toContain('50 %'); }); it('should confirm the total import for that item have been updated', async() => { const result = await nightmare - .waitForTextInElement(selectors.ticketSales.firstSaleImport, '10.00') + .waitForTextInElement(selectors.ticketSales.firstSaleImport, '22.50') .waitToGetProperty(selectors.ticketSales.firstSaleImport, 'innerText'); - expect(result).toContain('10.00'); + expect(result).toContain('22.50'); }); it('should select the third sale and create a claim of it', async() => { const url = await nightmare .waitToClick(selectors.ticketSales.thirdSaleCheckbox) - .waitToClick(selectors.ticketSales.moreMenuButton) + .waitToClick(selectors.ticketSales.moreMenu) .waitToClick(selectors.ticketSales.moreMenuCreateClaim) .wait(selectors.claimBasicData.claimStateAutocomplete) .parsedUrl(); - expect(url.hash).toEqual('#!/claim/5/basic-data'); + expect(url.hash).toContain('basic-data'); }); it('should click on the Claims button of the top bar menu', async() => { @@ -246,21 +229,10 @@ xdescribe('Ticket Edit sale path', () => { expect(url.hash).toEqual('#!/ticket/index'); }); - it('should search the ticket', async() => { - const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, '16') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .countElement(selectors.ticketsIndex.searchResult); - - expect(result).toEqual(1); - }); - - it(`should click on the result to access to the ticket Sale`, async() => { + it('should search for a ticket then access to the sales section', async() => { const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) + .accessToSearchResult(16) + .accessToSection('ticket.card.sale') .waitForURL('/sale') .parsedUrl(); @@ -272,6 +244,7 @@ xdescribe('Ticket Edit sale path', () => { .waitToClick(selectors.ticketSales.thirdSaleCheckbox) .waitToClick(selectors.ticketSales.deleteSaleButton) .waitToClick(selectors.ticketSales.acceptDeleteLineButton) + .waitForSpinnerLoad() .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); @@ -284,45 +257,33 @@ xdescribe('Ticket Edit sale path', () => { expect(result).toEqual(3); }); - it('should select the third sale and attempt to send it to a frozen client ticket', async() => { + it('should select the third sale and transfer it to a valid ticket', async() => { + const targetTicketId = 12; + const result = await nightmare .waitToClick(selectors.ticketSales.thirdSaleCheckbox) .waitToClick(selectors.ticketSales.transferSaleButton) - .write(selectors.ticketSales.moveToTicketInput, 2) + .write(selectors.ticketSales.moveToTicketInput, targetTicketId) .waitToClick(selectors.ticketSales.moveToTicketButton) - .waitForLastSnackbar(); - - expect(result).toEqual(`The sales of this ticket can't be modified`); - }); - - it('should transfer the third sale to a valid ticket', async() => { - const result = await nightmare - .waitToClick(selectors.ticketSales.moveToTicketInputClearButton) - .write(selectors.ticketSales.moveToTicketInput, 12) - .waitToClick(selectors.ticketSales.moveToTicketButton) - .waitForURL('ticket/12/sale') + .waitForURL(`ticket/${targetTicketId}/sale`) .parsedUrl(); - expect(result.hash).toContain(`ticket/12/sale`); + expect(result.hash).toContain(`ticket/${targetTicketId}/sale`); }); it('should confirm the transfered line is the correct one', async() => { const result = await nightmare - .wait(selectors.ticketSales.firstSaleText) - .waitToGetProperty(selectors.ticketSales.firstSaleText, 'innerText'); + .wait(selectors.ticketSales.secondSaleText) + .waitToGetProperty(selectors.ticketSales.secondSaleText, 'innerText'); - expect(result).toContain(`Melee weapon heavy shield 1x0.5m`); + expect(result).toContain(`Ranged weapon longbow 2m`); }); it('should go back to the original ticket sales section', async() => { const url = await nightmare - .waitToClick(selectors.itemsIndex.goBackToModuleIndexButton) - .write(selectors.ticketsIndex.searchTicketInput, '16') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) + .waitToClick(selectors.ticketDescriptor.goBackToModuleIndexButton) + .accessToSearchResult(16) + .accessToSection('ticket.card.sale') .waitForURL('/sale') .parsedUrl(); @@ -339,13 +300,9 @@ xdescribe('Ticket Edit sale path', () => { it('should go back to the receiver ticket sales section', async() => { const url = await nightmare - .waitToClick(selectors.itemsIndex.goBackToModuleIndexButton) - .write(selectors.ticketsIndex.searchTicketInput, 'id:12') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) + .waitToClick(selectors.ticketDescriptor.goBackToModuleIndexButton) + .accessToSearchResult(12) + .accessToSection('ticket.card.sale') .waitForURL('/sale') .parsedUrl(); @@ -353,78 +310,66 @@ xdescribe('Ticket Edit sale path', () => { }); it('should transfer the sale back to the original ticket', async() => { + const targetTicketId = 16; + const result = await nightmare - .waitToClick(selectors.ticketSales.firstSaleCheckbox) + .waitToClick(selectors.ticketSales.secondSaleCheckbox) .waitToClick(selectors.ticketSales.transferSaleButton) - .write(selectors.ticketSales.moveToTicketInput, '16') + .write(selectors.ticketSales.moveToTicketInput, targetTicketId) .waitToClick(selectors.ticketSales.moveToTicketButton) - .waitForURL('ticket/16/sale') + .waitForURL(`ticket/${targetTicketId}/sale`) .parsedUrl(); - expect(result.hash).toContain(`ticket/16/sale`); + expect(result.hash).toContain(`ticket/${targetTicketId}/sale`); }); it('should confirm the original ticket received the line', async() => { const result = await nightmare - // .waitForNumberOfElements(selectors.ticketSales.saleLine, 3) + .waitForNumberOfElements(selectors.ticketSales.saleLine, 3) .countElement(selectors.ticketSales.saleLine); expect(result).toEqual(3); }); - it('should now go back to the original ticket sales section', async() => { + it(`should throw an error when attempting to create a ticket for an inactive client`, async() => { + const result = await nightmare + .waitToClick(selectors.ticketSales.firstSaleCheckbox) + .waitToClick(selectors.ticketSales.transferSaleButton) + .waitToClick(selectors.ticketSales.moveToNewTicketButton) + .waitToClick(selectors.ticketSales.acceptDeleteTicketButton) + .waitForLastSnackbar(); + + expect(result).toEqual(`You can't create a ticket for a inactive client`); + }); + + it('should go now to the ticket sales section of an active, not frozen client', async() => { const url = await nightmare - .waitToClick(selectors.itemsIndex.goBackToModuleIndexButton) - .write(selectors.ticketsIndex.searchTicketInput, 'id:8') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 24') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) + .waitToClick(selectors.ticketDescriptor.goBackToModuleIndexButton) + .accessToSearchResult(13) + .accessToSection('ticket.card.sale') .waitForURL('/sale') .parsedUrl(); expect(url.hash).toContain('/sale'); }); - it('should select the second and third sale and tranfer them to a new ticket then get to the ticket index', async() => { + it(`should select all sales, tranfer them to a new ticket and delete the sender ticket as it would've been left empty`, async() => { + const senderTicketId = 13; + const url = await nightmare .waitToClick(selectors.ticketSales.firstSaleCheckbox) .waitToClick(selectors.ticketSales.transferSaleButton) .waitToClick(selectors.ticketSales.moveToNewTicketButton) - .resetLogin() - .waitForLogin('salesPerson') - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.ticketsButton) - .wait(selectors.ticketsIndex.searchTicketInput) - .parsedUrl(); - - expect(url.hash).toEqual('#!/ticket/index'); - }); - - it('should search for a specific created ticket', async() => { - const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, 'nickname:(address 24) stateFk:2') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .countElement(selectors.ticketsIndex.searchResult); - - expect(result).toEqual(1); - }); - - it(`should click on the search result to access to the ticket Sale once more`, async() => { - const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 24') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) - .waitForURL('/sale') + .waitToClick(selectors.ticketSales.acceptDeleteTicketButton) + .wait((selector, ticketId) => { + return document.querySelector(selector).innerText.toLowerCase().indexOf(`${ticketId}`) == -1; + }, selectors.ticketDescriptor.idLabelValue, senderTicketId) .parsedUrl(); expect(url.hash).toContain('/sale'); }); - it('should confirm the new ticket received both lines', async() => { + it('should confirm the new ticket received the line', async() => { const result = await nightmare .countElement(selectors.ticketSales.saleLine); @@ -441,8 +386,8 @@ xdescribe('Ticket Edit sale path', () => { it('should mark the first sale as reserved', async() => { const result = await nightmare .waitToClick(selectors.ticketSales.firstSaleCheckbox) - .waitToClick(selectors.ticketSales.moreMenuButton) - .waitToClick(selectors.ticketSales.moreMenuReseveOption) + .waitToClick(selectors.ticketSales.moreMenu) + .waitToClick(selectors.ticketSales.moreMenuReserve) .waitForClassNotPresent(selectors.ticketSales.firstSaleReservedIcon, 'ng-hide') .isVisible(selectors.ticketSales.firstSaleReservedIcon); @@ -451,9 +396,8 @@ xdescribe('Ticket Edit sale path', () => { it('should unmark the first sale as reserved', async() => { const result = await nightmare - .waitToClick(selectors.ticketSales.firstSaleCheckbox) - .waitToClick(selectors.ticketSales.moreMenuButton) - .waitToClick(selectors.ticketSales.moreMenuUnmarkResevedOption) + .waitToClick(selectors.ticketSales.moreMenu) + .waitToClick(selectors.ticketSales.moreMenuUnmarkReseved) .waitForClassPresent(selectors.ticketSales.firstSaleReservedIcon, 'ng-hide') .isVisible(selectors.ticketSales.firstSaleReservedIcon); @@ -462,8 +406,7 @@ xdescribe('Ticket Edit sale path', () => { it('should update all sales discount', async() => { const result = await nightmare - .waitToClick(selectors.ticketSales.selectAllSalesCheckbox) - .waitToClick(selectors.ticketSales.moreMenuButton) + .waitToClick(selectors.ticketSales.moreMenu) .waitToClick(selectors.ticketSales.moreMenuUpdateDiscount) .write(selectors.ticketSales.moreMenuUpdateDiscountInput, 100) .write('body', '\u000d') @@ -473,80 +416,39 @@ xdescribe('Ticket Edit sale path', () => { expect(result).toContain('0.00'); }); - it('should log in as Production role and go to the ticket index', async() => { + it('should log in as Production role and go to a target ticket summary', async() => { const url = await nightmare - .waitForLogin('production') - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.ticketsButton) - .wait(selectors.ticketsIndex.searchTicketInput) + .loginAndModule('production', 'ticket') + .accessToSearchResult(13) + .waitForURL('/summary') .parsedUrl(); - expect(url.hash).toEqual('#!/ticket/index'); + expect(url.hash).toContain('/summary'); }); - it('should now search for a specific ticket', async() => { + it(`should check it's state is deleted`, async() => { const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, '16') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .countElement(selectors.ticketsIndex.searchResult); + .waitToGetProperty(selectors.ticketDescriptor.stateLabelValue, 'innerText'); - expect(result).toEqual(1); - }); - - it(`should now click on the search result to access to the ticket Tracking`, async() => { - const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketTracking.trackingButton) - .waitForURL('/tracking/index') - .parsedUrl(); - - expect(url.hash).toContain('/tracking/index'); - }); - - it(`should click on the edit ticket tracking state button`, async() => { - const url = await nightmare - .waitToClick(selectors.ticketTracking.createStateButton) - .waitForURL('/tracking/edit') - .parsedUrl(); - - expect(url.hash).toContain('/tracking/edit'); - }); - - it(`should set the state of the ticket to preparation`, async() => { - const url = await nightmare - .autocompleteSearch(selectors.ticketTracking.stateAutocomplete, 'Preparación') - .waitToClick(selectors.ticketTracking.saveButton) - .waitForURL('/tracking/index') - .parsedUrl(); - - expect(url.hash).toContain('/tracking/index'); - }); - - it(`should click on the ticket Sale menu button`, async() => { - const url = await nightmare - .waitToClick(selectors.ticketSales.saleButton) - .waitForURL('/sale') - .parsedUrl(); - - expect(url.hash).toContain('/sale'); + expect(result).toEqual('State Eliminado'); }); describe('when state is preparation and loged as Production', () => { it(`should not be able to edit the sale price`, async() => { const result = await nightmare - .wait(selectors.ticketSales.firstSaleID) - .exists(selectors.ticketSales.firstSalePrice); + .waitToClick(selectors.ticketDescriptor.goBackToModuleIndexButton) + .accessToSearchResult(8) + .accessToSection('ticket.card.sale') + .waitToClick(selectors.ticketSales.firstSalePrice) + .exists(selectors.ticketSales.firstSalePriceInput); expect(result).toBeFalsy(); }); it(`should not be able to edit the sale discount`, async() => { const result = await nightmare - .waitToClick(selectors.ticketSales.firstSaleID) - .exists(selectors.ticketSales.firstSaleDiscount); + .waitToClick(selectors.ticketSales.firstSaleDiscount) + .exists(selectors.ticketSales.firstSaleDiscountInput); expect(result).toBeFalsy(); }); @@ -559,33 +461,11 @@ xdescribe('Ticket Edit sale path', () => { expect(result).toBeFalsy(); }); - it('should log in as salesPerson role and go to the ticket index', async() => { + it('should log in as salesPerson then go to the sales of a target ticket', async() => { const url = await nightmare - .waitForLogin('salesPerson') - .waitToClick(selectors.globalItems.applicationsMenuButton) - .wait(selectors.globalItems.applicationsMenuVisible) - .waitToClick(selectors.globalItems.ticketsButton) - .wait(selectors.ticketsIndex.searchTicketInput) - .parsedUrl(); - - expect(url.hash).toEqual('#!/ticket/index'); - }); - - it('should once again search for a specific ticket', async() => { - const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, '16') - .waitToClick(selectors.ticketsIndex.searchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) - .countElement(selectors.ticketsIndex.searchResult); - - expect(result).toEqual(1); - }); - - it(`should click on the search result to access to the ticket Sale once again`, async() => { - const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') - .waitToClick(selectors.ticketsIndex.searchResult) - .waitToClick(selectors.ticketSales.saleButton) + .loginAndModule('salesPerson', 'ticket') + .accessToSearchResult(8) + .accessToSection('ticket.card.sale') .waitForURL('/sale') .parsedUrl(); @@ -594,23 +474,23 @@ xdescribe('Ticket Edit sale path', () => { }); describe('when state is preparation and loged as salesPerson', () => { - it(`shouldnt be able to edit the sale price`, async() => { + it(`shouldn't be able to edit the sale price`, async() => { const result = await nightmare - .waitToClick(selectors.ticketSales.firstSaleID) - .exists(selectors.ticketSales.firstSalePrice); + .waitToClick(selectors.ticketSales.firstSalePrice) + .exists(selectors.ticketSales.firstSalePriceInput); expect(result).toBeFalsy(); }); - it(`shouldnt be able to edit the sale discount`, async() => { + it(`should be able to edit the sale discount`, async() => { const result = await nightmare - .waitToClick(selectors.ticketSales.firstSaleID) - .exists(selectors.ticketSales.firstSaleDiscount); + .waitToClick(selectors.ticketSales.firstSaleDiscount) + .exists(selectors.ticketSales.firstSaleDiscountInput); expect(result).toBeFalsy(); }); - it(`shouldnt be able to edit the sale state`, async() => { + it(`should not be able to edit the sale state`, async() => { const result = await nightmare .waitToClick(selectors.ticketSales.stateMenuButton) .exists(selectors.ticketSales.stateMenuOptions); diff --git a/e2e/paths/05-ticket-module/11_diary.spec.js b/e2e/paths/05-ticket-module/11_diary.spec.js index 933628e5d..7ff6bc08f 100644 --- a/e2e/paths/05-ticket-module/11_diary.spec.js +++ b/e2e/paths/05-ticket-module/11_diary.spec.js @@ -12,7 +12,7 @@ describe('Ticket diary path', () => { it('should search for a specific ticket', async() => { const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, 'id:1') + .write(selectors.ticketsIndex.searchTicketInput, 1) .waitToClick(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult); @@ -22,7 +22,7 @@ describe('Ticket diary path', () => { it(`should click on the search result to access to the ticket summary`, async() => { const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 21') + .waitForTextInElement(selectors.ticketsIndex.searchResult, 'Bat cave') .waitToClick(selectors.ticketsIndex.searchResult) .waitForURL('/summary') .parsedUrl(); @@ -31,26 +31,27 @@ describe('Ticket diary path', () => { }); it(`should navigate to the item diary from the 1st sale item id descriptor popover`, async() => { + const itemId = 2; const url = await nightmare .waitToClick(selectors.ticketSummary.firstSaleItemId) .waitToClick(selectors.ticketSummary.popoverDiaryButton) .waitForLogin('employee') - .goto(`${config.url}#!/item/1/diary?warehouseFk=1&ticketFk=1`) + .goto(`${config.url}#!/item/${itemId}/diary?warehouseFk=1&ticketFk=1`) .parsedUrl(); expect(url.hash).toContain('/diary'); }); - it(`should check the seventh line id is marked as counter`, async() => { + it(`should check the second line id is marked as counter`, async() => { const result = await nightmare - .waitToGetProperty(selectors.itemDiary.thirdTicketId, 'className'); + .waitToGetProperty(selectors.itemDiary.secondTicketId, 'className'); expect(result).toContain('counter'); }); - it(`should check the fifth line balance is marked as counter`, async() => { + it(`should check the third line balance is marked as counter`, async() => { const result = await nightmare - .waitToGetProperty(`${selectors.itemDiary.fifthBalance} > span`, 'className'); + .waitToGetProperty(`${selectors.itemDiary.fourthBalance} > span`, 'className'); expect(result).toContain('counter'); }); diff --git a/e2e/paths/05-ticket-module/12_descriptor.spec.js b/e2e/paths/05-ticket-module/12_descriptor.spec.js index 5d47d504d..bfc6ad501 100644 --- a/e2e/paths/05-ticket-module/12_descriptor.spec.js +++ b/e2e/paths/05-ticket-module/12_descriptor.spec.js @@ -6,13 +6,13 @@ describe('Ticket descriptor path', () => { beforeAll(() => { nightmare - .loginAndModule('employee', 'ticket'); + .loginAndModule('salesperson', 'ticket'); }); describe('Delete ticket', () => { it('should search for an specific ticket', async() => { const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, '17') + .write(selectors.ticketsIndex.searchTicketInput, 18) .waitToClick(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult); @@ -22,7 +22,7 @@ describe('Ticket descriptor path', () => { it(`should click on the search result to access to the ticket summary`, async() => { const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 26') + .waitForTextInElement(selectors.ticketsIndex.searchResult, 'Cerebro') .waitToClick(selectors.ticketsIndex.searchResult) .waitForURL('/summary') .parsedUrl(); @@ -49,7 +49,7 @@ describe('Ticket descriptor path', () => { it(`should search for the deleted ticket and check it's date`, async() => { const result = await nightmare - .write(selectors.ticketsIndex.searchTicketInput, 17) + .write(selectors.ticketsIndex.searchTicketInput, 18) .waitToClick(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .wait(selectors.ticketsIndex.searchResultDate) @@ -63,7 +63,7 @@ describe('Ticket descriptor path', () => { it('should search for a ticket', async() => { const result = await nightmare .clearInput(selectors.ticketsIndex.searchTicketInput) - .write(selectors.ticketsIndex.searchTicketInput, 20) + .write(selectors.ticketsIndex.searchTicketInput, 16) .waitToClick(selectors.ticketsIndex.searchButton) .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult); @@ -71,9 +71,9 @@ describe('Ticket descriptor path', () => { expect(result).toEqual(1); }); - it(`should click on the search result to access to the ticket summary`, async() => { + it(`should now click on the search result to access to the ticket summary`, async() => { const url = await nightmare - .waitForTextInElement(selectors.ticketsIndex.searchResult, 'address 28') + .waitForTextInElement(selectors.ticketsIndex.searchResult, 'Many Places') .waitToClick(selectors.ticketsIndex.searchResult) .waitForURL('/summary') .parsedUrl(); @@ -85,16 +85,16 @@ describe('Ticket descriptor path', () => { const isVisible = await nightmare .waitToClick(selectors.ticketDescriptor.moreMenu) .waitToClick(selectors.ticketDescriptor.moreMenuAddStowaway) - .wait(selectors.ticketDescriptor.addStowawayDialogSecondTicket) - .isVisible(selectors.ticketDescriptor.addStowawayDialogSecondTicket); + .wait(selectors.ticketDescriptor.addStowawayDialogFirstTicket) + .isVisible(selectors.ticketDescriptor.addStowawayDialogFirstTicket); expect(isVisible).toBeTruthy(); }); - it('should add the second ticket as stowaway', async() => { + it('should add a ticket as stowaway', async() => { const result = await nightmare - .waitToClick(selectors.ticketDescriptor.addStowawayDialogSecondTicket) + .waitToClick(selectors.ticketDescriptor.addStowawayDialogFirstTicket) .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); @@ -103,32 +103,37 @@ describe('Ticket descriptor path', () => { it(`should navigate to the added ticket using the descriptors ship button`, async() => { const url = await nightmare .waitToClick(selectors.ticketDescriptor.closeStowawayDialog) - .waitToClick(selectors.ticketDescriptor.shipSelectButton) - .waitToClick(selectors.ticketDescriptor.shipMenuSecondTicket) - .waitForURL('#!/ticket/22/sale') + .waitToClick(selectors.ticketDescriptor.shipButton) + .waitForURL('#!/ticket/17/summary') .parsedUrl(); - expect(url.hash).toContain('#!/ticket/22/sale'); + expect(url.hash).toContain('#!/ticket/17/summary'); + }); + + it(`should check the state of the stowaway ticket is embarked`, async() => { + const state = await nightmare + .waitToGetProperty(selectors.ticketDescriptor.stateLabelValue, 'innerText'); + + expect(state).toEqual('State Embarcando'); }); it(`should navigate to the ship ticket using the descriptors ship button`, async() => { const url = await nightmare .waitToClick(selectors.ticketDescriptor.shipButton) - .waitForURL('#!/ticket/20/summary') + .waitForURL('#!/ticket/16/summary') .parsedUrl(); - expect(url.hash).toContain('#!/ticket/20/summary'); + expect(url.hash).toContain('#!/ticket/16/summary'); }); it(`should navigate back to the added ticket using the descriptors ship button`, async() => { const url = await nightmare .waitToClick(selectors.ticketDescriptor.closeStowawayDialog) - .waitToClick(selectors.ticketDescriptor.shipSelectButton) - .waitToClick(selectors.ticketDescriptor.shipMenuSecondTicket) - .waitForURL('#!/ticket/22/sale') + .waitToClick(selectors.ticketDescriptor.shipButton) + .waitForURL('#!/ticket/17/summary') .parsedUrl(); - expect(url.hash).toContain('#!/ticket/22/sale'); + expect(url.hash).toContain('#!/ticket/17/summary'); }); it('should delete the stowaway', async() => { @@ -151,7 +156,7 @@ describe('Ticket descriptor path', () => { describe('Make invoice', () => { it('should login as adminBoss role then search for a ticket', async() => { - const invoiceableTicketId = 11; + const invoiceableTicketId = 14; const url = await nightmare .loginAndModule('adminBoss', 'ticket') diff --git a/e2e/paths/05-ticket-module/13_services.spec.js b/e2e/paths/05-ticket-module/13_services.spec.js index ab98a36bb..31d262778 100644 --- a/e2e/paths/05-ticket-module/13_services.spec.js +++ b/e2e/paths/05-ticket-module/13_services.spec.js @@ -3,7 +3,7 @@ import createNightmare from '../../helpers/nightmare'; describe('Ticket services path', () => { const nightmare = createNightmare(); - const invoicedTicketId = 10; + const invoicedTicketId = 1; describe('as employee', () => { beforeAll(() => { @@ -36,12 +36,16 @@ describe('Ticket services path', () => { }); describe('as administrative', () => { - let editableTicketId = 13; - beforeAll(() => { - nightmare + let editableTicketId = 16; + it('should navigate to the services of a target ticket', async() => { + const url = await nightmare .loginAndModule('administrative', 'ticket') .accessToSearchResult(editableTicketId) - .accessToSection('ticket.card.service'); + .accessToSection('ticket.card.service') + .waitForURL('/service') + .parsedUrl(); + + expect(url.hash).toContain('/service'); }); it('should click on the add button to prepare the form to create a new service', async() => { diff --git a/e2e/paths/05-ticket-module/16_summary.spec.js b/e2e/paths/05-ticket-module/16_summary.spec.js new file mode 100644 index 000000000..d532bc139 --- /dev/null +++ b/e2e/paths/05-ticket-module/16_summary.spec.js @@ -0,0 +1,105 @@ +import selectors from '../../helpers/selectors.js'; +import createNightmare from '../../helpers/nightmare'; + +describe('Ticket Summary path', () => { + const nightmare = createNightmare(); + const ticketId = 20; + + it('should navigate to the target ticket summary section', async() => { + let url = await nightmare + .loginAndModule('employee', 'ticket') + .accessToSearchResult(ticketId) + .waitForURL('/summary') + .parsedUrl(); + + expect(url.hash).toContain('/summary'); + }); + + it(`should display details from the ticket and it's client on the top of the header`, async() => { + let result = await nightmare + .waitForSpinnerLoad() + .waitToGetProperty(selectors.ticketSummary.header, 'innerText'); + + expect(result).toContain(`Ticket #${ticketId}`); + expect(result).toContain('Bruce Banner (109)'); + expect(result).toContain('Somewhere in Thailand'); + }); + + it('should display ticket details', async() => { + let result = await nightmare + .waitToGetProperty(selectors.ticketSummary.state, 'innerText'); + + expect(result).toContain('Arreglar'); + }); + + it('should display delivery details', async() => { + let result = await nightmare + .waitToGetProperty(selectors.ticketSummary.route, 'innerText'); + + expect(result).toContain('3'); + }); + + it('should display the ticket total', async() => { + let result = await nightmare + .waitToGetProperty(selectors.ticketSummary.total, 'innerText'); + + expect(result).toContain('€155.54'); + }); + + it('should display the ticket line(s)', async() => { + let result = await nightmare + .waitToGetProperty(selectors.ticketSummary.firstSaleItemId, 'innerText'); + + expect(result).toContain('000002'); + }); + + it(`should click on the first sale ID making the item descriptor visible`, async() => { + const visible = await nightmare + .waitToClick(selectors.ticketSummary.firstSaleItemId) + .waitImgLoad(selectors.ticketSummary.firstSaleDescriptorImage) + .isVisible(selectors.ticketSummary.itemDescriptorPopover); + + expect(visible).toBeTruthy(); + }); + + it(`should check the url for the item diary link of the descriptor is for the right item id`, async() => { + const exists = await nightmare + .exists(selectors.ticketSummary.itemDescriptorPopoverItemDiaryButton); + + expect(exists).toBeTruthy(); + }); + + it('should click on the SET OK button and throw a privileges error', async() => { + let result = await nightmare + .waitToClick(selectors.ticketSummary.setOk) + .waitForLastSnackbar(); + + expect(result).toEqual(`You don't have enough privileges`); + }); + + it('should log in as production then navigate to the summary of the same ticket', async() => { + let url = await nightmare + .loginAndModule('production', 'ticket') + .accessToSearchResult(ticketId) + .waitForURL('/summary') + .parsedUrl(); + + expect(url.hash).toContain('/summary'); + }); + + it('should click on the SET OK button', async() => { + let result = await nightmare + .waitToClick(selectors.ticketSummary.setOk) + .waitForLastSnackbar(); + + expect(result).toEqual('Data saved!'); + }); + + it('should confirm the ticket state was updated', async() => { + let result = await nightmare + .waitForSpinnerLoad() + .waitToGetProperty(selectors.ticketSummary.state, 'innerText'); + + expect(result).toContain('OK'); + }); +}); diff --git a/e2e/paths/06-claim-module/01_edit_basic_data.spec.js b/e2e/paths/06-claim-module/01_basic_data.spec.js similarity index 100% rename from e2e/paths/06-claim-module/01_edit_basic_data.spec.js rename to e2e/paths/06-claim-module/01_basic_data.spec.js diff --git a/e2e/paths/06-claim-module/02_create_development.spec.js b/e2e/paths/06-claim-module/02_development.spec.js similarity index 100% rename from e2e/paths/06-claim-module/02_create_development.spec.js rename to e2e/paths/06-claim-module/02_development.spec.js diff --git a/e2e/paths/06-claim-module/03_detail.spec.js b/e2e/paths/06-claim-module/03_detail.spec.js index 551701c78..43d291bb3 100644 --- a/e2e/paths/06-claim-module/03_detail.spec.js +++ b/e2e/paths/06-claim-module/03_detail.spec.js @@ -1,13 +1,14 @@ import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; -describe('Claim detail', () => { +// #1528 e2e claim/detail +xdescribe('Claim detail', () => { const nightmare = createNightmare(); beforeAll(() => { nightmare .loginAndModule('salesPerson', 'claim') - .accessToSearchResult('4') + .accessToSearchResult(1) .accessToSection('claim.card.detail'); }); @@ -27,25 +28,54 @@ describe('Claim detail', () => { expect(result).toEqual(2); }); - it('should edit de second item claimed quantity', async() => { + it('should edit de first item claimed quantity', async() => { const result = await nightmare - .clearInput(selectors.claimDetail.secondItemQuantityInput) - .write(selectors.claimDetail.secondItemQuantityInput, 10) + .clearInput(selectors.claimDetail.firstItemQuantityInput) + .write(selectors.claimDetail.firstItemQuantityInput, 4) .write('body', '\u000d') // simulates enter .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); - it('should confirm the second item, and the claimed total were correctly edited', async() => { + it('should confirm the first item quantity, and the claimed total were correctly edited', async() => { const claimedQuantity = await nightmare - .waitToGetProperty(selectors.claimDetail.secondItemQuantityInput, 'value'); + .waitToGetProperty(selectors.claimDetail.firstItemQuantityInput, 'value'); const totalClaimed = await nightmare .waitToGetProperty(selectors.claimDetail.totalClaimed, 'innerText'); - expect(claimedQuantity).toEqual('10'); - expect(totalClaimed).toContain('99.30'); + expect(claimedQuantity).toEqual('4'); + expect(totalClaimed).toContain('€47.62'); + }); + + it('should login as salesAssistant and navigate to the claim.detail section', async() => { + const url = await nightmare + .loginAndModule('salesAssistant', 'claim') + .accessToSearchResult(1) + .accessToSection('claim.card.detail') + .waitForURL('/detail') + .parsedUrl(); + + expect(url.hash).toContain('/detail'); + }); + + it('should edit de second item claimed discount', async() => { + const result = await nightmare + .waitToClick(selectors.claimDetail.secondItemDiscount) + .write(selectors.claimDetail.discountInput, 100) + .write('body', '\u000d') // simulates enter + .waitForLastSnackbar(); + + expect(result).toEqual('Data saved!'); + }); + + it('should check the mana is the expected one', async() => { + const result = await nightmare + .waitToClick(selectors.claimDetail.secondItemDiscount) + .waitToGetProperty(selectors.claimDetail.discoutPopoverMana, 'innerText'); + + expect(result).toContain('MANÁ: €106'); }); it('should delete the second item from the claim', async() => { @@ -63,11 +93,8 @@ describe('Claim detail', () => { expect(result).toEqual(1); }); - it('should login as salesAssistant to be redirected to the next claim section', async() => { + it('should add the deleted ticket from to the claim', async() => { const result = await nightmare - .loginAndModule('salesAssistant', 'claim') - .accessToSearchResult('2') - .accessToSection('claim.card.detail') .waitToClick(selectors.claimDetail.addItemButton) .waitToClick(selectors.claimDetail.firstClaimableSaleFromTicket) .waitForLastSnackbar(); @@ -82,4 +109,13 @@ describe('Claim detail', () => { expect(url.hash).toContain('development'); }); + + it('should navigate back to claim.detail to confirm the claim contains now two items', async() => { + const result = await nightmare + .accessToSection('claim.card.detail') + .wait(selectors.claimDetail.claimDetailLine) + .countElement(selectors.claimDetail.claimDetailLine); + + expect(result).toEqual(2); + }); }); diff --git a/e2e/paths/06-claim-module/04_claim_action.spec.js b/e2e/paths/06-claim-module/04_claim_action.spec.js index a06edaa50..de998a0f2 100644 --- a/e2e/paths/06-claim-module/04_claim_action.spec.js +++ b/e2e/paths/06-claim-module/04_claim_action.spec.js @@ -7,7 +7,7 @@ describe('Claim action path', () => { beforeAll(() => { nightmare .loginAndModule('administrative', 'claim') - .accessToSearchResult('4') + .accessToSearchResult(4) .accessToSection('claim.card.action'); }); @@ -19,7 +19,7 @@ describe('Claim action path', () => { expect(result).toEqual('Data saved!'); }); - it('should import the eighth ticket', async() => { + it('should import the second importable ticket', async() => { const result = await nightmare .waitToClick(selectors.claimAction.importTicketButton) .waitToClick(selectors.claimAction.secondImportableTicket) @@ -28,17 +28,16 @@ describe('Claim action path', () => { expect(result).toEqual('Data saved!'); }); - it('should edit the fourth line destination field', async() => { + it('should edit the second line destination field', async() => { const result = await nightmare - .autocompleteSearch(selectors.claimAction.thirdLineDestination, 'Bueno') + .autocompleteSearch(selectors.claimAction.secondLineDestination, 'Bueno') .waitForLastSnackbar(); expect(result).toEqual('Data saved!'); }); - it('should delete two first lines', async() => { + it('should delete the first line', async() => { const result = await nightmare - .waitToClick(selectors.claimAction.secondDeleteLine) .waitToClick(selectors.claimAction.firstDeleteLine) .waitForLastSnackbar(); @@ -61,7 +60,7 @@ describe('Claim action path', () => { expect(result).toEqual('Data saved!'); }); - it('should check the Is paid with mana checkbox', async() => { + it('should check the "is paid with mana" checkbox', async() => { const result = await nightmare .waitToClick(selectors.claimAction.isPaidWithManaCheckbox) .waitForSnackbar(); @@ -69,7 +68,7 @@ describe('Claim action path', () => { expect(result).toEqual(jasmine.arrayContaining(['Data saved!'])); }); - it('should confirm the Is paid with mana checkbox is checked', async() => { + it('should confirm the "is paid with mana" checkbox is checked', async() => { const result = await nightmare .reloadSection('claim.card.action') .checkboxState(selectors.claimAction.isPaidWithManaCheckbox); diff --git a/e2e/paths/06-claim-module/05_summary.spec.js b/e2e/paths/06-claim-module/05_summary.spec.js new file mode 100644 index 000000000..07e4c9080 --- /dev/null +++ b/e2e/paths/06-claim-module/05_summary.spec.js @@ -0,0 +1,95 @@ +import selectors from '../../helpers/selectors.js'; +import createNightmare from '../../helpers/nightmare'; + +describe('claim Summary path', () => { + const nightmare = createNightmare(); + const claimId = 4; + + it('should navigate to the target claim summary section', async() => { + let url = await nightmare + .loginAndModule('employee', 'claim') + .accessToSearchResult(claimId) + .waitForURL('/summary') + .parsedUrl(); + + expect(url.hash).toContain('/summary'); + }); + + it(`should display details from the claim and it's client on the top of the header`, async() => { + let result = await nightmare + .waitForSpinnerLoad() + .waitToGetProperty(selectors.claimSummary.header, 'innerText'); + + expect(result).toContain('4 -'); + expect(result).toContain('Tony Stark'); + }); + + it('should display the claim state', async() => { + let result = await nightmare + .waitToGetProperty(selectors.claimSummary.state, 'innerText'); + + expect(result).toContain('Resuelto'); + }); + + it('should display the observation', async() => { + let result = await nightmare + .waitToGetProperty(selectors.claimSummary.observation, 'value'); + + expect(result).toContain('observation four'); + }); + + it('should display the claimed line(s)', async() => { + let result = await nightmare + .waitToGetProperty(selectors.claimSummary.firstSaleItemId, 'innerText'); + + expect(result).toContain('000002'); + }); + + it(`should click on the first sale ID making the item descriptor visible`, async() => { + const visible = await nightmare + .waitToClick(selectors.claimSummary.firstSaleItemId) + .waitImgLoad(selectors.claimSummary.firstSaleDescriptorImage) + .isVisible(selectors.claimSummary.itemDescriptorPopover); + + expect(visible).toBeTruthy(); + }); + + it(`should check the url for the item diary link of the descriptor is for the right item id`, async() => { + const exists = await nightmare + .exists(selectors.claimSummary.itemDescriptorPopoverItemDiaryButton); + + expect(exists).toBeTruthy(); + }); + + it('should display the claim development details', async() => { + let result = await nightmare + .waitToGetProperty(selectors.claimSummary.firstDevelopmentWorker, 'innerText'); + + expect(result).toContain('salesAssistantNick'); + }); + + it(`should click on the first development worker making the worker descriptor visible`, async() => { + const visible = await nightmare + .waitToClick(selectors.claimSummary.firstDevelopmentWorker) + .wait(selectors.claimSummary.firstDevelopmentWorkerGoToClientButton) + .isVisible(selectors.claimSummary.firstDevelopmentWorkerGoToClientButton); + + expect(visible).toBeTruthy(); + }); + + it(`should check the url for the go to clientlink of the descriptor is for the right client id`, async() => { + const exists = await nightmare + .exists(selectors.claimSummary.firstDevelopmentWorkerGoToClientButton); + + expect(exists).toBeTruthy(); + }); + + it(`should click on the first action ticket ID making the ticket descriptor visible`, async() => { + const visible = await nightmare + .waitToClick(selectors.claimSummary.firstActionTicketId) + .wait(selectors.claimSummary.firstActionTicketDescriptor) + .isVisible(selectors.claimSummary.firstActionTicketDescriptor); + + expect(visible).toBeTruthy(); + }); +}); diff --git a/e2e/paths/06-claim-module/06_descriptor.spec.js b/e2e/paths/06-claim-module/06_descriptor.spec.js new file mode 100644 index 000000000..f43440129 --- /dev/null +++ b/e2e/paths/06-claim-module/06_descriptor.spec.js @@ -0,0 +1,70 @@ +import selectors from '../../helpers/selectors.js'; +import createNightmare from '../../helpers/nightmare'; + +describe('claim Descriptor path', () => { + const nightmare = createNightmare(); + const claimId = 1; + + it('should navigate to the target claim summary section', async() => { + let url = await nightmare + .loginAndModule('employee', 'claim') + .accessToSearchResult(claimId) + .waitForURL('/summary') + .parsedUrl(); + + expect(url.hash).toContain('/summary'); + }); + + it(`should not be able to see the delete claim button of the descriptor more menu`, async() => { + let exists = await nightmare + .waitToClick(selectors.claimDescriptor.moreMenu) + .exists(selectors.claimDescriptor.moreMenuDeleteClaim); + + expect(exists).toBeFalsy(); + }); + + it(`should log in as salesAssistant and navigate to the target claim`, async() => { + let url = await nightmare + .loginAndModule('salesAssistant', 'claim') + .accessToSearchResult(claimId) + .waitForURL('/summary') + .parsedUrl(); + + expect(url.hash).toContain('/summary'); + }); + + it(`should be able to see the delete claim button of the descriptor more menu`, async() => { + let exists = await nightmare + .waitToClick(selectors.claimDescriptor.moreMenu) + .exists(selectors.claimDescriptor.moreMenuDeleteClaim); + + expect(exists).toBeTruthy(); + }); + + it(`should delete the claim`, async() => { + let result = await nightmare + .waitToClick(selectors.claimDescriptor.moreMenuDeleteClaim) + .waitToClick(selectors.claimDescriptor.acceptDeleteClaim) + .waitForLastSnackbar(); + + expect(result).toEqual('Claim deleted!'); + }); + + it(`should have been relocated to the claim index`, async() => { + let url = await nightmare + .waitForURL('/claim/index') + .parsedUrl(); + + expect(url.hash).toContain('/claim/index'); + }); + + it(`should search for the deleted claim to find no results`, async() => { + const result = await nightmare + .write(selectors.claimsIndex.searchClaimInput, claimId) + .waitToClick(selectors.claimsIndex.searchButton) + .waitForNumberOfElements(selectors.claimsIndex.searchResult, 0) + .countElement(selectors.claimsIndex.searchResult); + + expect(result).toEqual(0); + }); +}); diff --git a/e2e/paths/07-order-module/01_edit_basic_data.spec.js b/e2e/paths/07-order-module/01_edit_basic_data.spec.js index e48573b2a..973697e9c 100644 --- a/e2e/paths/07-order-module/01_edit_basic_data.spec.js +++ b/e2e/paths/07-order-module/01_edit_basic_data.spec.js @@ -3,11 +3,13 @@ import createNightmare from '../../helpers/nightmare'; describe('Order edit basic data path', () => { const nightmare = createNightmare(); + const today = new Date().getDate(); + describe('when confirmed order', () => { beforeAll(() => { nightmare .loginAndModule('employee', 'order') - .accessToSearchResult('1') + .accessToSearchResult(1) .accessToSection('order.card.basicData'); }); @@ -24,19 +26,20 @@ describe('Order edit basic data path', () => { describe('when order with rows', () => { it('should now navigate to order index', async() => { + const orderId = 16; const url = await nightmare .waitToClick(selectors.globalItems.returnToModuleIndexButton) - .waitToClick(selectors.globalItems.acceptVnConfirm) + .waitToClick(selectors.globalItems.acceptButton) .wait(selectors.ordersIndex.createOrderButton) - .accessToSearchResult('16') + .accessToSearchResult(orderId) .accessToSection('order.card.basicData') .wait(selectors.orderBasicData.observationInput) .parsedUrl(); - expect(url.hash).toEqual('#!/order/16/basic-data'); + expect(url.hash).toEqual(`#!/order/${orderId}/basic-data`); }); - it('should not be able to change the company', async() => { + it('should not be able to change anything', async() => { const result = await nightmare .write(selectors.orderBasicData.observationInput, 'observation') .waitToClick(selectors.orderBasicData.saveButton) @@ -47,17 +50,36 @@ describe('Order edit basic data path', () => { }); describe('when new order', () => { - it('should once more navigate to order index', async() => { + it('should navigate to the order index and click the new order button', async() => { const url = await nightmare .waitToClick(selectors.globalItems.returnToModuleIndexButton) - .waitToClick(selectors.globalItems.acceptVnConfirm) - .wait(selectors.ordersIndex.createOrderButton) - .accessToSearchResult('18') + .waitToClick(selectors.globalItems.acceptButton) + .waitToClick(selectors.ordersIndex.createOrderButton) + .waitForURL('#!/order/create') + .parsedUrl(); + + expect(url.hash).toContain('#!/order/create'); + }); + + it('should now create a new one', async() => { + const url = await nightmare + .autocompleteSearch(selectors.createOrderView.clientAutocomplete, 'Jessica Jones') + .datePicker(selectors.createOrderView.landedDatePicker, 0, today) + .autocompleteSearch(selectors.createOrderView.agencyAutocomplete, 'inhouse pickup') + .waitToClick(selectors.createOrderView.createButton) + .waitForURL('/catalog') + .parsedUrl(); + + expect(url.hash).toContain('/catalog'); + }); + + it('should navigate to the basic data section of the new order', async() => { + const url = await nightmare .accessToSection('order.card.basicData') .wait(selectors.orderBasicData.observationInput) .parsedUrl(); - expect(url.hash).toEqual('#!/order/18/basic-data'); + expect(url.hash).toContain('/basic-data'); }); it('should be able to modify all the properties', async() => { @@ -65,8 +87,7 @@ describe('Order edit basic data path', () => { .autocompleteSearch(selectors.orderBasicData.clientAutocomplete, 'Tony Stark') .autocompleteSearch(selectors.orderBasicData.addressAutocomplete, 'Tony Stark') .autocompleteSearch(selectors.orderBasicData.agencyAutocomplete, 'Silla247') - .clearTextarea(selectors.orderBasicData.observationInput) - .write(selectors.orderBasicData.observationInput, 'Observation modified') + .write(selectors.orderBasicData.observationInput, 'my observation') .waitToClick(selectors.orderBasicData.saveButton) .waitForLastSnackbar(); @@ -92,7 +113,7 @@ describe('Order edit basic data path', () => { const result = await nightmare .waitToGetProperty(selectors.orderBasicData.observationInput, 'value'); - expect(result).toEqual('Observation modified'); + expect(result).toEqual('my observation'); }); }); }); diff --git a/e2e/paths/07-order-module/03_lines.spec.js b/e2e/paths/07-order-module/03_lines.spec.js index b7d28d2f4..8128fdc07 100644 --- a/e2e/paths/07-order-module/03_lines.spec.js +++ b/e2e/paths/07-order-module/03_lines.spec.js @@ -6,7 +6,7 @@ describe('Order lines', () => { beforeAll(() => { nightmare .loginAndModule('employee', 'order') - .accessToSearchResult('16') + .accessToSearchResult(16) .accessToSection('order.card.line'); }); diff --git a/e2e/paths/08-route-module/03_tickets.spec.js b/e2e/paths/08-route-module/03_tickets.spec.js index 18d54ff4a..c1a0350b3 100644 --- a/e2e/paths/08-route-module/03_tickets.spec.js +++ b/e2e/paths/08-route-module/03_tickets.spec.js @@ -1,35 +1,18 @@ import selectors from '../../helpers/selectors.js'; import createNightmare from '../../helpers/nightmare'; -describe('Route basic Data path', () => { +// #1528 e2e claim/detail +xdescribe('Route basic Data path', () => { const nightmare = createNightmare(); beforeAll(() => { nightmare .loginAndModule('delivery', 'route') - .accessToSearchResult(2) + .accessToSearchResult(3) .accessToSection('route.card.tickets'); }); - it('should now modify the first ticket priority', async() => { - const result = await nightmare - .write(selectors.routeTickets.firstTicketPriority, 4) - .write('body', '\u000d') // simulates enter - .waitForLastSnackbar(); - - expect(result).toEqual('Data saved!'); - }); - - it('should next modify the first ticket priority', async() => { - const result = await nightmare - .write(selectors.routeTickets.firstTicketPriority, 3) - .write('body', '\u000d') // simulates enter - .waitForLastSnackbar(); - - expect(result).toEqual('Data saved!'); - }); - - it('should once more modify the first ticket priority', async() => { + it('should modify the first ticket priority', async() => { const result = await nightmare .write(selectors.routeTickets.firstTicketPriority, 2) .write('body', '\u000d') // simulates enter @@ -38,44 +21,6 @@ describe('Route basic Data path', () => { expect(result).toEqual('Data saved!'); }); - it('should finally modify the first ticket priority', async() => { - const result = await nightmare - .write(selectors.routeTickets.firstTicketPriority, 1) - .write('body', '\u000d') // simulates enter - .waitForLastSnackbar(); - - expect(result).toEqual('Data saved!'); - }); - - it('should reload the section as a pre-step to check the first ticket priority', async() => { - const result = await nightmare - .reloadSection('route.card.tickets') - .waitToGetProperty(selectors.routeTickets.firstTicketPriority, 'value'); - - expect(result).toEqual('1'); - }); - - it('should confirm the second ticket priority', async() => { - const result = await nightmare - .waitToGetProperty(selectors.routeTickets.secondTicketPriority, 'value'); - - expect(result).toEqual('2'); - }); - - it('should confirm the third ticket priority', async() => { - const result = await nightmare - .waitToGetProperty(selectors.routeTickets.thirdTicketPriority, 'value'); - - expect(result).toEqual('3'); - }); - - it('should confirm the fourth ticket priority', async() => { - const result = await nightmare - .waitToGetProperty(selectors.routeTickets.fourthTicketPriority, 'value'); - - expect(result).toEqual('4'); - }); - it('should confirm the buscamanButton is disabled', async() => { const result = await nightmare .evaluate(selector => { @@ -85,7 +30,7 @@ describe('Route basic Data path', () => { expect(result).toBeTruthy(); }); - it('should check the first ticket checkbox and confirm the buscamanButton button isnt disabled anymore', async() => { + it('should check the first ticket checkbox and confirm the buscamanButton button is no longer disabled', async() => { const result = await nightmare .waitToClick(selectors.routeTickets.firstTicketCheckbox) .evaluate(selector => { @@ -95,11 +40,18 @@ describe('Route basic Data path', () => { expect(result).toBeFalsy(); }); + it('should check the route volume on the descriptor', async() => { + const result = await nightmare + .waitToGetProperty(selectors.routeDescriptor.volume, 'innerText'); + + expect(result).toEqual('1.1 / 18 m³'); + }); + it('should count how many tickets are in route', async() => { const result = await nightmare .countElement('vn-route-tickets vn-textfield[model="ticket.priority"]'); - expect(result).toEqual(4); + expect(result).toEqual(11); }); it('should delete the first ticket in route', async() => { @@ -111,10 +63,26 @@ describe('Route basic Data path', () => { expect(result).toEqual('Ticket removed from route'); }); + it('should again delete the first ticket in route', async() => { + const result = await nightmare + .waitToClick(selectors.routeTickets.firstTicketDeleteButton) + .waitToClick(selectors.routeTickets.confirmButton) + .waitForLastSnackbar(); + + expect(result).toEqual('Ticket removed from route'); + }); + it('should now count how many tickets are in route to find one less', async() => { const result = await nightmare .countElement('vn-route-tickets vn-textfield[model="ticket.priority"]'); - expect(result).toEqual(3); + expect(result).toEqual(9); + }); + + it('should confirm the route volume on the descriptor has been updated by the changes made', async() => { + const result = await nightmare + .waitToGetProperty(selectors.routeDescriptor.volume, 'innerText'); + + expect(result).toEqual('0.9 / 18 m³'); }); }); diff --git a/e2e/paths/09-invoice-out-module/01_descriptor.spec.js b/e2e/paths/09-invoice-out-module/01_descriptor.spec.js index fd3e4b24e..a00d6387d 100644 --- a/e2e/paths/09-invoice-out-module/01_descriptor.spec.js +++ b/e2e/paths/09-invoice-out-module/01_descriptor.spec.js @@ -3,6 +3,7 @@ import createNightmare from '../../helpers/nightmare'; describe('InvoiceOut descriptor path', () => { const nightmare = createNightmare(); + let bookedDate; describe('as Administrative', () => { beforeAll(() => { @@ -15,10 +16,10 @@ describe('InvoiceOut descriptor path', () => { .waitToClick(selectors.ticketsIndex.openAdvancedSearchButton) .write(selectors.ticketsIndex.advancedSearchInvoiceOut, 'T2222222') .waitToClick(selectors.ticketsIndex.advancedSearchButton) - .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 2) + .waitForNumberOfElements(selectors.ticketsIndex.searchResult, 1) .countElement(selectors.ticketsIndex.searchResult); - expect(result).toEqual(2); + expect(result).toEqual(1); }); it('should navigate to the invoiceOut index', async() => { @@ -44,8 +45,7 @@ describe('InvoiceOut descriptor path', () => { it(`should click on the search result to access to the invoiceOut summary`, async() => { const url = await nightmare - .waitForTextInElement(selectors.invoiceOutIndex.searchResult, 'T2222222') - .waitToClick(selectors.invoiceOutIndex.searchResult) + .accessToSearchResult('T2222222') .waitForURL('/summary') .parsedUrl(); @@ -112,34 +112,25 @@ describe('InvoiceOut descriptor path', () => { expect(url.hash).toEqual('#!/invoice-out/index'); }); - it('should search for a new target invoiceOut', async() => { - const result = await nightmare - .write(selectors.invoiceOutIndex.searchInvoiceOutInput, 'A1111111') - .waitToClick(selectors.invoiceOutIndex.searchButton) - .waitForNumberOfElements(selectors.invoiceOutIndex.searchResult, 1) - .countElement(selectors.invoiceOutIndex.searchResult); - - expect(result).toEqual(1); - }); - - it(`should now click on the search result to access to the invoiceOut summary`, async() => { + it(`should search and access to the invoiceOut summary`, async() => { const url = await nightmare - .waitForTextInElement(selectors.invoiceOutIndex.searchResult, 'A1111111') - .waitToClick(selectors.invoiceOutIndex.searchResult) + .accessToSearchResult('T1111111') .waitForURL('/summary') .parsedUrl(); expect(url.hash).toContain('/summary'); }); - it(`should check the invoiceOut isn't booked yet in the summary data`, async() => { + it(`should check the invoiceOut is booked in the summary data`, async() => { const result = await nightmare .waitToGetProperty(selectors.invoiceOutSummary.bookedLabel, 'innerText'); - expect(result).toEqual('-'); + bookedDate = result; + + expect(result.length).toBeGreaterThan(1); }); - it('should book the invoiceOut using the descriptor more menu', async() => { + it('should re-book the invoiceOut using the descriptor more menu', async() => { const result = await nightmare .waitToClick(selectors.invoiceOutDescriptor.moreMenu) .waitToClick(selectors.invoiceOutDescriptor.moreMenuBookInvoiceOut) @@ -153,7 +144,7 @@ describe('InvoiceOut descriptor path', () => { const result = await nightmare .waitToGetProperty(selectors.invoiceOutSummary.bookedLabel, 'innerText'); - expect(result.length).toBeGreaterThan(1); + expect(result).not.toEqual(bookedDate); }); }); diff --git a/front/core/components/autocomplete/autocomplete.html b/front/core/components/autocomplete/autocomplete.html index c616c794a..4caca44bc 100755 --- a/front/core/components/autocomplete/autocomplete.html +++ b/front/core/components/autocomplete/autocomplete.html @@ -16,7 +16,7 @@ diff --git a/front/core/components/autocomplete/autocomplete.js b/front/core/components/autocomplete/autocomplete.js index dc24aecf8..b2ac40c45 100755 --- a/front/core/components/autocomplete/autocomplete.js +++ b/front/core/components/autocomplete/autocomplete.js @@ -30,6 +30,8 @@ export default class Autocomplete extends Input { componentHandler.upgradeElement( this.element.querySelector('.mdl-textfield')); + + this.registerEvents(); } $postLink() { @@ -40,6 +42,15 @@ export default class Autocomplete extends Input { this.refreshSelection(); } + /** + * Registers all event emitters + */ + registerEvents() { + this.input.addEventListener('focus', event => { + this.emit('focus', {event}); + }); + } + get model() { return this._model; } @@ -223,7 +234,6 @@ export default class Autocomplete extends Input { const value = item[this.valueField]; this.selection = item; this.setValue(value); - this.field = value; } onClearClick(event) { @@ -232,7 +242,7 @@ export default class Autocomplete extends Input { } onKeyDown(event) { - if (event.defaultPrevented) return; + // if (event.defaultPrevented) return; switch (event.keyCode) { case 38: // Up diff --git a/front/core/components/button-menu/button-menu.js b/front/core/components/button-menu/button-menu.js index 319ca3f6f..99f3879ee 100644 --- a/front/core/components/button-menu/button-menu.js +++ b/front/core/components/button-menu/button-menu.js @@ -8,7 +8,10 @@ export default class ButtonMenu extends Input { super($element, $scope); this.$transclude = $transclude; this.input = this.element.querySelector('.mdl-button'); - $element.on('click', e => this.onClick(e)); + $element.on('click', e => { + if (!this.disabled) + this.onClick(e); + }); } get model() { diff --git a/front/core/components/calendar/index.html b/front/core/components/calendar/index.html index e505bfad9..189e9b4eb 100644 --- a/front/core/components/calendar/index.html +++ b/front/core/components/calendar/index.html @@ -26,37 +26,55 @@ -
+
L
-
+
M
-
+
X
-
+
J
-
+
V
-
+
S
-
+
D
-
- - {{::day.dated | date: 'd'}} - - {{::day.dated | date: 'd'}} +
+
+
+ {{::day.dated | date: 'd'}} +
+
+
+ + {{::event.name}} + +
+
+
diff --git a/front/core/components/calendar/index.js b/front/core/components/calendar/index.js index ada238d67..5289d1d8d 100644 --- a/front/core/components/calendar/index.js +++ b/front/core/components/calendar/index.js @@ -12,7 +12,25 @@ export default class Calendar extends Component { this.events = []; this.defaultDate = new Date(); this.displayControls = true; + this.disabled = false; this.skip = 1; + + this.window.addEventListener('resize', () => { + this.checkSize(); + }); + } + + /** + * Resizes the calendar + * based on component height + */ + checkSize() { + const height = this.$element[0].clientHeight; + + if (height < 530) + this.$element.addClass('small'); + else + this.$element.removeClass('small'); } /** @@ -49,8 +67,10 @@ export default class Calendar extends Component { this.addEvent(event); }); - if (value.length && this.defaultDate) + if (value.length && this.defaultDate) { this.repaint(); + this.checkSize(); + } } /** @@ -165,16 +185,28 @@ export default class Calendar extends Component { * @param {Date} dated - Date of month * @param {String} className - Default class style */ - insertDay(dated, className = '') { - let event = this.events.find(event => { + insertDay(dated) { + let events = this.events.filter(event => { return event.dated >= dated && event.dated <= dated; }); - // Weeekends - if (dated.getMonth() === this.currentMonth.getMonth() && dated.getDay() == 0) - className = 'red'; + const params = {dated, events}; - this.days.push({dated, className, event}); + const isSaturday = dated.getDay() === 6; + const isSunday = dated.getDay() === 0; + const isCurrentMonth = dated.getMonth() === this.currentMonth.getMonth(); + const hasEvents = events.length > 0; + + if (isCurrentMonth && isSunday && !hasEvents) + params.style = {color: '#f42121'}; + + if (isCurrentMonth && isSaturday && !hasEvents) + params.style = {color: '#666666'}; + + if (!isCurrentMonth && !hasEvents) + params.style = {color: '#9b9b9b'}; + + this.days.push(params); } /** @@ -182,7 +214,7 @@ export default class Calendar extends Component { * * @param {Object} options - Event params * @param {Date} options.dated - Day to add event - * @param {String} options.title - Tooltip description + * @param {String} options.name - Tooltip description * @param {String} options.className - ClassName style * @param {Object} options.style - Style properties * @param {Boolean} options.isRemovable - True if is removable by users @@ -194,12 +226,7 @@ export default class Calendar extends Component { options.dated = new Date(options.dated); options.dated.setHours(0, 0, 0, 0); - const event = this.events.findIndex(event => { - return event.dated >= options.dated && event.dated <= options.dated; - }); - - if (event < 0) - this.events.push(options); + this.events.push(options); } /** @@ -252,6 +279,7 @@ export default class Calendar extends Component { * @param {Integer} index - Index from days array */ select(index) { + if (this.disabled) return; let day = this.days[index]; day.index = index; @@ -264,6 +292,8 @@ export default class Calendar extends Component { * @param {Integer} weekday - weekday index */ selectAll(weekday) { + if (this.disabled) return; + let selected = []; for (let i in this.days) { const day = this.days[i]; @@ -274,6 +304,16 @@ export default class Calendar extends Component { } this.emit('selection', {values: selected}); } + + renderStyle(style) { + if (style) { + return { + 'background-color': style.backgroundColor, + 'font-weight': style.fontWeight, + 'color': style.color + }; + } + } } Calendar.$inject = ['$element', '$scope']; @@ -289,6 +329,7 @@ ngModule.component('vnCalendar', { onMoveNext: '&?', onMovePrevious: '&?', displayControls: ' { let currentDate = new Date().toString(); controller.data = [ - {dated: currentDate, title: 'Event 1'}, - {dated: currentDate, title: 'Event 2'}, + {dated: currentDate, name: 'Event 1'}, + {dated: currentDate, name: 'Event 2'}, ]; expect(controller.events[0].dated instanceof Object).toBeTruthy(); @@ -34,12 +34,11 @@ describe('Component vnCalendar', () => { controller.events = []; controller.addEvent({ dated: new Date(), - title: 'My event', - className: 'color' + name: 'My event' }); const firstEvent = controller.events[0]; - expect(firstEvent.title).toEqual('My event'); + expect(firstEvent.name).toEqual('My event'); expect(firstEvent.isRemovable).toBeDefined(); expect(firstEvent.isRemovable).toBeTruthy(); }); @@ -50,19 +49,17 @@ describe('Component vnCalendar', () => { controller.events = [{ dated: curDate, - title: 'My event 1', - className: 'color' + name: 'My event 1' }]; controller.addEvent({ dated: curDate, - title: 'My event 2', - className: 'color' + name: 'My event 2' }); const firstEvent = controller.events[0]; - expect(controller.events.length).toEqual(1); - expect(firstEvent.title).toEqual('My event 1'); + expect(controller.events.length).toEqual(2); + expect(firstEvent.name).toEqual('My event 1'); }); }); @@ -71,7 +68,7 @@ describe('Component vnCalendar', () => { const curDate = new Date(); controller._events = [{ dated: curDate, - title: 'My event 1', + name: 'My event 1', className: 'color' }]; controller.removeEvent(curDate); diff --git a/front/core/components/calendar/style.scss b/front/core/components/calendar/style.scss index 6baaa0f65..333bfb428 100644 --- a/front/core/components/calendar/style.scss +++ b/front/core/components/calendar/style.scss @@ -1,143 +1,123 @@ @import "variables"; +vn-calendar.small { + .events { + display: none + } +} + vn-calendar { display: block; - max-width: 250px; .header vn-one { text-align: center; - padding: 0.2em 0 + padding: 0.2em 0; + height: 1.5em } - .body { - .days { - justify-content: flex-start; - align-items: flex-start; - flex-wrap: wrap; + + .weekdays { + color: $color-font-secondary; + margin-bottom: 0.5em; + padding: 0.5em 0; + font-weight: bold; + font-size: 0.8em; + } + + .weekdays section { + cursor: pointer + } + + .weekdays section, .day { + position: relative; + text-align: center; + box-sizing: border-box; + width: 14.28%; + outline: 0; + } + + .days { + justify-content: flex-start; + align-items: flex-start; + flex-wrap: wrap; + } + + + .day { + .content { + position: absolute; + bottom: 0; + right: 0; + left: 0; + top: 0 } - .weekdays { - border-bottom: 1px solid $color-hover-cd; - border-top: 1px solid $color-hover-cd; - color: $color-font-secondary; - font-weight: bold + .day-number { + transition: background-color 0.3s; + text-align:center; + float:inline-end; + margin: 0 auto; + border-radius: 50%; + font-size: 0.85em; + width:2.2em; + height: 1.2em; + padding: 0.5em 0; + cursor: pointer; + outline: 0 } - .day { - box-sizing: border-box; - padding: 0.1em; - width: 14.2857143%; - line-height: 1.5em; - outline: 0; - - span { - transition: background-color 0.3s; - text-align: center; - font-size: .8em; - border-radius: 50%; - display: block; - padding: 0.2em; - cursor: pointer - } + .day-number:hover { + background-color: lighten($color-font-secondary, 20%); + opacity: 0.8 } + } - .day:hover span { - background-color: #DDD + .day::after { + content: ""; + display: block; + padding-top: 100%; + } + + .day.primary .day-number { + background-color: $color-main; + color: $color-font-bg; + } + + .events { + margin-top: 0.5em; + font-size: 0.6em + } + + + .events { + color: $color-font-secondary; + + .event { + margin-bottom: .1em; } + } - .day.gray { + .chip { + background-color: $color-main; + color: $color-font-bg; + display: inline-block; + border-radius: .3em; + padding: 0.3em .8em; + max-width: 5em; + } + + .day.gray { + .day-number { color: $color-font-secondary } + } - .day.orange { - font-weight: bold; - color: $color-main; - } - - .day.orange-circle { - color: $color-font; - & > span { - background-color: $color-main - } - } + - .day.orange-circle:hover { - & > span { - background-color: $color-main-medium - } - } - - .day.light-orange { - color: $color-main-medium - } - - .day.green { - font-weight: bold; - color: $color-success; - } - - .day.green-circle { - color: $color-font; - & > span { - background-color: $color-success - } - } - - .day.green-circle:hover { - & > span { - background-color: $color-success-medium - } - } - - .day.light-green { - font-weight: bold; - color: $color-success-medium - } - - .day.blue { - font-weight: bold; - color: $color-notice; - } - - .day.blue-circle { - color: $color-font; - & > span { - background-color: $color-notice - } - } - - .day.blue-circle:hover { - & > span { - background-color: $color-notice-medium - } - } - - .day.light-blue { - font-weight: bold; - color: $color-notice-medium - } - - .day.red { - font-weight: bold; - color: $color-alert - } - - .day.red-circle { - color: $color-font; - & > span { - background-color: $color-alert - } - } - - .day.red-circle:hover { - & > span { - background-color: $color-alert-medium - } - } - - .day.light-red { - font-weight: bold; - color: $color-alert-medium; + .day.sunday { + .day-number { + color: $color-alert; + font-weight: bold } } } diff --git a/front/core/components/check/check.html b/front/core/components/check/check.html index 55a2f9c8c..4ca9f83a5 100644 --- a/front/core/components/check/check.html +++ b/front/core/components/check/check.html @@ -4,7 +4,7 @@ ng-disabled="::$ctrl.disabled" ng-checked="$ctrl.isChecked" ng-model="$ctrl.model"> - {{::$ctrl.label}} + {{::$ctrl.label}} this.$element.addClass('shown'), 30); - if (this.onOpen) - this.onOpen(); + this.emit('open'); } /** @@ -55,6 +54,7 @@ export default class Dialog extends Component { hide() { this.fireResponse(); this.realHide(); + this.emit('close'); } /** @@ -120,7 +120,6 @@ ngModule.component('vnDialog', { buttons: '?tplButtons' }, bindings: { - onOpen: '&?', onResponse: '&?' }, controller: Dialog diff --git a/front/core/components/dialog/dialog.spec.js b/front/core/components/dialog/dialog.spec.js index 4937fdba3..b889f1bc0 100644 --- a/front/core/components/dialog/dialog.spec.js +++ b/front/core/components/dialog/dialog.spec.js @@ -7,7 +7,7 @@ describe('Component vnDialog', () => { beforeEach(angular.mock.inject($componentController => { $element = angular.element(''); controller = $componentController('vnDialog', {$element, $transclude: null}); - controller.onOpen = jasmine.createSpy('onOpen'); + controller.emit = jasmine.createSpy('emit'); })); describe('show()', () => { @@ -17,15 +17,15 @@ describe('Component vnDialog', () => { controller.show(); expect(controller.element.style.display).toEqual('none'); - expect(controller.onOpen).not.toHaveBeenCalledWith(); + expect(controller.emit).not.toHaveBeenCalledWith('open'); }); - it(`should set shown on the controller, set style.display on the element and call onOpen()`, () => { + it(`should set shown on the controller, set style.display on the element and emit onOpen() event`, () => { controller.show(); expect(controller.element.style.display).toEqual('flex'); expect(controller.shown).toBeTruthy(); - expect(controller.onOpen).toHaveBeenCalledWith(); + expect(controller.emit).toHaveBeenCalledWith('open'); }); }); diff --git a/front/core/components/index.js b/front/core/components/index.js index d626470c3..09ee97963 100644 --- a/front/core/components/index.js +++ b/front/core/components/index.js @@ -20,7 +20,7 @@ import './multi-check/multi-check'; import './date-picker/date-picker'; import './button/button'; import './check/check'; -import './radio/radio'; +import './radio-group/radio-group'; import './textarea/textarea'; import './icon-button/icon-button'; import './submit/submit'; diff --git a/front/core/components/input-number/index.html b/front/core/components/input-number/index.html index cb3f24bd5..9fd024280 100644 --- a/front/core/components/input-number/index.html +++ b/front/core/components/input-number/index.html @@ -22,7 +22,10 @@ ng-focus="$ctrl.hasFocus = true" ng-blur="$ctrl.hasFocus = false" tabindex="{{$ctrl.input.tabindex}}"/> - +
diff --git a/front/core/components/input-number/index.js b/front/core/components/input-number/index.js index 7eb8cbd54..6c9f378e8 100644 --- a/front/core/components/input-number/index.js +++ b/front/core/components/input-number/index.js @@ -192,6 +192,7 @@ ngModule.component('vnInputNumber', { label: '@?', name: '@?', disabled: ' + + {{::option.label}} + + \ No newline at end of file diff --git a/front/core/components/radio-group/radio-group.js b/front/core/components/radio-group/radio-group.js new file mode 100644 index 000000000..80c77a7e2 --- /dev/null +++ b/front/core/components/radio-group/radio-group.js @@ -0,0 +1,41 @@ +import ngModule from '../../module'; +import Component from '../../lib/component'; +import './style.scss'; + +export default class Controller extends Component { + constructor($element, $scope, $attrs) { + super($element, $scope); + this.hasInfo = Boolean($attrs.info); + this.info = $attrs.info || null; + } + + get model() { + return this._model; + } + + set model(value) { + this._model = value; + } + + get field() { + return this._model; + } + + set field(value) { + this._model = value; + } +} + +Controller.$inject = ['$element', '$scope', '$attrs']; + +ngModule.component('vnRadioGroup', { + template: require('./radio-group.html'), + controller: Controller, + + bindings: { + field: '=?', + options: ' -*[text]* diff --git a/front/core/components/radio/radio.js b/front/core/components/radio/radio.js deleted file mode 100644 index 70dbc059d..000000000 --- a/front/core/components/radio/radio.js +++ /dev/null @@ -1,15 +0,0 @@ -import ngModule from '../../module'; -import template from './radio.html'; - -directive.$inject = ['vnTemplate']; -export default function directive(vnTemplate) { - return { - restrict: 'E', - template: (_, $attrs) => - vnTemplate.get(template, $attrs, { - enabled: 'true', - className: 'mdl-radio mdl-js-radio mdl-js-ripple-effect' - }) - }; -} -ngModule.directive('vnRadio', directive); diff --git a/front/core/components/submit/submit.js b/front/core/components/submit/submit.js index c1199d033..41d63cf1d 100644 --- a/front/core/components/submit/submit.js +++ b/front/core/components/submit/submit.js @@ -1,7 +1,9 @@ import ngModule from '../../module'; +import Input from '../../lib/input'; -export default class Controller { - constructor($element) { +export default class Controller extends Input { + constructor($element, $scope) { + super($element, $scope); this.$element = $element; this.input = $element[0].querySelector('input'); } @@ -11,7 +13,7 @@ export default class Controller { } } -Controller.$inject = ['$element']; +Controller.$inject = ['$element', '$scope']; ngModule.component('vnSubmit', { template: require('./submit.html'), diff --git a/front/core/components/table/style.scss b/front/core/components/table/style.scss index 5b50f4816..87af10834 100644 --- a/front/core/components/table/style.scss +++ b/front/core/components/table/style.scss @@ -63,6 +63,10 @@ vn-table { padding-bottom: .8em; } & > vn-th, + & > vn-td { + overflow: hidden; + } + & > vn-th, & > vn-td, & > vn-td-editable { vertical-align: middle; @@ -70,7 +74,6 @@ vn-table { text-align: left; padding: .6em .5em; white-space: nowrap; - overflow: hidden; text-overflow: ellipsis; max-width: 5em; @@ -157,7 +160,7 @@ vn-table { } vn-autocomplete { div.mdl-textfield { - padding: 0px !important; + padding: 0 !important; } label.mdl-textfield__label:after { bottom: 0; diff --git a/front/core/components/td-editable/index.js b/front/core/components/td-editable/index.js index ebf214564..64f29cddc 100644 --- a/front/core/components/td-editable/index.js +++ b/front/core/components/td-editable/index.js @@ -1,43 +1,71 @@ import ngModule from '../../module'; import Component from '../../lib/component'; -import {focus} from '../../directives/focus'; +import Input from '../../lib/input'; import './style.scss'; export default class Controller extends Component { constructor($element, $scope, $transclude, $timeout) { super($element, $scope); this.$timeout = $timeout; - let element = $element[0]; - element.tabIndex = 0; + this.element.tabIndex = 0; - element.addEventListener('focus', () => { + this.element.addEventListener('focus', () => { if (this.field || this.disabled) return; $transclude((tClone, tScope) => { this.field = tClone; this.tScope = tScope; this.element.querySelector('.field').appendChild(this.field[0]); - element.tabIndex = -1; + this.element.tabIndex = -1; }, null, 'field'); - element.classList.add('selected'); + this.element.classList.add('selected'); }); - element.addEventListener('focusout', event => { - if (!this.field || this.disabled) return; - // this.destroyTimer(); - this.lastEvent = event; - let target = event.relatedTarget; - while (target && target != element) - target = target.parentNode; + this.element.addEventListener('focusout', event => this.hideField(event)); - if (!target) { - this.tScope.$destroy(); - this.field.remove(); - this.field = null; - element.classList.remove('selected'); - element.tabIndex = 0; + this.element.addEventListener('keyup', event => { + if (event.key === 'Enter') + this.hideField(event); + }); + + this.element.addEventListener('click', event => { + if (this.disabled) return; + + let target = event.target; + while (target) { + if (target == this.field[0]) return; + target = target.parentNode; + } + + let inputCtrl = this.field[0].firstElementChild.$ctrl; + if (inputCtrl instanceof Input) { + let evt = new MouseEvent('click', { + bubbles: true, + cancelable: true, + view: window + }); + inputCtrl.input.dispatchEvent(evt); } }); } + + hideField(event) { + if (!this.field || !this.tScope) return; + + this.lastEvent = event; + let target = event.relatedTarget; + while (target && target != this.element) + target = target.parentNode; + + if (!target) { + this.tScope.$destroy(); + this.tScope = null; + this.field.remove(); + this.field = null; + this.element.classList.remove('selected'); + this.element.tabIndex = 0; + } + } + destroyTimer() { if (this.timer) { this.$timeout.cancel(this.timer); @@ -48,6 +76,21 @@ export default class Controller extends Component { $onDestroy() { this.destroyTimer(); } + + get disabled() { + return this._disabled; + } + + set disabled(value) { + this._disabled = value; + + const classList = this.element.classList; + + if (value) + classList.add('disabled'); + else + classList.remove('disabled'); + } } Controller.$inject = ['$element', '$scope', '$transclude', '$timeout']; diff --git a/front/core/components/td-editable/style.scss b/front/core/components/td-editable/style.scss index 19c56cb02..e37e1086c 100644 --- a/front/core/components/td-editable/style.scss +++ b/front/core/components/td-editable/style.scss @@ -1,11 +1,21 @@ @import "variables"; vn-td-editable { + cursor: pointer; + outline: none; + position: relative; + overflow: visible; + text { - border-bottom: 1px solid rgba(0,0,0,.12); + border: 1px dashed rgba(0, 0, 0, .15); + border-radius: 1em; + padding: 5px 10px; min-height: 15px; - cursor: pointer; - display: block + display: block; + overflow: hidden; + &:hover { + border-color: $color-main; + } } text::after { @@ -13,25 +23,17 @@ vn-td-editable { content: ''; clear: both; } - - outline: none; - position: relative; - &:not([disabled="true"]) { - cursor: initial - } - &[disabled="true"] { - cursor: not-allowed; - } &.selected > .text { visibility: hidden; } & > .field { display: none; - position: absolute; - top: 0; - left: 0; width: 100%; height: 100%; + position: absolute; + z-index:10; + top: 0; + left: 0; box-sizing: border-box; align-items: center; padding: .6em; @@ -54,4 +56,11 @@ vn-td-editable { &.selected > .field { display: flex; } +} + +vn-td-editable.disabled { + cursor: initial; +} +vn-td-editable.disabled text { + border: none; } \ No newline at end of file diff --git a/front/core/components/textfield/textfield.html b/front/core/components/textfield/textfield.html index 0c1058148..22756497f 100644 --- a/front/core/components/textfield/textfield.html +++ b/front/core/components/textfield/textfield.html @@ -16,7 +16,7 @@ tabindex="{{$ctrl.input.tabindex}}"/>
diff --git a/front/core/directives/acl.js b/front/core/directives/acl.js index 46e8c582e..f29923295 100644 --- a/front/core/directives/acl.js +++ b/front/core/directives/acl.js @@ -36,19 +36,24 @@ function vnAcl(aclService, $timeout) { return conditions; } - function permissionElement($scope, $element, action) { + function permissionElement($element, action) { if (!aclService.hasAny(acls)) { if (action === 'disabled') { - let input = $element[0]; + let element = $element[0]; let selector = 'input, textarea, button, submit, md-checkbox'; - if (!input.matches(selector)) - input = input.querySelector(selector); + if (element.$ctrl) { + element.setAttribute('disabled', 'true'); + element.$ctrl.disabled = true; + } - if (input) { + if (!element.matches(selector)) + element = element.querySelector(selector); + + if (element) { $timeout(() => { - input.setAttribute('disabled', 'true'); - updateMaterial(input); + element.setAttribute('disabled', 'true'); + updateMaterial(element); }); $element[0].querySelectorAll('vn-drop-down').forEach(element => { element.parentNode.removeChild(element); @@ -78,7 +83,7 @@ function vnAcl(aclService, $timeout) { let action = $attrs.vnAclAction || 'disabled'; let conditions = getDynamicConditions($attrs); - permissionElement($scope, $element, action); + permissionElement($element, action); if (Object.keys(conditions).length) { let watchConditions = $scope.$watch(() => { @@ -86,7 +91,7 @@ function vnAcl(aclService, $timeout) { let hasPermission = $scope.$eval($attrs[attrName]); if (!hasPermission) { updateAcls(conditions[attrName].role, hasPermission); - permissionElement($scope, $element, action); + permissionElement($element, action); delete conditions[attrName]; } }); diff --git a/front/core/directives/focus.js b/front/core/directives/focus.js index 91fcffbb2..b57241078 100644 --- a/front/core/directives/focus.js +++ b/front/core/directives/focus.js @@ -1,13 +1,20 @@ import ngModule from '../module'; export function focus(input) { + const element = input; let selector = 'input, textarea, button, submit'; if (!input.matches(selector)) input = input.querySelector(selector); if (!input) { - console.warn(`vnFocus: Can't find a focusable element`); + const focusEvent = new MouseEvent('focus', { + bubbles: true, + cancelable: true, + view: window + }); + element.dispatchEvent(focusEvent); + return; } diff --git a/front/core/directives/http-click.js b/front/core/directives/http-click.js new file mode 100644 index 000000000..5e69d81d1 --- /dev/null +++ b/front/core/directives/http-click.js @@ -0,0 +1,29 @@ +import ngModule from '../module'; + +/** + * Disables a clicked element while request is being processed + * Enables again when promise ends + * + * @param {Object} $parse + * @return {Object} The directive + */ +export function directive($parse) { + return { + restrict: 'A', + link: function($scope, $element, $attrs) { + const cb = $parse($attrs.vnHttpClick); + const element = $element[0]; + $element.on('click', () => { + element.$ctrl.disabled = true; + + cb($scope).finally(() => { + element.$ctrl.disabled = false; + }); + }); + } + }; +} + +directive.$inject = ['$parse']; + +ngModule.directive('vnHttpClick', directive); diff --git a/front/core/directives/http-submit.js b/front/core/directives/http-submit.js new file mode 100644 index 000000000..0cf17866e --- /dev/null +++ b/front/core/directives/http-submit.js @@ -0,0 +1,37 @@ +import ngModule from '../module'; + +/** + * Disables a submitted form while request is being processed + * Enables again when promise ends + * + * @param {Object} $parse + * @return {Object} The directive + */ +export function directive($parse) { + return { + restrict: 'A', + link: function($scope, $element, $attrs) { + const cb = $parse($attrs.vnHttpSubmit); + const element = $element[0]; + $element.on('submit', () => { + const selector = 'vn-textfield, vn-autocomplete, vn-submit'; + const elements = element.querySelectorAll(selector); + const fields = angular.element(elements); + + angular.forEach(fields, field => { + field.$ctrl.disabled = true; + }); + + cb($scope).finally(() => { + angular.forEach(fields, field => { + field.$ctrl.disabled = false; + }); + }); + }); + } + }; +} + +directive.$inject = ['$parse']; + +ngModule.directive('vnHttpSubmit', directive); diff --git a/front/core/directives/index.js b/front/core/directives/index.js index 7db806caf..08adfac07 100644 --- a/front/core/directives/index.js +++ b/front/core/directives/index.js @@ -13,3 +13,5 @@ import './title'; import './uvc'; import './draggable'; import './droppable'; +import './http-click'; +import './http-submit'; diff --git a/front/core/directives/specs/focus.spec.js b/front/core/directives/specs/focus.spec.js index 541a0b640..4a8c64f82 100644 --- a/front/core/directives/specs/focus.spec.js +++ b/front/core/directives/specs/focus.spec.js @@ -24,16 +24,9 @@ describe('Directive focus', () => { let childHtml = ''; compile(html, childHtml); - expect($element[0].firstChild.focus).toHaveBeenCalled(); + expect($element[0].firstChild.focus).toHaveBeenCalledWith(); }); - it('should print a warning message on console', () => { - let html = ``; - console.warn = jasmine.createSpy('warn'); - compile(html); - - expect(console.warn).toHaveBeenCalledWith(`vnFocus: Can't find a focusable element`); - }); it('should call focus function on the element', () => { let html = ``; diff --git a/front/core/filters/percentage.js b/front/core/filters/percentage.js index 157871ed8..58e67ffa6 100644 --- a/front/core/filters/percentage.js +++ b/front/core/filters/percentage.js @@ -9,7 +9,7 @@ export default function percentage() { return function(input) { if (input == null || input === '') return null; - return input * 100 + ' %'; + return `${input} %`; }; } ngModule.filter('percentage', percentage); diff --git a/front/core/styles/salixfont.css b/front/core/styles/salixfont.css index 7f2ca142f..5bea56e13 100644 --- a/front/core/styles/salixfont.css +++ b/front/core/styles/salixfont.css @@ -281,3 +281,264 @@ .icon-worker:before { content: "\e943"; } +.icon-deliveryprices:before { + content: "\e956"; +} +.icon-basketadd:before { + content: "\e955"; +} +.icon-catalog:before { + content: "\e952"; +} +.icon-agency:before { + content: "\e910"; +} +.icon-delivery:before { + content: "\e94a"; +} +.icon-wand:before { + content: "\e954"; +} +.icon-unavailable:before { + content: "\e953"; +} +.icon-buscaman:before { + content: "\e951"; +} +.icon-pbx:before { + content: "\e950"; +} +.icon-calendar:before { + content: "\e94f"; +} +.icon-linesplit:before { + content: "\e945"; +} +.icon-invoices:before { + content: "\e91c"; +} +.icon-pets:before { + content: "\e94e"; +} +.icon-100:before { + content: "\e940"; +} +.icon-accessory:before { + content: "\e90a"; +} +.icon-actions:before { + content: "\e900"; +} +.icon-addperson:before { + content: "\e901"; +} +.icon-albaran:before { + content: "\e902"; +} +.icon-apps:before { + content: "\e948"; +} +.icon-artificial:before { + content: "\e903"; +} +.icon-barcode:before { + content: "\e904"; +} +.icon-basket:before { + content: "\e942"; +} +.icon-bin:before { + content: "\e905"; +} +.icon-botanical:before { + content: "\e906"; +} +.icon-bucket:before { + content: "\e907"; +} +.icon-claims:before { + content: "\e908"; +} +.icon-clone:before { + content: "\e909"; +} +.icon-columnadd:before { + content: "\e944"; +} +.icon-columndelete:before { + content: "\e90f"; +} +.icon-components:before { + content: "\e90b"; +} +.icon-consignatarios:before { + content: "\e90d"; +} +.icon-control:before { + content: "\e93f"; +} +.icon-credit:before { + content: "\e90e"; +} +.icon-details:before { + content: "\e911"; +} +.icon-disabled:before { + content: "\e91b"; +} +.icon-doc:before { + content: "\e913"; +} +.icon-entry:before { + content: "\e914"; +} +.icon-exit:before { + content: "\e947"; +} +.icon-eye:before { + content: "\e915"; +} +.icon-fiscal:before { + content: "\e912"; +} +.icon-flower:before { + content: "\e916"; +} +.icon-frozen:before { + content: "\e917"; +} +.icon-greenery:before { + content: "\e93c"; +} +.icon-greuge:before { + content: "\e918"; +} +.icon-grid:before { + content: "\e919"; +} +.icon-handmade:before { + content: "\e90c"; +} +.icon-history:before { + content: "\e91a"; +} +.icon-info:before { + content: "\e949"; +} +.icon-item:before { + content: "\e941"; +} +.icon-languaje:before { + content: "\e91d"; +} +.icon-linedelete:before { + content: "\e946"; +} +.icon-lines:before { + content: "\e91e"; +} +.icon-linesprepaired:before { + content: "\e94b"; +} +.icon-logout:before { + content: "\e91f"; +} +.icon-mana:before { + content: "\e920"; +} +.icon-mandatory:before { + content: "\e921"; +} +.icon-niche:before { + content: "\e922"; +} +.icon-no036:before { + content: "\e923"; +} +.icon-notes:before { + content: "\e924"; +} +.icon-noweb:before { + content: "\e925"; +} +.icon-onlinepayment:before { + content: "\e926"; +} +.icon-package:before { + content: "\e927"; +} +.icon-payment:before { + content: "\e928"; +} +.icon-person:before { + content: "\e929"; +} +.icon-photo:before { + content: "\e92a"; +} +.icon-plant:before { + content: "\e92b"; +} +.icon-recovery:before { + content: "\e92d"; +} +.icon-regentry:before { + content: "\e92e"; +} +.icon-reserve:before { + content: "\e92f"; +} +.icon-revision:before { + content: "\e94c"; +} +.icon-risk:before { + content: "\e930"; +} +.icon-services:before { + content: "\e94d"; +} +.icon-settings:before { + content: "\e931"; +} +.icon-sms:before { + content: "\e932"; +} +.icon-solclaim:before { + content: "\e933"; +} +.icon-solunion:before { + content: "\e934"; +} +.icon-splur:before { + content: "\e935"; +} +.icon-stowaway:before { + content: "\e92c"; +} +.icon-supplier:before { + content: "\e936"; +} +.icon-tags:before { + content: "\e937"; +} +.icon-tax:before { + content: "\e938"; +} +.icon-ticket:before { + content: "\e939"; +} +.icon-traceability:before { + content: "\e93a"; +} +.icon-transaction:before { + content: "\e93b"; +} +.icon-volume:before { + content: "\e93d"; +} +.icon-web:before { + content: "\e93e"; +} +.icon-worker:before { + content: "\e943"; +} \ No newline at end of file diff --git a/front/core/styles/salixfont.svg b/front/core/styles/salixfont.svg index 9145bac4f..04dd47f6f 100644 --- a/front/core/styles/salixfont.svg +++ b/front/core/styles/salixfont.svg @@ -93,4 +93,5 @@ + \ No newline at end of file diff --git a/front/core/styles/salixfont.ttf b/front/core/styles/salixfont.ttf index 52b9c0f5c..b11c6f64c 100644 Binary files a/front/core/styles/salixfont.ttf and b/front/core/styles/salixfont.ttf differ diff --git a/front/core/styles/salixfont.woff b/front/core/styles/salixfont.woff index 31320a8d6..f88e6bfbf 100644 Binary files a/front/core/styles/salixfont.woff and b/front/core/styles/salixfont.woff differ diff --git a/front/nginx.conf b/front/nginx.conf index 84daf2ef2..cf429b153 100644 --- a/front/nginx.conf +++ b/front/nginx.conf @@ -16,6 +16,7 @@ server { listen [::]:80 default_server; server_name _; autoindex off; + client_max_body_size 50M; root /salix/dist; error_page 404 = @notfound; diff --git a/front/salix/styles/display.scss b/front/salix/styles/display.scss index d842c1cc3..8c5827194 100644 --- a/front/salix/styles/display.scss +++ b/front/salix/styles/display.scss @@ -26,10 +26,6 @@ line-height: 0px; } -input:disabled, button:disabled { - cursor: not-allowed !important; -} - input[type="submit"]:disabled, button:disabled { opacity: 0.7; } diff --git a/front/salix/styles/variables.scss b/front/salix/styles/variables.scss index 732389fb9..5fd31a8c6 100644 --- a/front/salix/styles/variables.scss +++ b/front/salix/styles/variables.scss @@ -52,6 +52,8 @@ $color-hover-cd: rgba(0, 0, 0, .1); $color-hover-dc: .7; $color-disabled: .6; +$color-font-link-medium: lighten($color-font-link, 20%); +$color-font-link-light: lighten($color-font-link, 35%); $color-main-medium: lighten($color-main, 20%); $color-main-light: lighten($color-main, 35%); $color-success-medium: lighten($color-success, 20%); diff --git a/gulpfile.js b/gulpfile.js index 6f1dd5521..b696431c0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -4,6 +4,8 @@ const exec = require('child_process').exec; const PluginError = require('plugin-error'); const argv = require('minimist')(process.argv.slice(2)); const log = require('fancy-log'); +const request = require('request'); +const e2eConfig = require('./e2e/helpers/config.js'); // Configuration @@ -153,6 +155,15 @@ function e2eOnly() { const specFiles = [ + `${__dirname}/e2e/paths/01*/*[sS]pec.js`, + `${__dirname}/e2e/paths/02*/*[sS]pec.js`, + `${__dirname}/e2e/paths/03*/*[sS]pec.js`, + `${__dirname}/e2e/paths/04*/*[sS]pec.js`, + `${__dirname}/e2e/paths/05*/*[sS]pec.js`, + `${__dirname}/e2e/paths/06*/*[sS]pec.js`, + `${__dirname}/e2e/paths/07*/*[sS]pec.js`, + `${__dirname}/e2e/paths/08*/*[sS]pec.js`, + `${__dirname}/e2e/paths/09*/*[sS]pec.js`, `${__dirname}/e2e/paths/**/*[sS]pec.js`, `${__dirname}/e2e/helpers/extensions.js` ]; @@ -179,7 +190,31 @@ function e2eOnly() { } e2eOnly.description = `Runs the e2e tests only`; -e2e = gulp.series(docker, e2eOnly); +async function backendStatus() { + const milliseconds = 250; + return new Promise(resolve => { + let timer; + let attempts = 1; + timer = setInterval(() => { + const url = `${e2eConfig.url}/api/Applications/status`; + request.get(url, (err, res) => { + if (res.body == 'true') { + clearInterval(timer); + resolve(attempts); + } else + attempts++; + }); + }, milliseconds); + }); +} +backendStatus.description = `Performs a simple requests to check the backend status`; + +e2e = gulp.series(docker, async function isBackendReady() { + const attempts = await backendStatus(); + log(`Backend ready after ${attempts} attempt(s)`); + + return attempts; +}, e2eOnly); e2e.description = `Restarts database and runs the e2e tests`; function smokesOnly() { @@ -524,5 +559,6 @@ module.exports = { watch, docker, dockerStart, - dockerWait + dockerWait, + backendStatus }; diff --git a/loopback/common/models/vn-model.js b/loopback/common/models/vn-model.js index c2bf8463e..d03d52ae8 100644 --- a/loopback/common/models/vn-model.js +++ b/loopback/common/models/vn-model.js @@ -152,8 +152,9 @@ module.exports = function(Self) { } try { - await realMethod.call(this, data, options); - if (cb) cb(); + const result = await realMethod.call(this, data, options); + + if (cb) cb(null, result); } catch (err) { let myErr = replaceErr(err, replaceErrFunc); if (cb) diff --git a/loopback/locale/en.json b/loopback/locale/en.json index 62551ff18..4a86734fd 100644 --- a/loopback/locale/en.json +++ b/loopback/locale/en.json @@ -46,5 +46,9 @@ "The value should be a number": "The value should be a number", "The current ticket can't be modified": "The current ticket can't be modified", "Extension format is invalid": "Extension format is invalid", - "NO_ZONE_FOR_THIS_PARAMETERS": "NO_ZONE_FOR_THIS_PARAMETERS" + "NO_ZONE_FOR_THIS_PARAMETERS": "NO_ZONE_FOR_THIS_PARAMETERS", + "This client can't be invoiced": "This client can't be invoiced", + "The introduced hour already exists": "The introduced hour already exists", + "Invalid parameters to create a new ticket": "Invalid parameters to create a new ticket", + "Concept cannot be blank": "Concept cannot be blank" } \ No newline at end of file diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 6df1cb074..256b51205 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -76,7 +76,6 @@ "We weren't able to send this SMS": "No hemos podido enviar el SMS", "This client can't be invoiced": "Este cliente no puede ser facturado", "This ticket can't be invoiced": "Este ticket no puede ser facturado", - "That item is not available on that day": "El item no esta disponible para esa fecha", "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", "This ticket can not be modified": "Este ticket no puede ser modificado", "The introduced hour already exists": "Esta hora ya ha sido introducida", @@ -91,5 +90,9 @@ "NO_ZONE_FOR_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", "This item doesn't exists": "El artículo no existe", "NOT_ZONE_WITH_THIS_PARAMETERS": "Para este día no hay ninguna zona configurada", - "Extension format is invalid": "El formato de la extensión es inválido" + "Extension format is invalid": "El formato de la extensión es inválido", + "Invalid parameters to create a new ticket": "Parámetros inválidos para crear un nuevo ticket", + "This item is not available": "Este artículo no está disponible", + "This postcode already exists": "Este código postal ya existe", + "Concept cannot be blank": "Concept cannot be blank" } \ No newline at end of file diff --git a/loopback/server/datasources.json b/loopback/server/datasources.json index 019a863c6..6f6ef8648 100644 --- a/loopback/server/datasources.json +++ b/loopback/server/datasources.json @@ -19,7 +19,7 @@ "name": "storage", "connector": "loopback-component-storage", "provider": "filesystem", - "root": "./", + "root": "./e2e/dms", "maxFileSize": "10485760", "allowedContentTypes": [ "application/pdf", diff --git a/loopback/server/middleware.development.json b/loopback/server/middleware.development.json index 9cb38a275..071c11a30 100644 --- a/loopback/server/middleware.development.json +++ b/loopback/server/middleware.development.json @@ -3,7 +3,7 @@ "strong-error-handler": { "params": { "debug": true, - "log": false + "log": true } } } diff --git a/loopback/server/middleware/error-handler.js b/loopback/server/middleware/error-handler.js index 8772220de..725826ae7 100644 --- a/loopback/server/middleware/error-handler.js +++ b/loopback/server/middleware/error-handler.js @@ -24,7 +24,13 @@ module.exports = function() { if (err.sqlState == '45000') return next(new UserError(req.__(err.sqlMessage))); - if (!err.statusCode || err.statusCode >= 500) + // Logs error to console + + let env = process.env.NODE_ENV; + let useCustomLogging = env && env != 'development' && + (!err.statusCode || err.statusCode >= 500); + + if (useCustomLogging) logToConsole(req, err); next(err); diff --git a/modules/agency/back/methods/agency/specs/landsThatDay.spec.js b/modules/agency/back/methods/agency/specs/landsThatDay.spec.js index b69325b8b..73a036e2a 100644 --- a/modules/agency/back/methods/agency/specs/landsThatDay.spec.js +++ b/modules/agency/back/methods/agency/specs/landsThatDay.spec.js @@ -10,11 +10,6 @@ describe('Agency landsThatDay()', () => { let agencies = await app.models.Agency.landsThatDay(filter); - expect(agencies.length).toEqual(5); - expect(agencies[0].agencyMode).toEqual('inhouse pickup'); - expect(agencies[1].agencyMode).toEqual('Silla247'); - expect(agencies[2].agencyMode).toEqual('Silla247Expensive'); - expect(agencies[3].agencyMode).toEqual('Other agency'); - expect(agencies[4].agencyMode).toEqual('Refund'); + expect(agencies.length).toBeGreaterThanOrEqual(3); }); }); diff --git a/modules/agency/back/methods/zone/editPrices.js b/modules/agency/back/methods/zone/editPrices.js new file mode 100644 index 000000000..b0203dc4b --- /dev/null +++ b/modules/agency/back/methods/zone/editPrices.js @@ -0,0 +1,81 @@ +const mergeFilters = require('vn-loopback/util/filter').mergeFilters; + +module.exports = Self => { + Self.remoteMethod('editPrices', { + description: 'Changes the price and bonus of a delivery day', + accessType: 'WRITE', + accepts: [{ + arg: 'id', + type: 'Number', + description: 'The zone id', + http: {source: 'path'} + }, + { + arg: 'delivered', + type: 'Date', + required: true, + }, + { + arg: 'price', + type: 'Number', + required: true, + }, + { + arg: 'bonus', + type: 'Number', + required: true, + }, + { + arg: 'option', + type: 'String', + required: true, + }], + returns: { + type: 'object', + root: true + }, + http: { + path: `/:id/editPrices`, + verb: 'POST' + } + }); + + Self.editPrices = async(id, delivered, price, bonus, option) => { + const models = Self.app.models; + + let filter = { + where: { + zoneFk: id + } + }; + + let where; + let shouldPropagate = true; + + if (option == 'Only this day') { + shouldPropagate = false; + where = {delivered}; + } else if (option == 'From this day') { + where = { + delivered: { + gte: delivered + } + }; + } + + filter = mergeFilters(filter, {where}); + + const days = await models.ZoneCalendar.find(filter); + const areAllFromSameZone = days.every(day => day.zoneFk === id); + + if (!areAllFromSameZone) + throw new UserError('All delivery days must belong to the same zone'); + + if (shouldPropagate) { + const zone = await models.Zone.findById(id); + zone.updateAttributes({price, bonus}); + } + + return models.ZoneCalendar.updateAll(filter.where, {price, bonus}); + }; +}; diff --git a/modules/agency/back/methods/zone/specs/editPrices.spec.js b/modules/agency/back/methods/zone/specs/editPrices.spec.js new file mode 100644 index 000000000..ad0541641 --- /dev/null +++ b/modules/agency/back/methods/zone/specs/editPrices.spec.js @@ -0,0 +1,81 @@ +const app = require('vn-loopback/server/server'); + +describe('agency editPrices()', () => { + const zoneId = 1; + let originalZone; + + beforeAll(async done => { + originalZone = await app.models.Zone.findById(zoneId); + done(); + }); + + afterAll(async done => { + await await app.models.ZoneCalendar.updateAll({zoneFk: zoneId}, { + price: originalZone.price, + bonus: originalZone.bonus + }); + done(); + }); + + it('should apply price and bonus for a selected day', async() => { + const delivered = new Date(); + delivered.setHours(0, 0, 0, 0); + await app.models.Zone.editPrices(zoneId, delivered, 4.00, 2.00, 'Only this day'); + + const editedDays = await app.models.ZoneCalendar.find({ + where: { + zoneFk: zoneId, + delivered: delivered + } + }); + const firstEditedDay = editedDays[0]; + + expect(editedDays.length).toEqual(1); + expect(firstEditedDay.price).toEqual(4.00); + expect(firstEditedDay.bonus).toEqual(2.00); + }); + + it('should apply price and bonus for all delivery days starting from selected day', async() => { + const delivered = new Date(); + delivered.setHours(0, 0, 0, 0); + await app.models.Zone.editPrices(1, delivered, 5.50, 1.00, 'From this day'); + + const editedDays = await app.models.ZoneCalendar.find({ + where: { + zoneFk: zoneId, + delivered: { + gte: delivered + } + } + }); + const firstEditedDay = editedDays[0]; + const lastEditedDay = editedDays[editedDays.length - 1]; + + expect(editedDays.length).toEqual(5); + expect(firstEditedDay.price).toEqual(5.50); + expect(firstEditedDay.bonus).toEqual(1.00); + expect(lastEditedDay.price).toEqual(5.50); + expect(lastEditedDay.bonus).toEqual(1.00); + }); + + it('should apply price and bonus for all delivery days', async() => { + const delivered = new Date(); + delivered.setHours(0, 0, 0, 0); + await app.models.Zone.editPrices(1, delivered, 7.00, 0.00, 'All days'); + + const editedDays = await app.models.ZoneCalendar.find({ + where: { + zoneFk: zoneId + } + }); + const firstEditedDay = editedDays[0]; + const lastEditedDay = editedDays[editedDays.length - 1]; + + expect(editedDays.length).toEqual(5); + expect(firstEditedDay.price).toEqual(7.00); + expect(firstEditedDay.bonus).toEqual(0.00); + expect(lastEditedDay.price).toEqual(7.00); + expect(lastEditedDay.bonus).toEqual(0.00); + }); +}); + diff --git a/modules/agency/back/models/zone-calendar.json b/modules/agency/back/models/zone-calendar.json index 35926a0db..bed9a8011 100644 --- a/modules/agency/back/models/zone-calendar.json +++ b/modules/agency/back/models/zone-calendar.json @@ -14,6 +14,12 @@ "delivered": { "id": true, "type": "Date" + }, + "price": { + "type": "Number" + }, + "bonus": { + "type": "Number" } }, "relations": { diff --git a/modules/agency/back/models/zone.js b/modules/agency/back/models/zone.js index d282224b9..c7ba642f3 100644 --- a/modules/agency/back/models/zone.js +++ b/modules/agency/back/models/zone.js @@ -1,5 +1,6 @@ module.exports = Self => { require('../methods/zone/clone')(Self); + require('../methods/zone/editPrices')(Self); Self.validatesPresenceOf('warehouseFk', { message: `Warehouse cannot be blank` diff --git a/modules/agency/front/calendar/index.html b/modules/agency/front/calendar/index.html index d02be3059..5ea7d70a0 100644 --- a/modules/agency/front/calendar/index.html +++ b/modules/agency/front/calendar/index.html @@ -1,21 +1,74 @@ - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + +
Edit price
+ + + + + + + + + + +
+ + + + +
\ No newline at end of file diff --git a/modules/agency/front/calendar/index.js b/modules/agency/front/calendar/index.js index bf1625585..5e6cb19b9 100644 --- a/modules/agency/front/calendar/index.js +++ b/modules/agency/front/calendar/index.js @@ -1,49 +1,26 @@ import ngModule from '../module'; +import './style.scss'; class Controller { - constructor($element, $scope, $stateParams, $http) { + constructor($element, $scope, $http, $filter, $translate, $stateParams, vnApp) { this.$element = $element; - this.$stateParams = $stateParams; - this.$scope = $scope; + this.$ = $scope; this.$http = $http; + this.$filter = $filter; + this.$translate = $translate; + this.$stateParams = $stateParams; + this.vnApp = vnApp; this.stMonthDate = new Date(); this.ndMonthDate = new Date(); this.ndMonthDate.setMonth(this.ndMonthDate.getMonth() + 1); + this.selectedDay = {}; } $postLink() { - this.stMonth = this.$scope.stMonth; - this.ndMonth = this.$scope.ndMonth; + this.stMonth = this.$.stMonth; + this.ndMonth = this.$.ndMonth; } - // Disabled until implementation - // of holidays by node - /* get zone() { - return this._zone; - } - - set zone(value) { - this._zone = value; - - if (!value) return; - - let query = '/agency/api/LabourHolidays/getByWarehouse'; - this.$http.get(query, {params: {warehouseFk: value.warehouseFk}}).then(res => { - if (!res.data) return; - const events = []; - res.data.forEach(holiday => { - events.push({ - date: holiday.dated, - className: 'red', - title: holiday.description || holiday.name, - isRemovable: false - }); - }); - - this.events = this.events.concat(events); - }); - } */ - get data() { return this._data; } @@ -52,97 +29,106 @@ class Controller { this._data = value; if (!value) return; + const events = []; value.forEach(event => { events.push({ + name: `P: ${this.$filter('currency')(event.price)}`, + description: 'Price', dated: event.delivered, - className: 'green-circle', - title: 'Has delivery' + style: {backgroundColor: '#a3d131'}, + data: {price: event.price} + }); + events.push({ + name: `B: ${this.$filter('currency')(event.bonus)}`, + description: 'Bonus', + dated: event.delivered, + data: {bonus: event.bonus} }); }); this.events = events; } - onSelection(calendar, values) { - let totalEvents = 0; - values.forEach(day => { - const exists = calendar.events.findIndex(event => { - return event.dated >= day.dated && event.dated <= day.dated - && event.isRemovable; - }); + onSelection(values) { + if (values.length > 1) return false; - if (exists > -1) totalEvents++; + this.options = [ + {label: 'Only this day', value: 'Only this day'}, + {label: 'From this day', value: 'From this day'}, + {label: 'All days', value: 'All days'} + ]; + const selection = values[0]; + const events = selection.events; + const hasEvents = events.length > 0; + + if (!hasEvents) + return this.vnApp.showMessage(this.$translate.instant(`There's no delivery for this day`)); + + this.selectedDay = { + delivered: selection.dated, + option: 'Only this day' + }; + + events.forEach(event => { + this.selectedDay = Object.assign(this.selectedDay, event.data); }); - - if (totalEvents > (values.length / 2)) - this.removeEvents(calendar, values); - else - this.insertEvents(calendar, values); + this.$.priceDialog.show(); } - insertEvents(calendar, days) { - days.forEach(day => { - const event = calendar.events.find(event => { - return event.dated >= day.dated && event.dated <= day.dated; - }); + onResponse(response) { + if (response == 'ACCEPT') { + try { + const data = { + delivered: this.selectedDay.delivered, + price: this.selectedDay.price, + bonus: this.selectedDay.bonus, + option: this.selectedDay.option + }; - if (event) return false; + this.$.watcher.check(); - this.$scope.model.insert({ - zoneFk: this.zone.id, - delivered: day.dated - }); - - calendar.addEvent({ - dated: day.dated, - className: 'green-circle', - title: 'Has delivery' - }); - }); - - this.$scope.model.save().then(() => { - this.events = calendar.events; - }); - } - - removeEvents(calendar, days) { - let dates = []; - days.forEach(day => { - const event = calendar.events.find(event => { - return event.dated >= day.dated && event.dated <= day.dated; - }); - - if (event && !event.isRemovable) + const path = `/api/Zones/${this.zone.id}/editPrices`; + this.$http.post(path, data).then(() => { + this.vnApp.showSuccess(this.$translate.instant('Data saved!')); + this.$.model.refresh(); + this.card.reload(); + }); + } catch (e) { + this.vnApp.showError(this.$translate.instant(e.message)); return false; + } + } - dates.push(day.dated); + return this.onClose(); + } - calendar.removeEvent(day.dated); - }); + onClose() { + this.$.watcher.updateOriginalData(); + } - if (dates.length == 0) return; - const params = {zoneFk: this.zone.id, dates}; - this.$http.post('/agency/api/zoneCalendars/removeByDate', params).then(() => { - this.events = calendar.events; + onMoveNext(calendars) { + calendars.forEach(calendar => { + calendar.moveNext(2); }); } - onMoveNext(calendar) { - calendar.moveNext(2); - } - - onMovePrevious(calendar) { - calendar.movePrevious(2); + onMovePrevious(calendars) { + calendars.forEach(calendar => { + calendar.movePrevious(2); + }); } } -Controller.$inject = ['$element', '$scope', '$stateParams', '$http']; +Controller.$inject = ['$element', '$scope', '$http', '$filter', '$translate', '$stateParams', 'vnApp']; ngModule.component('vnZoneCalendar', { template: require('./index.html'), controller: Controller, bindings: { zone: '<' + }, + require: { + card: '^vnZoneCard' } }); diff --git a/modules/agency/front/calendar/locale/es.yml b/modules/agency/front/calendar/locale/es.yml new file mode 100644 index 000000000..a37eeb272 --- /dev/null +++ b/modules/agency/front/calendar/locale/es.yml @@ -0,0 +1,6 @@ +Prices: Precios +Edit price: Modificar precio +Only this day: Solo este día +From this day: A partir de este día +All days: Todos los días +There's no delivery for this day: No hay reparto para este día \ No newline at end of file diff --git a/modules/agency/front/calendar/style.scss b/modules/agency/front/calendar/style.scss new file mode 100644 index 000000000..7ff389799 --- /dev/null +++ b/modules/agency/front/calendar/style.scss @@ -0,0 +1,7 @@ +vn-calendar:nth-child(2n + 1) { + border-right:1px solid #ddd +} + +.calendarControlsHeader { + justify-content: space-between; +} \ No newline at end of file diff --git a/modules/agency/front/create/index.html b/modules/agency/front/create/index.html index d25c91219..461829259 100644 --- a/modules/agency/front/create/index.html +++ b/modules/agency/front/create/index.html @@ -6,7 +6,7 @@ save="post">
-
+ { + return this.$scope.watcher.submit().then(res => { this.$state.go('zone.card.location', {id: res.data.id}); }); } diff --git a/modules/agency/front/index.js b/modules/agency/front/index.js index f58cc8f60..5e4103b43 100644 --- a/modules/agency/front/index.js +++ b/modules/agency/front/index.js @@ -8,4 +8,5 @@ import './search-panel'; import './create'; import './basic-data'; import './location'; +import './location/calendar'; import './calendar'; diff --git a/modules/agency/front/location/calendar.html b/modules/agency/front/location/calendar.html new file mode 100644 index 000000000..ad58aee1a --- /dev/null +++ b/modules/agency/front/location/calendar.html @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/modules/agency/front/location/calendar.js b/modules/agency/front/location/calendar.js new file mode 100644 index 000000000..802a9946e --- /dev/null +++ b/modules/agency/front/location/calendar.js @@ -0,0 +1,150 @@ +import ngModule from '../module'; + +class Controller { + constructor($element, $scope, $stateParams, $http) { + this.$element = $element; + this.$stateParams = $stateParams; + this.$scope = $scope; + this.$http = $http; + this.stMonthDate = new Date(); + this.ndMonthDate = new Date(); + this.ndMonthDate.setMonth(this.ndMonthDate.getMonth() + 1); + } + + $postLink() { + this.stMonth = this.$scope.stMonth; + this.ndMonth = this.$scope.ndMonth; + } + + // Disabled until implementation + // of holidays by node + /* get zone() { + return this._zone; + } + + set zone(value) { + this._zone = value; + + if (!value) return; + + let query = '/agency/api/LabourHolidays/getByWarehouse'; + this.$http.get(query, {params: {warehouseFk: value.warehouseFk}}).then(res => { + if (!res.data) return; + const events = []; + res.data.forEach(holiday => { + events.push({ + date: holiday.dated, + className: 'red', + title: holiday.description || holiday.name, + isRemovable: false + }); + }); + + this.events = this.events.concat(events); + }); + } */ + + get data() { + return this._data; + } + + set data(value) { + this._data = value; + + if (!value) return; + const events = []; + value.forEach(event => { + events.push({ + name: 'Has delivery', + dated: event.delivered, + style: {backgroundColor: '#a3d131'} + }); + }); + + this.events = events; + } + + onSelection(values, calendar) { + let totalEvents = 0; + values.forEach(day => { + const exists = calendar.events.findIndex(event => { + return event.dated >= day.dated && event.dated <= day.dated + && event.isRemovable; + }); + + if (exists > -1) totalEvents++; + }); + + if (totalEvents > (values.length / 2)) + this.removeEvents(calendar, values); + else + this.insertEvents(calendar, values); + } + + insertEvents(calendar, days) { + days.forEach(day => { + const event = calendar.events.find(event => { + return event.dated >= day.dated && event.dated <= day.dated; + }); + + if (event) return false; + + this.$scope.model.insert({ + zoneFk: this.zone.id, + delivered: day.dated, + price: this.zone.price, + bonus: this.zone.bonus + }); + + calendar.addEvent({ + name: 'Has delivery', + dated: day.dated, + style: {backgroundColor: '#a3d131'} + }); + }); + + this.$scope.model.save().then(() => { + this.events = calendar.events; + }); + } + + removeEvents(calendar, days) { + let dates = []; + days.forEach(day => { + const event = calendar.events.find(event => { + return event.dated >= day.dated && event.dated <= day.dated; + }); + + if (event && !event.isRemovable) + return false; + + dates.push(day.dated); + + calendar.removeEvent(day.dated); + }); + + if (dates.length == 0) return; + const params = {zoneFk: this.zone.id, dates}; + this.$http.post('/agency/api/zoneCalendars/removeByDate', params).then(() => { + this.events = calendar.events; + }); + } + + onMoveNext(calendar) { + calendar.moveNext(2); + } + + onMovePrevious(calendar) { + calendar.movePrevious(2); + } +} + +Controller.$inject = ['$element', '$scope', '$stateParams', '$http']; + +ngModule.component('vnZoneLocationCalendar', { + template: require('./calendar.html'), + controller: Controller, + bindings: { + zone: '<' + } +}); diff --git a/modules/agency/front/location/index.html b/modules/agency/front/location/index.html index 42662ef2b..fb9bf863c 100644 --- a/modules/agency/front/location/index.html +++ b/modules/agency/front/location/index.html @@ -18,6 +18,6 @@ - +
\ No newline at end of file diff --git a/modules/agency/front/routes.json b/modules/agency/front/routes.json index fe4e74707..9f0930b77 100644 --- a/modules/agency/front/routes.json +++ b/modules/agency/front/routes.json @@ -6,7 +6,8 @@ "dependencies": ["worker"], "menu": [ {"state": "zone.card.basicData", "icon": "settings"}, - {"state": "zone.card.location", "icon": "my_location"} + {"state": "zone.card.location", "icon": "my_location"}, + {"state": "zone.card.calendar", "icon": "icon-deliveryprices"} ], "routes": [ { @@ -15,27 +16,31 @@ "abstract": true, "component": "ui-view", "description": "Zones" - }, { + }, + { "url": "/index?q", "state": "zone.index", "component": "vn-zone-index", "description": "Zones" - }, { + }, + { "url": "/create", "state": "zone.create", "component": "vn-zone-create", "description": "New zone" - }, { + }, + { "url": "/:id", "state": "zone.card", "component": "vn-zone-card", "abstract": true, "description": "Detail" - }, { - "url": "/location?q", - "state": "zone.card.location", - "component": "vn-zone-location", - "description": "Locations", + }, + { + "url": "/summary", + "state": "zone.card.summary", + "component": "vn-zone-summary", + "description": "Summary", "params": { "zone": "$ctrl.zone" } @@ -50,10 +55,19 @@ } }, { - "url": "/summary", - "state": "zone.card.summary", - "component": "vn-zone-summary", - "description": "Summary", + "url": "/location?q", + "state": "zone.card.location", + "component": "vn-zone-location", + "description": "Locations", + "params": { + "zone": "$ctrl.zone" + } + }, + { + "url": "/calendar", + "state": "zone.card.calendar", + "component": "vn-zone-calendar", + "description": "Prices", "params": { "zone": "$ctrl.zone" } diff --git a/modules/claim/back/methods/claim-beginning/importToNewRefundTicket.spec.js b/modules/claim/back/methods/claim-beginning/importToNewRefundTicket.spec.js index b7f961b13..15d5be4dc 100644 --- a/modules/claim/back/methods/claim-beginning/importToNewRefundTicket.spec.js +++ b/modules/claim/back/methods/claim-beginning/importToNewRefundTicket.spec.js @@ -28,13 +28,11 @@ describe('claimBeginning', () => { let refundTicketState = await app.models.TicketState.findById(ticket.id); salesInsertedInClaimEnd = await app.models.ClaimEnd.find({where: {claimFk: claimId}}); - expect(refundTicketSales.length).toEqual(2); + expect(refundTicketSales.length).toEqual(1); expect(refundTicketSales[0].quantity).toEqual(-5); - expect(refundTicketSales[1].quantity).toEqual(-4); expect(refundTicketObservations[0].description).toEqual('Reclama ticket: 11'); expect(refundTicketState.stateFk).toEqual(16); expect(salesInsertedInClaimEnd[0].saleFk).toEqual(refundTicketSales[0].id); - expect(salesInsertedInClaimEnd[1].saleFk).toEqual(refundTicketSales[1].id); }); }); }); diff --git a/modules/claim/front/action/index.html b/modules/claim/front/action/index.html index 4d0de4d1d..acee9b3e6 100644 --- a/modules/claim/front/action/index.html +++ b/modules/claim/front/action/index.html @@ -18,7 +18,7 @@ - {{$ctrl.resolvedStateText}} + disabled="$ctrl.claim.claimStateFk == $ctrl.resolvedState" + vn-http-click="$ctrl.regularize()"> + + diff --git a/modules/client/front/address/create/index.js b/modules/client/front/address/create/index.js index 72a96d64a..bcccc0730 100644 --- a/modules/client/front/address/create/index.js +++ b/modules/client/front/address/create/index.js @@ -14,18 +14,28 @@ export default class Controller { this.address = this.data.address; } - setLocation() { - const location = this.$.postcode.selection; - if (!location || !location.town) return; - const town = location.town; + get postcodeSelection() { + return this._postcodeSelection; + } + + set postcodeSelection(selection) { + this._postcodeSelection = selection; + + if (!selection) return; + + const town = selection.town; const province = town.province; const country = province.country; - this.address.city = location.town.name; + this.address.city = town.name; this.address.provinceFk = province.id; this.address.countryFk = country.id; } + onResponse(response) { + this.address.postalCode = response.code; + } + onSubmit() { this.$.watcher.submit().then(res => { if (res.data && this.data.isDefaultAddress) diff --git a/modules/client/front/address/create/index.spec.js b/modules/client/front/address/create/index.spec.js index 5f447f0aa..45b009de7 100644 --- a/modules/client/front/address/create/index.spec.js +++ b/modules/client/front/address/create/index.spec.js @@ -49,5 +49,30 @@ describe('Client', () => { expect(controller.$state.go).toHaveBeenCalledWith('client.card.address.index'); }); }); + + describe('postcodeSelection() setter', () => { + it(`should set the town, province and contry properties`, () => { + controller.postcodeSelection = { + townFk: 1, + code: 46001, + town: { + id: 1, + name: 'New York', + province: { + id: 1, + name: 'New york', + country: { + id: 2, + name: 'USA' + } + } + } + }; + + expect(controller.address.city).toEqual('New York'); + expect(controller.address.provinceFk).toEqual(1); + expect(controller.address.countryFk).toEqual(2); + }); + }); }); }); diff --git a/modules/client/front/address/edit/index.html b/modules/client/front/address/edit/index.html index a19a6fa93..b7361b71b 100644 --- a/modules/client/front/address/edit/index.html +++ b/modules/client/front/address/edit/index.html @@ -40,7 +40,7 @@ - + + + + - - + + + + + diff --git a/modules/client/front/address/edit/index.js b/modules/client/front/address/edit/index.js index ba5ac75c5..14c5880bc 100644 --- a/modules/client/front/address/edit/index.js +++ b/modules/client/front/address/edit/index.js @@ -20,18 +20,28 @@ export default class Controller { this.$state.go('client.card.address.index'); } - setLocation() { - const location = this.$.postcode.selection; - if (!location || !location.town) return; - const town = location.town; + get postcodeSelection() { + return this._postcodeSelection; + } + + set postcodeSelection(selection) { + this._postcodeSelection = selection; + + if (!selection) return; + + const town = selection.town; const province = town.province; const country = province.country; - this.address.city = location.town.name; + this.address.city = town.name; this.address.provinceFk = province.id; this.address.countryFk = country.id; } + onResponse(response) { + this.address.postalCode = response.code; + } + onSubmit() { this.$.watcher.check(); this.$.watcher.realSubmit() diff --git a/modules/client/front/address/edit/index.spec.js b/modules/client/front/address/edit/index.spec.js index aa1f59669..ea0da9559 100644 --- a/modules/client/front/address/edit/index.spec.js +++ b/modules/client/front/address/edit/index.spec.js @@ -55,5 +55,31 @@ describe('Client', () => { expect(controller.$state.go).toHaveBeenCalledWith('client.card.address.index'); }); }); + + describe('postcodeSelection() setter', () => { + it(`should set the town, province and contry properties`, () => { + controller.address = {}; + controller.postcodeSelection = { + townFk: 1, + code: 46001, + town: { + id: 1, + name: 'New York', + province: { + id: 1, + name: 'New york', + country: { + id: 2, + name: 'USA' + } + } + } + }; + + expect(controller.address.city).toEqual('New York'); + expect(controller.address.provinceFk).toEqual(1); + expect(controller.address.countryFk).toEqual(2); + }); + }); }); }); diff --git a/modules/client/front/address/index/index.html b/modules/client/front/address/index/index.html index d8971cd35..8696e321f 100644 --- a/modules/client/front/address/index/index.html +++ b/modules/client/front/address/index/index.html @@ -1,7 +1,7 @@ @@ -67,7 +67,7 @@ - + + diff --git a/modules/client/front/address/index/index.js b/modules/client/front/address/index/index.js index eeabaf5d8..3bc77ec62 100644 --- a/modules/client/front/address/index/index.js +++ b/modules/client/front/address/index/index.js @@ -5,30 +5,6 @@ class Controller { this.$http = $http; this.$scope = $scope; this.$stateParams = $stateParams; - this.filter = { - include: { - observations: 'observationType' - }, - order: ['isActive DESC', 'nickname ASC'] - }; - } - - get client() { - return this._client; - } - - set client(value) { - this._client = value; - this.sortAddresses(); - } - - get addresses() { - return this._addresses; - } - - set addresses(value) { - this._addresses = value; - this.sortAddresses(); } setDefault(address) { @@ -43,8 +19,8 @@ class Controller { } isDefaultAddress(address) { - if (!this.client) return; - return this.client.defaultAddressFk === address.id; + if (this.client) + return this.client.defaultAddressFk === address.id; } /** @@ -52,7 +28,7 @@ class Controller { */ sortAddresses() { if (!this.client || !this.addresses) return; - this.$scope.model.data = this.addresses.sort((a, b) => { + this.addresses = this.addresses.sort((a, b) => { return this.isDefaultAddress(b) - this.isDefaultAddress(a); }); } diff --git a/modules/client/front/balance/create/index.html b/modules/client/front/balance/create/index.html index 69a638044..4cf769d4f 100644 --- a/modules/client/front/balance/create/index.html +++ b/modules/client/front/balance/create/index.html @@ -22,12 +22,13 @@ - - + diff --git a/modules/client/front/basic-data/index.html b/modules/client/front/basic-data/index.html index f31ab8138..6fb455a76 100644 --- a/modules/client/front/basic-data/index.html +++ b/modules/client/front/basic-data/index.html @@ -5,63 +5,65 @@ form="form" save="patch"> -
- - - - - - - - - - - - - - - - - - - - - - - - - - - + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/modules/client/front/create/index.html b/modules/client/front/create/index.html index 605b15825..5df43ef4c 100644 --- a/modules/client/front/create/index.html +++ b/modules/client/front/create/index.html @@ -6,7 +6,7 @@ save="post">
-
+ @@ -33,9 +33,9 @@ - + + -
+ + + + + \ No newline at end of file diff --git a/modules/client/front/create/index.js b/modules/client/front/create/index.js index ec9c2817c..241de110f 100644 --- a/modules/client/front/create/index.js +++ b/modules/client/front/create/index.js @@ -1,34 +1,46 @@ import ngModule from '../module'; export default class Controller { - constructor($scope, $state, $http) { + constructor($scope, $state, $http, $translate, vnApp) { this.$ = $scope; this.$state = $state; this.$http = $http; + this.$translate = $translate; + this.vnApp = vnApp; this.client = { active: true }; } - setLocation() { - const location = this.$.postcode.selection; - if (!location || !location.town) return; - const town = location.town; + get postcodeSelection() { + return this._postcodeSelection; + } + + set postcodeSelection(selection) { + this._postcodeSelection = selection; + + if (!selection) return; + + const town = selection.town; const province = town.province; const country = province.country; - this.client.city = location.town.name; + this.client.city = town.name; this.client.provinceFk = province.id; this.client.countryFk = country.id; } + onResponse(response) { + this.client.postcode = response.code; + } + onSubmit() { - this.$.watcher.submit().then( + return this.$.watcher.submit().then( json => this.$state.go('client.card.basicData', {id: json.data.id}) ); } } -Controller.$inject = ['$scope', '$state', '$http']; +Controller.$inject = ['$scope', '$state', '$http', '$translate', 'vnApp']; ngModule.component('vnClientCreate', { template: require('./index.html'), diff --git a/modules/client/front/create/index.spec.js b/modules/client/front/create/index.spec.js index fb8aa227e..b59dffe44 100644 --- a/modules/client/front/create/index.spec.js +++ b/modules/client/front/create/index.spec.js @@ -39,5 +39,30 @@ describe('Client', () => { expect(controller.$state.go).toHaveBeenCalledWith('client.card.basicData', {id: '1234'}); }); }); + + describe('postcodeSelection() setter', () => { + it(`should set the town, province and contry properties`, () => { + controller.postcodeSelection = { + townFk: 1, + code: 46001, + town: { + id: 1, + name: 'New York', + province: { + id: 1, + name: 'New york', + country: { + id: 2, + name: 'USA' + } + } + } + }; + + expect(controller.client.city).toEqual('New York'); + expect(controller.client.provinceFk).toEqual(1); + expect(controller.client.countryFk).toEqual(2); + }); + }); }); }); diff --git a/modules/client/front/dms/index/index.html b/modules/client/front/dms/index/index.html index 40f01c4e0..2cf6cdd4f 100644 --- a/modules/client/front/dms/index/index.html +++ b/modules/client/front/dms/index/index.html @@ -58,7 +58,8 @@ + href="api/dms/{{::document.dmsFk}}/downloadFile?access_token={{::$ctrl.accessToken}}" + ng-show="document.hasFile"> diff --git a/modules/client/front/index.js b/modules/client/front/index.js index f7e4368db..04439b9ab 100644 --- a/modules/client/front/index.js +++ b/modules/client/front/index.js @@ -35,5 +35,6 @@ import './sample/create'; import './web-payment'; import './log'; import './sms'; +import './postcode'; import './dms/index'; import './dms/create'; diff --git a/modules/client/front/postcode/index.html b/modules/client/front/postcode/index.html new file mode 100644 index 000000000..5ff80440e --- /dev/null +++ b/modules/client/front/postcode/index.html @@ -0,0 +1,47 @@ + + +
New postcode
+

Please, ensure you put the correct data!

+ + + + + + + + + + + + +
+ + + + +
\ No newline at end of file diff --git a/modules/client/front/postcode/index.js b/modules/client/front/postcode/index.js new file mode 100644 index 000000000..08a419dab --- /dev/null +++ b/modules/client/front/postcode/index.js @@ -0,0 +1,70 @@ +import ngModule from '../module'; +import Component from 'core/lib/component'; +import './style.scss'; + +class Controller extends Component { + constructor($element, $scope, $http, $translate, vnApp) { + super($element, $scope); + this.$ = $scope; + this.$http = $http; + this.$translate = $translate; + this.vnApp = vnApp; + } + + get townSelection() { + return this._townSelection; + } + + set townSelection(selection) { + this._townSelection = selection; + + if (!selection) return; + + const province = selection.province; + const country = province.country; + + this.data.provinceFk = province.id; + this.data.countryFk = country.id; + } + + open() { + this.$.postcodeDialog.show(); + } + + onOpen() { + this.$.postcode.focus(); + } + + onResponse(response) { + if (response == 'ACCEPT') { + try { + if (!this.data.code) + throw new Error(`The postcode can't be empty`); + if (!this.data.townFk) + throw new Error(`The town can't be empty`); + + this.$http.patch(`/api/postcodes`, this.data).then(response => { + if (response.data) { + this.vnApp.showMessage(this.$translate.instant('The postcode has been saved')); + + this.emit('response', {response: response.data}); + } + }); + } catch (e) { + this.vnApp.showError(this.$translate.instant(e.message)); + return false; + } + } + return true; + } +} + +Controller.$inject = ['$element', '$scope', '$http', '$translate', 'vnApp']; + +ngModule.component('vnClientPostcode', { + template: require('./index.html'), + controller: Controller, + bindings: { + data: '<', + } +}); diff --git a/modules/client/front/postcode/index.spec.js b/modules/client/front/postcode/index.spec.js new file mode 100644 index 000000000..ce5cd5f2e --- /dev/null +++ b/modules/client/front/postcode/index.spec.js @@ -0,0 +1,34 @@ +import './index'; + +describe('Client', () => { + describe('Component vnClientPostcode', () => { + let controller; + let $httpBackend; + let $element; + + beforeEach(ngModule('client')); + + beforeEach(angular.mock.inject(($componentController, _$httpBackend_) => { + $httpBackend = _$httpBackend_; + $element = angular.element(''); + controller = $componentController('vnClientPostcode', {$element}); + controller.client = {id: 101}; + })); + + describe('onResponse()', () => { + it('should perform a POST query and show a success snackbar', () => { + let params = {townFk: 1, provinceFk: 1, countryFk: 1, code: '46460'}; + controller.data = {townFk: 1, provinceFk: 1, countryFk: 1, code: '46460'}; + + spyOn(controller.vnApp, 'showMessage'); + $httpBackend.when('PATCH', `/api/postcodes`, params).respond(200, params); + $httpBackend.expect('PATCH', `/api/postcodes`, params).respond(params); + + controller.onResponse('ACCEPT'); + $httpBackend.flush(); + + expect(controller.vnApp.showMessage).toHaveBeenCalledWith('The postcode has been saved'); + }); + }); + }); +}); diff --git a/modules/client/front/postcode/locale/es.yml b/modules/client/front/postcode/locale/es.yml new file mode 100644 index 000000000..ab8b0fc21 --- /dev/null +++ b/modules/client/front/postcode/locale/es.yml @@ -0,0 +1,5 @@ +New postcode: Nuevo código postal +Please, ensure you put the correct data!: ¡Por favor, asegúrate de poner los datos correctos! +The postcode can't be empty: El código postal no puede quedar vacío +The town can't be empty: La población no puede quedar vacía +The postcode has been saved: El código postal ha sido guardado \ No newline at end of file diff --git a/modules/client/front/postcode/style.scss b/modules/client/front/postcode/style.scss new file mode 100644 index 000000000..b9ef984b7 --- /dev/null +++ b/modules/client/front/postcode/style.scss @@ -0,0 +1,9 @@ +@import "variables"; + +vn-client-postcode { + vn-dialog { + p { + color: $color-alert + } + } +} \ No newline at end of file diff --git a/modules/client/front/summary/index.html b/modules/client/front/summary/index.html index 37bee2814..69a08332e 100644 --- a/modules/client/front/summary/index.html +++ b/modules/client/front/summary/index.html @@ -155,13 +155,13 @@ value="{{$ctrl.summary.mana.mana | currency: 'EUR':2}}"> + value="{{$ctrl.claimRate($ctrl.summary.claimsRatio.priceIncreasing) | percentage}}"> + value="{{$ctrl.claimingRate($ctrl.summary.claimsRatio.claimingRate) | percentage}}"> diff --git a/modules/client/front/summary/index.js b/modules/client/front/summary/index.js index 79f268835..a35f330f1 100644 --- a/modules/client/front/summary/index.js +++ b/modules/client/front/summary/index.js @@ -29,6 +29,16 @@ class Controller { }); return total; } + + claimRate(priceIncreasing) { + if (priceIncreasing) + return priceIncreasing * 100; + } + + claimingRate(rate) { + if (rate) + return rate * 100; + } } Controller.$inject = ['$http']; diff --git a/modules/client/front/web-access/index.js b/modules/client/front/web-access/index.js index 5e7510853..6282db5fb 100644 --- a/modules/client/front/web-access/index.js +++ b/modules/client/front/web-access/index.js @@ -44,16 +44,19 @@ export default class Controller { if (response == 'ACCEPT') { try { if (!this.newPassword) - throw new Error(`Passwords can't be empty`); + throw new Error(`You must enter a new password`); if (this.newPassword != this.repeatPassword) throw new Error(`Passwords don't match`); let account = { password: this.newPassword }; - this.$http.patch(`/client/api/Accounts/${this.client.id}`, account); + this.$http.patch(`/client/api/Accounts/${this.client.id}`, account).then(res => { + this.vnApp.showSuccess(this.$translate.instant('Data saved!')); + }); } catch (e) { this.vnApp.showError(this.$translate.instant(e.message)); + return false; } } diff --git a/modules/client/front/web-access/index.spec.js b/modules/client/front/web-access/index.spec.js index c9e33e51e..caaf5c7ff 100644 --- a/modules/client/front/web-access/index.spec.js +++ b/modules/client/front/web-access/index.spec.js @@ -80,13 +80,13 @@ describe('Component VnClientWebAccess', () => { }); describe(`when password is empty`, () => { - it(`should throw Passwords can't be empty error`, () => { + it(`should throw 'You must enter a new password' error`, () => { controller.client = {id: '1234'}; controller.newPassword = ''; controller.canChangePassword = true; controller.onPassChange('ACCEPT'); - expect(vnApp.showError).toHaveBeenCalledWith(`Passwords can't be empty`); + expect(vnApp.showError).toHaveBeenCalledWith(`You must enter a new password`); }); }); diff --git a/modules/client/front/web-access/locale/es.yml b/modules/client/front/web-access/locale/es.yml index 2d1905c16..4a3ac0ab4 100644 --- a/modules/client/front/web-access/locale/es.yml +++ b/modules/client/front/web-access/locale/es.yml @@ -2,4 +2,6 @@ User: Usuario Enable web access: Habilitar acceso web New password: Nueva contraseña Repeat password: Repetir contraseña -Change password: Cambiar contraseña \ No newline at end of file +Change password: Cambiar contraseña +Passwords don't match: Las contraseñas no coinciden +You must enter a new password: Debes introducir una nueva contraseña \ No newline at end of file diff --git a/modules/invoiceOut/back/methods/invoiceOut/book.js b/modules/invoiceOut/back/methods/invoiceOut/book.js index 745e8e3c5..a3a909f2a 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/book.js +++ b/modules/invoiceOut/back/methods/invoiceOut/book.js @@ -21,6 +21,10 @@ module.exports = Self => { }); Self.book = async ref => { - return Self.rawSql(`CALL vn.invoiceOutAgain(?)`, [ref]); + let ticketAddress = await Self.app.models.Ticket.findOne({where: {invoiceOut: ref}}); + let invoiceCompany = await Self.app.models.InvoiceOut.findOne({where: {ref: ref}}); + let [taxArea] = await Self.rawSql(`Select vn.addressTaxArea(?, ?) AS code`, [ticketAddress.address, invoiceCompany.company]); + + return Self.rawSql(`CALL vn.invoiceOutAgain(?, ?)`, [ref, taxArea.code]); }; }; diff --git a/modules/invoiceOut/back/methods/invoiceOut/specs/book.spec.js b/modules/invoiceOut/back/methods/invoiceOut/specs/book.spec.js index 383e952b6..345e29125 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/specs/book.spec.js +++ b/modules/invoiceOut/back/methods/invoiceOut/specs/book.spec.js @@ -1,10 +1,12 @@ const app = require('vn-loopback/server/server'); describe('invoiceOut book()', () => { - const invoiceOutId = 5; + const invoiceOutId = 1; let invoiceOutRef; let OriginalInvoiceOut; let updatedInvoiceOut; + let bookedDate; + afterAll(async done => { updatedInvoiceOut.updateAttributes({booked: OriginalInvoiceOut.booked, hasPdf: OriginalInvoiceOut.hasPdf}); @@ -14,7 +16,9 @@ describe('invoiceOut book()', () => { it('should check that invoice out booked is untainted', async() => { const invoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); - expect(invoiceOut.booked).toBeNull(); + bookedDate = invoiceOut.booked; + + expect(invoiceOut.booked).toBeDefined(); expect(invoiceOut.hasPdf).toBeTruthy(); }); @@ -26,7 +30,7 @@ describe('invoiceOut book()', () => { updatedInvoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); - expect(updatedInvoiceOut.booked).toEqual(jasmine.any(Object)); + expect(updatedInvoiceOut.booked).not.toEqual(bookedDate); expect(updatedInvoiceOut.hasPdf).toBeFalsy(); }); }); diff --git a/modules/invoiceOut/back/methods/invoiceOut/specs/delete.spec.js b/modules/invoiceOut/back/methods/invoiceOut/specs/delete.spec.js index 1fba84cbd..0d272a81d 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/specs/delete.spec.js +++ b/modules/invoiceOut/back/methods/invoiceOut/specs/delete.spec.js @@ -2,37 +2,35 @@ const app = require('vn-loopback/server/server'); describe('invoiceOut delete()', () => { const invoiceOutId = 2; - let OriginalInvoiceOut; - let OriginalTickets; + let originalInvoiceOut; + let originalTicket; + afterAll(async done => { - const newInvoiceOut = await app.models.InvoiceOut.create(OriginalInvoiceOut); - await newInvoiceOut.updateAttribute('ref', OriginalInvoiceOut.ref); + const newInvoiceOut = await app.models.InvoiceOut.create(originalInvoiceOut); + await newInvoiceOut.updateAttribute('ref', originalInvoiceOut.ref); const promises = []; - OriginalTickets.forEach(ticket => { - promises.push(ticket.updateAttribute('refFk', newInvoiceOut.ref)); - }); + promises.push(originalTicket.updateAttribute('refFk', newInvoiceOut.ref)); Promise.all(promises); done(); }); - it('should check that there is two tickets from the invoice id 2', async() => { + it('should check that there is one ticket in the target invoiceOut', async() => { const invoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); const tickets = await app.models.Ticket.find({where: {refFk: invoiceOut.ref}}); - expect(tickets.length).toEqual(2); - expect(tickets[0].id).toEqual(2); + expect(tickets.length).toEqual(1); + expect(tickets[0].id).toEqual(3); }); - it(`should check the two tickets from the invoice id 2 that are not invoiced`, async() => { - OriginalInvoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); + it(`should delete the target invoiceOut then check the ticket doesn't have a refFk anymore`, async() => { + originalInvoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); await app.models.InvoiceOut.delete(invoiceOutId); - OriginalTickets = await app.models.Ticket.find({where: {id: {inq: [2, 3]}}}); - const invoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); + originalTicket = await app.models.Ticket.findById(3); + const deletedInvoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); - expect(OriginalTickets[0].refFk).toBeNull(); - expect(OriginalTickets[1].refFk).toBeNull(); - expect(invoiceOut).toBeNull(); + expect(deletedInvoiceOut).toBeNull(); + expect(originalTicket.refFk).toBeNull(); }); }); diff --git a/modules/invoiceOut/back/methods/invoiceOut/specs/filter.spec.js b/modules/invoiceOut/back/methods/invoiceOut/specs/filter.spec.js index b959a0829..09f67eced 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/specs/filter.spec.js +++ b/modules/invoiceOut/back/methods/invoiceOut/specs/filter.spec.js @@ -45,7 +45,7 @@ describe('InvoiceOut filter()', () => { it('should return the invoice out matching amount', async() => { let ctx = { args: { - amount: 208.35, + amount: 121.36, } }; @@ -58,14 +58,14 @@ describe('InvoiceOut filter()', () => { it('should return the invoice out matching min and max', async() => { let ctx = { args: { - min: 20.10, - max: 200, + min: 0, + max: 100, } }; let result = await app.models.InvoiceOut.filter(ctx); - expect(result.length).toEqual(2); + expect(result.length).toEqual(3); }); // #1428 cuadrar formato de horas diff --git a/modules/invoiceOut/back/methods/invoiceOut/specs/summary.spec.js b/modules/invoiceOut/back/methods/invoiceOut/specs/summary.spec.js index c1b90c7a7..1b1b84d15 100644 --- a/modules/invoiceOut/back/methods/invoiceOut/specs/summary.spec.js +++ b/modules/invoiceOut/back/methods/invoiceOut/specs/summary.spec.js @@ -8,26 +8,26 @@ describe('invoiceOut summary()', () => { }); it(`should return a summary object containing data from it's tickets`, async() => { - const result = await app.models.InvoiceOut.summary(1); - const tickets = result.invoiceOut.tickets(); + const summary = await app.models.InvoiceOut.summary(1); + const tickets = summary.invoiceOut.tickets(); - expect(result.invoiceOut.ref).toEqual('T1111111'); - expect(tickets.length).toEqual(1); + expect(summary.invoiceOut.ref).toEqual('T1111111'); + expect(tickets.length).toEqual(2); }); it(`should return a summary object containing it's supplier country`, async() => { - const result = await app.models.InvoiceOut.summary(1); - const supplier = result.invoiceOut.supplier(); + const summary = await app.models.InvoiceOut.summary(1); + const supplier = summary.invoiceOut.supplier(); - expect(result.invoiceOut.ref).toEqual('T1111111'); + expect(summary.invoiceOut.ref).toEqual('T1111111'); expect(supplier.id).toEqual(442); expect(supplier.countryFk).toEqual(1); }); it(`should return a summary object containing idata from it's tax types`, async() => { - const result = await app.models.InvoiceOut.summary(1); + const summary = await app.models.InvoiceOut.summary(1); - expect(result.invoiceOut.ref).toEqual('T1111111'); - expect(result.invoiceOut.taxesBreakdown.length).toEqual(2); + expect(summary.invoiceOut.ref).toEqual('T1111111'); + expect(summary.invoiceOut.taxesBreakdown.length).toEqual(2); }); }); diff --git a/modules/item/back/methods/item/clone.js b/modules/item/back/methods/item/clone.js index c4e15aa01..f543164fc 100644 --- a/modules/item/back/methods/item/clone.js +++ b/modules/item/back/methods/item/clone.js @@ -65,14 +65,19 @@ module.exports = Self => { fields: ['botanical', 'countryFk', 'taxClassFk'] }, options); + const promises = []; for (tax of originalTaxes) { tax.itemFk = newId; - await models.ItemTaxCountry.upsertWithWhere({ + const newTax = models.ItemTaxCountry.upsertWithWhere({ itemFk: newId, countryFk: tax.countryFk, }, tax, options); + + promises.push(newTax); } + + await Promise.all(promises); } /** @@ -110,10 +115,14 @@ module.exports = Self => { fields: ['tagFk', 'value', 'priority'] }, options); + const promises = []; for (tag of originalTags) { tag.itemFk = newId; + const newItemTag = models.ItemTag.create(tag, options); - await models.ItemTag.create(tag, options); + promises.push(newItemTag); } + + await Promise.all(promises); } }; diff --git a/modules/item/back/methods/item/specs/getDiary.spec.js b/modules/item/back/methods/item/specs/getDiary.spec.js index dc678fb09..d47ac1d7d 100644 --- a/modules/item/back/methods/item/specs/getDiary.spec.js +++ b/modules/item/back/methods/item/specs/getDiary.spec.js @@ -1,11 +1,14 @@ const app = require('vn-loopback/server/server'); describe('item getDiary()', () => { - it('should return 3 entries, the first one with the property balance -100', async() => { + it('should check the property balance of the 4 resultant entries', async() => { let params = {where: {itemFk: 1, warehouseFk: 2}}; let result = await app.models.Item.getDiary(params); expect(result.length).toBe(4); expect(result[0].balance).toBe(-100); + expect(result[1].balance).toBe(-110); + expect(result[2].balance).toBe(-110); + expect(result[3].balance).toBe(-210); }); }); diff --git a/modules/item/back/methods/item/specs/getLastEntries.spec.js b/modules/item/back/methods/item/specs/getLastEntries.spec.js index 5147dd126..5c996d8e3 100644 --- a/modules/item/back/methods/item/specs/getLastEntries.spec.js +++ b/modules/item/back/methods/item/specs/getLastEntries.spec.js @@ -9,7 +9,7 @@ describe('item getLastEntries()', () => { expect(result.length).toEqual(1); }); - it('should return three entries for a given item', async() => { + it('should return five entries for a given item', async() => { let date = new Date(); date.setMonth(date.getMonth() - 2, 1); @@ -17,6 +17,6 @@ describe('item getLastEntries()', () => { let filter = {where: {itemFk: 1, date: date}}; let result = await app.models.Item.getLastEntries(filter); - expect(result.length).toEqual(3); + expect(result.length).toEqual(5); }); }); diff --git a/modules/item/front/fetched-tags/index.html b/modules/item/front/fetched-tags/index.html index c613a042d..6982ab6ac 100644 --- a/modules/item/front/fetched-tags/index.html +++ b/modules/item/front/fetched-tags/index.html @@ -1,7 +1,7 @@ - {{::$ctrl.item.name}} + {{$ctrl.name}} -

{{::$ctrl.subName}}

+

{{$ctrl.subName}}

diff --git a/modules/order/back/methods/order-row/specs/addToOrder.spec.js b/modules/order/back/methods/order-row/specs/addToOrder.spec.js index c38cb2a8c..3b832dee2 100644 --- a/modules/order/back/methods/order-row/specs/addToOrder.spec.js +++ b/modules/order/back/methods/order-row/specs/addToOrder.spec.js @@ -1,20 +1,21 @@ const app = require('vn-loopback/server/server'); describe('order addToOrder()', () => { + const orderId = 8; let rowToDelete; afterAll(async done => { - await app.models.OrderRow.removes({rows: [rowToDelete], actualOrderId: 20}); + await app.models.OrderRow.removes({rows: [rowToDelete], actualOrderId: orderId}); done(); }); it('should add a row to a given order', async() => { - let unmodifiedRows = await app.models.OrderRow.find({where: {orderFk: 20}}); + let unmodifiedRows = await app.models.OrderRow.find({where: {orderFk: orderId}}); - expect(unmodifiedRows.length).toBe(1); + expect(unmodifiedRows.length).toBe(2); let params = { - orderFk: 20, + orderFk: orderId, items: [{ itemFk: 1, quantity: 10, @@ -24,10 +25,10 @@ describe('order addToOrder()', () => { await app.models.OrderRow.addToOrder(params); - let modifiedRows = await app.models.OrderRow.find({where: {orderFk: 20}}); + let modifiedRows = await app.models.OrderRow.find({where: {orderFk: orderId}}); rowToDelete = modifiedRows[modifiedRows.length - 1].id; - expect(modifiedRows.length).toBe(2); + expect(modifiedRows.length).toBe(3); }); }); diff --git a/modules/order/back/methods/order/filter.js b/modules/order/back/methods/order/filter.js index 4a4fd2c85..5dffef195 100644 --- a/modules/order/back/methods/order/filter.js +++ b/modules/order/back/methods/order/filter.js @@ -47,6 +47,10 @@ module.exports = Self => { arg: 'workerFk', type: 'Integer', description: `The salesperson id` + }, { + arg: 'myTeam', + type: 'Boolean', + description: `Whether to show only tickets for the current logged user team (For now it shows only the current user tickets)` }, { arg: 'isConfirmed', type: 'Boolean', @@ -65,7 +69,30 @@ module.exports = Self => { Self.filter = async(ctx, filter) => { let conn = Self.dataSource.connector; + let worker = await Self.app.models.Worker.findOne({ + where: {userFk: ctx.req.accessToken.userId}, + include: [ + {relation: 'collegues'} + ] + }); + let teamIds = []; + if (worker.collegues().length && ctx.args.myTeam) { + worker.collegues().forEach(collegue => { + teamIds.push(collegue.collegueFk); + }); + } + + if (worker.collegues().length === 0 && ctx.args.myTeam) { + worker = await Self.app.models.Worker.findOne({ + fields: ['id'], + where: {userFk: ctx.req.accessToken.userId} + }); + teamIds = [worker && worker.id]; + } + + if (ctx.args && ctx.args.myTeam) + ctx.args.teamIds = teamIds; let where = buildFilter(ctx.args, (param, value) => { switch (param) { case 'search': @@ -86,6 +113,8 @@ module.exports = Self => { return {'ort.ticketFk': value}; case 'isConfirmed': return {'o.confirmed': value ? 1 : 0}; + case 'myTeam': + return {'c.salesPersonFk': {inq: teamIds}}; case 'id': param = `o.${param}`; return {[param]: value}; diff --git a/modules/order/back/methods/order/new.js b/modules/order/back/methods/order/new.js index 0d020ccd6..4f1f2c3aa 100644 --- a/modules/order/back/methods/order/new.js +++ b/modules/order/back/methods/order/new.js @@ -48,9 +48,6 @@ module.exports = Self => { }); if (address.client().type().code === 'normal') { - if (address.client().isFreezed) - throw new UserError(`You can't create an order for a frozen client`); - if (!address.client().isActive) throw new UserError(`You can't create an order for a inactive client`); } diff --git a/modules/order/back/methods/order/specs/catalogFilter.spec.js b/modules/order/back/methods/order/specs/catalogFilter.spec.js index e800e14ff..ac779493e 100644 --- a/modules/order/back/methods/order/specs/catalogFilter.spec.js +++ b/modules/order/back/methods/order/specs/catalogFilter.spec.js @@ -8,7 +8,7 @@ describe('order catalogFilter()', () => { } }; let tags = []; - let orderFk = 20; + let orderFk = 11; let orderBy = {field: 'relevancy DESC, name', way: 'DESC'}; let result = await app.models.Order.catalogFilter(orderFk, orderBy, filter, tags); let firstItemId = result[0].id; @@ -26,7 +26,7 @@ describe('order catalogFilter()', () => { }; let tags = [{tagFk: 56, value: 'Melee Reinforced weapon'}]; - let orderFk = 20; + let orderFk = 11; let orderBy = {field: 'relevancy DESC, name', way: 'DESC'}; let result = await app.models.Order.catalogFilter(orderFk, orderBy, filter, tags); diff --git a/modules/order/back/methods/order/specs/filter.spec.js b/modules/order/back/methods/order/specs/filter.spec.js index a64ecb17f..fc987613a 100644 --- a/modules/order/back/methods/order/specs/filter.spec.js +++ b/modules/order/back/methods/order/specs/filter.spec.js @@ -1,9 +1,13 @@ const app = require('vn-loopback/server/server'); describe('order filter()', () => { - it('should call the filter method with a basic search', async() => { - let ctx = {params: {}}; + let ctx = { + req: {accessToken: {userId: 9}}, + args: {}, + params: {} + }; + it('should call the filter method with a basic search', async() => { let filter = {where: {'o.id': 2}}; let result = await app.models.Order.filter(ctx, filter); let orderId = result[0].id; @@ -12,21 +16,17 @@ describe('order filter()', () => { }); it('should call the filter method with a single advanced search', async() => { - let ctx = {params: {}}; - let filter = {where: {'o.confirmed': false}}; let result = await app.models.Order.filter(ctx, filter); - expect(result.length).toEqual(6); + expect(result.length).toEqual(16); }); it('should call the filter method with a complex advanced search', async() => { - let ctx = {params: {}}; - - let filter = {where: {'o.confirmed': false, 'c.salesPersonFk': 18}}; + let filter = {where: {'o.confirmed': false, 'c.salesPersonFk': 19}}; let result = await app.models.Order.filter(ctx, filter); - expect(result.length).toEqual(1); + expect(result.length).toEqual(7); expect(result[0].id).toEqual(16); }); }); diff --git a/modules/order/back/methods/order/specs/getTotalVolume.spec.js b/modules/order/back/methods/order/specs/getTotalVolume.spec.js index 58916d8a5..04eb8f911 100644 --- a/modules/order/back/methods/order/specs/getTotalVolume.spec.js +++ b/modules/order/back/methods/order/specs/getTotalVolume.spec.js @@ -4,7 +4,7 @@ describe('order getTotalVolume()', () => { it('should return the total', async() => { let result = await app.models.Order.getTotalVolume(1); - expect(result.totalVolume).toEqual(0.066); - expect(result.totalBoxes).toEqual(0.5); + expect(result.totalVolume).toEqual(1.562); + expect(result.totalBoxes).toEqual(11.1); }); }); diff --git a/modules/order/back/methods/order/specs/getVAT.spec.js b/modules/order/back/methods/order/specs/getVAT.spec.js index bc0abd9af..5306535d2 100644 --- a/modules/order/back/methods/order/specs/getVAT.spec.js +++ b/modules/order/back/methods/order/specs/getVAT.spec.js @@ -1,16 +1,9 @@ const app = require('vn-loopback/server/server'); describe('order getVAT()', () => { - it('should call the getVAT method and return the response', async() => { + it('should return the order VAT', async() => { const result = await app.models.Order.getVAT(1); expect(result).toEqual(20.29); }); - - it(`should call the getVAT method and return zero if doesn't have lines`, async() => { - await app.models.Order.getVAT(13) - .then(response => { - expect(response).toEqual(0); - }); - }); }); diff --git a/modules/order/back/methods/order/specs/getVolumes.spec.js b/modules/order/back/methods/order/specs/getVolumes.spec.js index 881d17e93..4113a8e07 100644 --- a/modules/order/back/methods/order/specs/getVolumes.spec.js +++ b/modules/order/back/methods/order/specs/getVolumes.spec.js @@ -4,6 +4,6 @@ describe('order getVolumes()', () => { it('should return the volumes of a given order id', async() => { let [result] = await app.models.Order.getVolumes(1); - expect(result.volume).toEqual(0.04); + expect(result.volume).toEqual(1.09); }); }); diff --git a/modules/order/back/methods/order/specs/new.spec.js b/modules/order/back/methods/order/specs/new.spec.js index 9ed55981c..1cd3e8ce8 100644 --- a/modules/order/back/methods/order/specs/new.spec.js +++ b/modules/order/back/methods/order/specs/new.spec.js @@ -10,21 +10,7 @@ describe('order new()', () => { done(); }); - it('should throw an error if the client is frozen', async() => { - let error; - let landed = new Date(); - let addressFk = 121; - let agencyModeFk = 1; - - await app.models.Order.new(landed, addressFk, agencyModeFk) - .catch(e => { - error = e; - }); - - expect(error).toEqual(new UserError(`You can't create an order for a frozen client`)); - }); - - it('should throw an error if the client isnt frozen and isnt active', async() => { + it('should throw an error if the client isnt active', async() => { let error; let landed = new Date(); let addressFk = 6; @@ -38,9 +24,9 @@ describe('order new()', () => { expect(error).toEqual(new UserError(`You can't create an order for a inactive client`)); }); - it('should create a new order for the user with id 105 when all conditions are met', async() => { + it('should create a new order a user when all conditions are met', async() => { let landed = new Date(); - let addressFk = 125; + let addressFk = 121; let agencyModeFk = 1; orderId = await app.models.Order.new(landed, addressFk, agencyModeFk); diff --git a/modules/order/back/methods/order/specs/updateBasicData.spec.js b/modules/order/back/methods/order/specs/updateBasicData.spec.js index dc9e6b7e6..9b92e69ca 100644 --- a/modules/order/back/methods/order/specs/updateBasicData.spec.js +++ b/modules/order/back/methods/order/specs/updateBasicData.spec.js @@ -1,9 +1,9 @@ const app = require('vn-loopback/server/server'); describe('Order updateBasicData', () => { + const orderId = 21; afterAll(async done => { let validparams = {note: null}; - let orderId = 21; await app.models.Order.updateBasicData(validparams, orderId); @@ -38,11 +38,10 @@ describe('Order updateBasicData', () => { expect(error.toString()).toContain(`You can't make changes on the basic data of an confirmed order or with rows`); }); - it('should return an error if the user is administrative and the isTaxDataChecked value is true BUT the params aint valid', async() => { + it('should return an error if the current user is administrative and the isTaxDataChecked value is true BUT the params aint valid', async() => { let error; let invalidparams = {invalid: 'param for update'}; - let orderId = 21; await app.models.Order.updateBasicData(invalidparams, orderId) .catch(e => { @@ -54,7 +53,6 @@ describe('Order updateBasicData', () => { it('should update the client fiscal data and return the count if changes made', async() => { let validparams = {note: 'test note'}; - let orderId = 21; let order = await app.models.Order.findById(orderId); diff --git a/modules/order/front/catalog/index.html b/modules/order/front/catalog/index.html index 1019aa9dc..550ac5cd9 100644 --- a/modules/order/front/catalog/index.html +++ b/modules/order/front/catalog/index.html @@ -39,7 +39,6 @@ - diff --git a/modules/order/front/filter/index.js b/modules/order/front/filter/index.js index 3a738ee5b..5e54b5cbc 100644 --- a/modules/order/front/filter/index.js +++ b/modules/order/front/filter/index.js @@ -51,6 +51,7 @@ class Controller { } set category(value) { + this.catalog.$scope.model.data = []; this.itemTypes = []; this.type = null; diff --git a/modules/order/front/line/index.html b/modules/order/front/line/index.html index 91c05657b..bdda0739d 100644 --- a/modules/order/front/line/index.html +++ b/modules/order/front/line/index.html @@ -43,6 +43,7 @@ diff --git a/modules/order/front/search-panel/index.html b/modules/order/front/search-panel/index.html index 2a6f33b8c..953524625 100644 --- a/modules/order/front/search-panel/index.html +++ b/modules/order/front/search-panel/index.html @@ -57,8 +57,6 @@ label="Ticket id" model="filter.ticketFk"> - - - + + + + + diff --git a/modules/order/front/volume/index.html b/modules/order/front/volume/index.html index 4772ccd43..e368e9c1b 100644 --- a/modules/order/front/volume/index.html +++ b/modules/order/front/volume/index.html @@ -42,6 +42,7 @@ diff --git a/modules/route/back/methods/route/guessPriority.js b/modules/route/back/methods/route/guessPriority.js index 324cf9182..bb5b34ca3 100644 --- a/modules/route/back/methods/route/guessPriority.js +++ b/modules/route/back/methods/route/guessPriority.js @@ -6,7 +6,7 @@ module.exports = Self => { arg: 'id', type: 'number', required: true, - description: 'Guess priority', + description: 'Route Id ', http: {source: 'path'} }], returns: { diff --git a/modules/route/back/methods/route/specs/filter.spec.js b/modules/route/back/methods/route/specs/filter.spec.js index 1bf215138..ba32c956c 100644 --- a/modules/route/back/methods/route/specs/filter.spec.js +++ b/modules/route/back/methods/route/specs/filter.spec.js @@ -111,12 +111,12 @@ describe('Route filter()', () => { it('should return the routes matching "agencyModeFk"', async() => { let ctx = { args: { - agencyModeFk: 1, + agencyModeFk: 7, } }; let result = await app.models.Route.filter(ctx); - expect(result.length).toEqual(2); + expect(result.length).toEqual(4); }); }); diff --git a/modules/route/back/methods/route/specs/guessPriority.spec.js b/modules/route/back/methods/route/specs/guessPriority.spec.js new file mode 100644 index 000000000..cc536787a --- /dev/null +++ b/modules/route/back/methods/route/specs/guessPriority.spec.js @@ -0,0 +1,41 @@ +const app = require('vn-loopback/server/server'); + +describe('route guessPriority()', () => { + const targetRouteId = 2; + let routeTicketsToRestore; + + afterAll(async done => { + let restoreFixtures = []; + routeTicketsToRestore.forEach(ticket => { + restoreFixtures.push(ticket.updateAttribute('priority', null)); + }); + await Promise.all(restoreFixtures); + + done(); + }); + + it('should confirm the tickets in the target route have no priority yet', async() => { + routeTicketsToRestore = await app.models.Ticket.find({where: {routeFk: targetRouteId}}); + + expect(routeTicketsToRestore.length).toEqual(4); + expect(routeTicketsToRestore[0].priority).toBeNull(); + expect(routeTicketsToRestore[0].id).toEqual(7); + expect(routeTicketsToRestore[1].priority).toBeNull(); + expect(routeTicketsToRestore[1].id).toEqual(8); + expect(routeTicketsToRestore[2].priority).toBeNull(); + expect(routeTicketsToRestore[2].id).toEqual(9); + }); + + it('should call guessPriority() and then check the tickets in the target route now have their priorities defined', async() => { + await app.models.Route.guessPriority(targetRouteId); + let routeTickets = await app.models.Ticket.find({where: {routeFk: targetRouteId}, fields: ['id', 'priority']}); + + expect(routeTickets.length).toEqual(4); + expect(routeTickets[0].priority).toEqual(1); + expect(routeTickets[0].id).toEqual(7); + expect(routeTickets[1].priority).toEqual(3); + expect(routeTickets[1].id).toEqual(8); + expect(routeTickets[2].priority).toEqual(2); + expect(routeTickets[2].id).toEqual(9); + }); +}); diff --git a/modules/route/back/methods/route/specs/summary.spec.js b/modules/route/back/methods/route/specs/summary.spec.js index 06972c7ba..5b31ff19f 100644 --- a/modules/route/back/methods/route/specs/summary.spec.js +++ b/modules/route/back/methods/route/specs/summary.spec.js @@ -11,7 +11,7 @@ describe('route summary()', () => { const result = await app.models.Route.summary(1); const agency = result.route.agencyMode(); - expect(agency.name).toEqual('inhouse pickup'); + expect(agency.name).toEqual('Silla247'); }); it(`should return a summary object containing it's vehicle`, async() => { @@ -28,7 +28,7 @@ describe('route summary()', () => { expect(worker.nickname).toEqual('deliveryNick'); }); - it(`should return a summary object containing data from it's tickets`, async() => { + it(`should return a summary object containing data from the tickets`, async() => { const result = await app.models.Route.summary(2); expect(result.tickets.length).toEqual(4); diff --git a/modules/route/back/methods/route/specs/updateVolume.spec.js b/modules/route/back/methods/route/specs/updateVolume.spec.js index 046240555..75ee3c139 100644 --- a/modules/route/back/methods/route/specs/updateVolume.spec.js +++ b/modules/route/back/methods/route/specs/updateVolume.spec.js @@ -5,13 +5,13 @@ describe('route updateVolume()', () => { const workerFk = 9; const ctx = {req: {accessToken: {userId: workerFk}}}; let originalRoute; - let ticketRestore; + let ticketToRestore; let logIdToDestroy; afterAll(async done => { - await originalRoute.updateAttributes({m3: 0.2}); - await ticketRestore.updateAttributes({routeFk: 4}); + await originalRoute.updateAttributes({m3: 2.7}); + await ticketToRestore.updateAttributes({routeFk: 2}); await app.models.RouteLog.destroyById(logIdToDestroy); done(); }); @@ -19,11 +19,11 @@ describe('route updateVolume()', () => { it('should confirm the original volume of the route is the expected', async() => { originalRoute = await app.models.Route.findById(routeId); - expect(originalRoute.m3).toEqual(0.2); + expect(originalRoute.m3).toEqual(2.7); }); it('should confirm the route volume is updated when a ticket is added', async() => { - ticketRestore = await app.models.Ticket.findById(8); + ticketToRestore = await app.models.Ticket.findById(8); let updatedTicket = await app.models.Ticket.findById(8); await updatedTicket.updateAttributes({routeFk: routeId}); @@ -35,10 +35,9 @@ describe('route updateVolume()', () => { }); it('should confirm the change is logged', async() => { - let instanceValue = {m3: 0.3}; let logs = await app.models.RouteLog.find({fields: ['id', 'newInstance']}); let m3Log = logs.filter(log => { - return log.newInstance.m3 === instanceValue.m3; + return log.newInstance.m3 === 3.1; }); logIdToDestroy = m3Log[0].id; diff --git a/modules/ticket/back/methods/expedition/filter.js b/modules/ticket/back/methods/expedition/filter.js index 3491a9b2d..3ff2fcb59 100644 --- a/modules/ticket/back/methods/expedition/filter.js +++ b/modules/ticket/back/methods/expedition/filter.js @@ -42,7 +42,7 @@ module.exports = Self => { LEFT JOIN vn.item i2 ON i2.id = e.itemFk INNER JOIN vn.item i1 ON i1.id = e.isBox LEFT JOIN vn.worker w ON w.id = e.workerFk - JOIN account.user u ON u.id = w.userFk + LEFT JOIN account.user u ON u.id = w.userFk `); stmt.merge(Self.buildSuffix(filter, 'e')); diff --git a/modules/ticket/back/methods/sale/moveToTicket.js b/modules/ticket/back/methods/sale/moveToTicket.js index c97225301..149989727 100644 --- a/modules/ticket/back/methods/sale/moveToTicket.js +++ b/modules/ticket/back/methods/sale/moveToTicket.js @@ -39,6 +39,9 @@ module.exports = Self => { if (!params.receiverTicket.id) { let travelDates = await models.Agency.getFirstShipped(params.currentTicket); + + if (!travelDates) + throw new UserError(`Invalid parameters to create a new ticket`); let shipped = new Date(travelDates.shipped); let landed = new Date(travelDates.landed); diff --git a/modules/ticket/back/methods/sale/specs/moveToTicket.spec.js b/modules/ticket/back/methods/sale/specs/moveToTicket.spec.js index 4f771ee3f..8380ebb13 100644 --- a/modules/ticket/back/methods/sale/specs/moveToTicket.spec.js +++ b/modules/ticket/back/methods/sale/specs/moveToTicket.spec.js @@ -38,9 +38,24 @@ describe('sale moveToTicket()', () => { expect(error).toBeDefined(); }); + it('should throw an error when attempting to create a new ticket without delivery dates', async() => { + const ctx = {req: {accessToken: {userId: 101}}}; + let error; + + const params = {currentTicket: {currentTicketId: 18}, receiverTicket: {id: undefined}}; + + await app.models.Sale.moveToTicket(ctx, params) + .catch(response => { + expect(response.message).toEqual(`Invalid parameters to create a new ticket`); + error = response; + }); + + expect(error).toBeDefined(); + }); + it('should transfer the sales from one ticket to a new one', async() => { const ctx = {req: {accessToken: {userId: 101}}}; - let currentTicket = await app.models.Ticket.findById(8); + let currentTicket = await app.models.Ticket.findById(11); currentTicket.currentTicketId = currentTicket.id; currentTicket.id = undefined; @@ -52,8 +67,8 @@ describe('sale moveToTicket()', () => { currentTicket: currentTicket, receiverTicket: {id: undefined}, sales: [ - {id: 13}, - {id: 14} + {id: currentTicketSales[0].id}, + {id: currentTicketSales[1].id} ] }; @@ -67,9 +82,9 @@ describe('sale moveToTicket()', () => { expect(receiverTicketSales.length).toEqual(2); }); - it('should transfers back the sales and set the created ticket as deleted', async() => { + it('should transfer back the sales and set the created ticket as deleted', async() => { const ctx = {req: {accessToken: {userId: 101}}}; - let receiverTicketId = 8; + let receiverTicketId = 11; let currentTicket = await app.models.Ticket.findById(createdTicketId); currentTicket.currentTicketId = createdTicketId; currentTicket.id = undefined; @@ -87,8 +102,8 @@ describe('sale moveToTicket()', () => { currentTicket: currentTicket, receiverTicket: {id: receiverTicketId}, sales: [ - {id: 13}, - {id: 14} + {id: createdTicketSales[0].id}, + {id: createdTicketSales[1].id} ] }; diff --git a/modules/ticket/back/methods/sale/specs/priceDifference.spec.js b/modules/ticket/back/methods/sale/specs/priceDifference.spec.js index 164e05d17..4c0cb1566 100644 --- a/modules/ticket/back/methods/sale/specs/priceDifference.spec.js +++ b/modules/ticket/back/methods/sale/specs/priceDifference.spec.js @@ -7,18 +7,18 @@ describe('sale priceDifference()', () => { tomorrow.setDate(tomorrow.getDate() + 1); let data = { landed: tomorrow, - addressFk: 121, + addressFk: 126, agencyModeFk: 7, warehouseFk: 1 }; - let result = await app.models.Sale.priceDifference(11, data); + let result = await app.models.Sale.priceDifference(16, data); - expect(result.totalUnitPrice).toEqual(4.03); - expect(result.totalNewPrice).toEqual(4.03); + expect(result.totalUnitPrice).toEqual(215.77); + expect(result.totalNewPrice).toEqual(215.77); expect(result.totalDifference).toEqual(0); }); - it('should return an error if the ticket state is not valid for modifications', async() => { + it('should return an error if the ticket is not editable', async() => { let error; let data = { landed: new Date(), @@ -35,4 +35,3 @@ describe('sale priceDifference()', () => { expect(error).toEqual(new UserError(`The sales of this ticket can't be modified`)); }); }); - diff --git a/modules/ticket/back/methods/sale/specs/updatePrice.spec.js b/modules/ticket/back/methods/sale/specs/updatePrice.spec.js index f14e285b0..b0c8b8017 100644 --- a/modules/ticket/back/methods/sale/specs/updatePrice.spec.js +++ b/modules/ticket/back/methods/sale/specs/updatePrice.spec.js @@ -4,23 +4,27 @@ describe('sale updatePrice()', () => { let originalSale; let originalSalesPersonMana; let createdSaleComponent; - let saleId = 13; - - afterAll(async done => { - await originalSale.save(); - await app.models.SaleComponent.updateAll({componentFk: 37, saleFk: saleId}, {value: 0}); - await originalSalesPersonMana.save(); - - done(); - }); + let saleId = 7; + let manaComponentId; beforeAll(async done => { + let componentRate = await app.models.ComponentRate.findOne({where: {code: 'mana'}}); + manaComponentId = componentRate.id; originalSale = await app.models.Sale.findById(saleId); originalSalesPersonMana = await app.models.WorkerMana.findById(18); done(); }); + afterAll(async done => { + await originalSale.save(); + await app.models.SaleComponent.updateAll({componentFk: manaComponentId, saleFk: saleId}, {value: 0}); + await originalSalesPersonMana.save(); + + done(); + }); + + it('should throw an error if the ticket is not editable', async() => { let immutableSaleId = 1; let price = 5; @@ -53,15 +57,14 @@ describe('sale updatePrice()', () => { }); it('should set price as a decimal number and check the sale has the mana component', async() => { - let price = 5.5; - let manaComponentId = 37; + let price = 5.3; await app.models.Sale.updatePrice(saleId, price); let saleUpdated = await app.models.Sale.findById(saleId); createdSaleComponent = await app.models.SaleComponent.findOne({where: {saleFk: saleId, componentFk: manaComponentId}}); - expect(saleUpdated.price).toEqual(5.5); - expect(createdSaleComponent.value).toEqual(4.200); + expect(saleUpdated.price).toEqual(price); + expect(createdSaleComponent.value).toEqual(-2.13); }); it('should check that the mana of salesPerson changed', async() => { diff --git a/modules/ticket/back/methods/sale/updatePrice.js b/modules/ticket/back/methods/sale/updatePrice.js index e315d6504..e5907aa75 100644 --- a/modules/ticket/back/methods/sale/updatePrice.js +++ b/modules/ticket/back/methods/sale/updatePrice.js @@ -19,7 +19,7 @@ module.exports = Self => { } ], returns: { - type: 'string', + type: 'Number', root: true }, http: { @@ -36,7 +36,6 @@ module.exports = Self => { let options = {transaction: tx}; let filter = { - fields: ['id', 'ticketFk', 'price'], include: { relation: 'ticket', scope: { @@ -88,6 +87,8 @@ module.exports = Self => { await Self.rawSql(query, [salesPerson], options); await tx.commit(); + + return sale; } catch (error) { await tx.rollback(); throw error; diff --git a/modules/ticket/back/methods/ticket-request/confirm.js b/modules/ticket/back/methods/ticket-request/confirm.js index c08ecba9b..79551796d 100644 --- a/modules/ticket/back/methods/ticket-request/confirm.js +++ b/modules/ticket/back/methods/ticket-request/confirm.js @@ -45,20 +45,15 @@ module.exports = Self => { include: {relation: 'ticket'} }); - let query = `CALL vn.getItemVisibleAvailable(?,?,?,?)`; - - let params = [ + let [[stock]] = await Self.rawSql(`CALL vn.getItemVisibleAvailable(?,?,?,?)`, [ ctx.args.itemFk, request.ticket().shipped, request.ticket().warehouseFk, false - ]; - - let [res] = await Self.rawSql(query, params); - let available = res[0].available; - if (!available) - throw new UserError(`That item is not available on that day`); + ]); + if (stock.available < quantity) + throw new UserError(`This item is not available`); if (request.saleFk) { let sale = await models.Sale.findById(request.saleFk); diff --git a/modules/ticket/back/methods/ticket/addSale.js b/modules/ticket/back/methods/ticket/addSale.js new file mode 100644 index 000000000..dd3bdd218 --- /dev/null +++ b/modules/ticket/back/methods/ticket/addSale.js @@ -0,0 +1,71 @@ + +const UserError = require('vn-loopback/util/user-error'); + +module.exports = Self => { + Self.remoteMethod('addSale', { + description: 'Inserts a new sale for the current ticket', + accessType: 'WRITE', + accepts: [{ + arg: 'id', + type: 'Number', + required: true, + description: 'The ticket id', + http: {source: 'path'} + }, + { + arg: 'itemId', + type: 'Number', + required: true + }, + { + arg: 'quantity', + type: 'Number', + required: true + }], + returns: { + type: 'Object', + root: true + }, + http: { + path: `/:id/addSale`, + verb: 'POST' + } + }); + + Self.addSale = async(id, itemId, quantity) => { + const models = Self.app.models; + + const isEditable = await models.Ticket.isEditable(id); + if (!isEditable) + throw new UserError(`The sales of this ticket can't be modified`); + + const item = await models.Item.findById(itemId); + const ticket = await models.Ticket.findById(id); + + const shouldRefresh = false; + const [[stock]] = await Self.rawSql(`CALL vn.itemGetVisibleAvailable(?, ?, ?, ?)`, [ + itemId, + ticket.shipped, + ticket.warehouseFk, + shouldRefresh + ]); + + if (stock.available < quantity) + throw new UserError(`This item is not available`); + + const newSale = await models.Sale.create({ + ticketFk: id, + itemFk: item.id, + concept: item.name, + quantity: quantity + }); + + await Self.rawSql('CALL vn.ticketCalculateSale(?)', [newSale.id]); + + return models.Sale.findById(newSale.id, { + include: { + relation: 'item' + } + }); + }; +}; diff --git a/modules/ticket/back/methods/ticket/filter.js b/modules/ticket/back/methods/ticket/filter.js index a363cfaf0..a3c17ecc4 100644 --- a/modules/ticket/back/methods/ticket/filter.js +++ b/modules/ticket/back/methods/ticket/filter.js @@ -220,7 +220,8 @@ module.exports = Self => { (INDEX (ticketFk)) ENGINE = MEMORY SELECT id ticketFk, clientFk, warehouseFk, shipped - FROM tmp.filter`); + FROM tmp.filter + WHERE alertLevel = 0 OR alertLevel IS NULL`); stmts.push('CALL ticketGetProblems()'); stmts.push('DROP TEMPORARY TABLE IF EXISTS tmp.ticket'); diff --git a/modules/ticket/back/methods/ticket/getSales.js b/modules/ticket/back/methods/ticket/getSales.js index 25b8aaff3..0c33d9db9 100644 --- a/modules/ticket/back/methods/ticket/getSales.js +++ b/modules/ticket/back/methods/ticket/getSales.js @@ -51,7 +51,7 @@ module.exports = Self => { claimMap[claim.saleFk] = claim; for (line of lines) { - line.tags = map[line.itemFk]; + line.item = map[line.itemFk]; line.claim = claimMap[line.id]; } diff --git a/modules/ticket/back/methods/ticket/getSalesPersonMana.js b/modules/ticket/back/methods/ticket/getSalesPersonMana.js index 1289374cd..8ac1d7a38 100644 --- a/modules/ticket/back/methods/ticket/getSalesPersonMana.js +++ b/modules/ticket/back/methods/ticket/getSalesPersonMana.js @@ -19,10 +19,7 @@ module.exports = Self => { }); Self.getSalesPersonMana = async ticketFk => { - let ticket = await Self.app.models.Ticket.find({ - where: { - id: ticketFk - }, + let ticket = await Self.app.models.Ticket.findById(ticketFk, { include: [{ relation: 'client', scope: { @@ -31,7 +28,11 @@ module.exports = Self => { }], fields: ['id', 'clientFk'] }); - let mana = await Self.app.models.WorkerMana.findOne({where: {workerFk: ticket[0].client().salesPersonFk}, fields: 'amount'}); + + if (!ticket) + return 0; + + let mana = await Self.app.models.WorkerMana.findOne({where: {workerFk: ticket.client().salesPersonFk}, fields: 'amount'}); return mana ? mana.amount : 0; }; diff --git a/modules/ticket/back/methods/ticket/makeInvoice.js b/modules/ticket/back/methods/ticket/makeInvoice.js index 2a70bcfa6..adffdd365 100644 --- a/modules/ticket/back/methods/ticket/makeInvoice.js +++ b/modules/ticket/back/methods/ticket/makeInvoice.js @@ -26,20 +26,20 @@ module.exports = function(Self) { Self.makeInvoice = async(ctx, id) => { let userId = ctx.req.accessToken.userId; - let $ = Self.app.models; + let models = Self.app.models; let tx = await Self.beginTransaction({}); try { let options = {transaction: tx}; let filter = {fields: ['id', 'clientFk', 'companyFk']}; - let ticket = await $.Ticket.findById(id, filter, options); + let ticket = await models.Ticket.findById(id, filter, options); - let clientCanBeInvoiced = await $.Client.canBeInvoiced(ticket.clientFk); + let clientCanBeInvoiced = await models.Client.canBeInvoiced(ticket.clientFk); if (!clientCanBeInvoiced) throw new UserError(`This client can't be invoiced`); - let ticketCanBeInvoiced = await $.Ticket.canBeInvoiced(ticket.id); + let ticketCanBeInvoiced = await models.Ticket.canBeInvoiced(ticket.id); if (!ticketCanBeInvoiced) throw new UserError(`This ticket can't be invoiced`); @@ -64,7 +64,7 @@ module.exports = function(Self) { await Self.rawSql(query, [invoice], options); } - let user = await $.Worker.findOne({where: {userFk: userId}}, options); + let user = await models.Worker.findOne({where: {userFk: userId}}, options); query = `INSERT INTO printServerQueue(reportFk, param1, workerFk) VALUES (?, ?, ?)`; await Self.rawSql(query, [3, invoice, user.id], options); diff --git a/modules/ticket/back/methods/ticket/new.js b/modules/ticket/back/methods/ticket/new.js index 9be919689..defa25963 100644 --- a/modules/ticket/back/methods/ticket/new.js +++ b/modules/ticket/back/methods/ticket/new.js @@ -22,8 +22,8 @@ module.exports = Self => { }); Self.new = async(ctx, params, options) => { - let $ = Self.app.models; - let address = await $.Address.findOne({ + let models = Self.app.models; + let address = await models.Address.findOne({ where: {id: params.addressFk}, fields: ['id', 'clientFk'], include: [ @@ -42,12 +42,9 @@ module.exports = Self => { let agencyMode; if (params && params.agencyModeFk) - agencyMode = await $.AgencyMode.findById(params.agencyModeFk); + agencyMode = await models.AgencyMode.findById(params.agencyModeFk); if (address.client().type().code === 'normal' && (!agencyMode || agencyMode.code != 'refund')) { - if (address.client().isFreezed) - throw new UserError(`You can't create a ticket for a frozen client`); - if (!address.client().isActive) throw new UserError(`You can't create a ticket for a inactive client`); } @@ -64,7 +61,7 @@ module.exports = Self => { try { if (!params.shipped && params.landed) { - params.shipped = await $.Agency.getShipped(ctx, { + params.shipped = await models.Agency.getShipped(ctx, { landed: params.landed, addressFk: address.id, agencyModeFk: params.agencyModeFk, @@ -73,7 +70,7 @@ module.exports = Self => { } if (params.shipped && !params.landed) { - const landedResult = await $.Agency.getLanded(ctx, { + const landedResult = await models.Agency.getLanded(ctx, { shipped: params.shipped, addressFk: address.id, agencyModeFk: params.agencyModeFk, @@ -99,7 +96,7 @@ module.exports = Self => { params.userId ], options); - let ticket = await $.Ticket.findById(result[1][0].newTicketId, null, options); + let ticket = await models.Ticket.findById(result[1][0].newTicketId, null, options); let cleanInstance = JSON.parse(JSON.stringify(ticket)); let logRecord = { @@ -112,7 +109,7 @@ module.exports = Self => { newInstance: cleanInstance }; - await $.TicketLog.create(logRecord, options); + await models.TicketLog.create(logRecord, options); if (tx) await tx.commit(); return await ticket; diff --git a/modules/ticket/back/methods/ticket/specs/addSale.spec.js b/modules/ticket/back/methods/ticket/specs/addSale.spec.js new file mode 100644 index 000000000..b035a74db --- /dev/null +++ b/modules/ticket/back/methods/ticket/specs/addSale.spec.js @@ -0,0 +1,49 @@ +const app = require('vn-loopback/server/server'); + +describe('ticket addSale()', () => { + const ticketId = 13; + let newSale; + + afterAll(async done => { + const sale = await app.models.Sale.findById(newSale.id); + await sale.destroy(); + + done(); + }); + + it('should create a new sale for the ticket with id 13', async() => { + const itemId = 4; + const quantity = 10; + newSale = await app.models.Ticket.addSale(ticketId, itemId, quantity); + + expect(newSale.itemFk).toEqual(4); + }); + + it('should not be able to add a sale if the item quantity is not available', async() => { + const itemId = 11; + const quantity = 10; + + let error; + await app.models.Ticket.addSale(ticketId, itemId, quantity).catch(e => { + error = e; + }).finally(() => { + expect(error.message).toEqual(`This item is not available`); + }); + + expect(error).toBeDefined(); + }); + + it('should not be able to add a sale if the ticket is not editable', async() => { + const notEditableTicketId = 1; + const itemId = 4; + const quantity = 10; + let error; + await app.models.Ticket.addSale(notEditableTicketId, itemId, quantity).catch(e => { + error = e; + }).finally(() => { + expect(error.message).toEqual(`The sales of this ticket can't be modified`); + }); + + expect(error).toBeDefined(); + }); +}); diff --git a/modules/ticket/back/methods/ticket/specs/componentUpdate.spec.js b/modules/ticket/back/methods/ticket/specs/componentUpdate.spec.js index 0d27d69b3..347ee9e7e 100644 --- a/modules/ticket/back/methods/ticket/specs/componentUpdate.spec.js +++ b/modules/ticket/back/methods/ticket/specs/componentUpdate.spec.js @@ -1,19 +1,23 @@ const app = require('vn-loopback/server/server'); describe('ticket componentUpdate()', () => { - let firstvalueBeforeChange; - let secondvalueBeforeChange; - let componentOfSaleSeven = `SELECT value FROM vn.saleComponent - WHERE saleFk = 7 AND componentFk = 15`; - - let componentOfSaleEight = `SELECT value FROM vn.saleComponent - WHERE saleFk = 8 AND componentFk = 15`; + const ticketId = 11; const today = new Date(); const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); - let ticketId = 11; + + let deliveryComponentId; + let firstvalueBeforeChange; + let secondvalueBeforeChange; + let componentOfSaleSeven; + let componentOfSaleEight; beforeAll(async done => { + let deliveryComponenet = await app.models.ComponentRate.findOne({where: {code: 'delivery'}}); + deliveryComponentId = deliveryComponenet.id; + componentOfSaleSeven = `SELECT value FROM vn.saleComponent WHERE saleFk = 7 AND componentFk = ${deliveryComponentId}`; + componentOfSaleEight = `SELECT value FROM vn.saleComponent WHERE saleFk = 8 AND componentFk = ${deliveryComponentId}`; + [componentValue] = await app.models.SaleComponent.rawSql(componentOfSaleSeven); firstvalueBeforeChange = componentValue.value; @@ -25,9 +29,9 @@ describe('ticket componentUpdate()', () => { it('should change the agencyMode to modify the sale components value', async() => { let data = { - clientFk: 101, + clientFk: 102, agencyModeFk: 8, - addressFk: 121, + addressFk: 122, warehouseFk: 1, companyFk: 442, shipped: today, @@ -53,9 +57,9 @@ describe('ticket componentUpdate()', () => { it('should change the agencyMode to go back to the originals sale components value', async() => { let data = { - clientFk: 101, + clientFk: 102, agencyModeFk: 7, - addressFk: 121, + addressFk: 122, warehouseFk: 1, companyFk: 442, shipped: today, diff --git a/modules/ticket/back/methods/ticket/specs/filter.spec.js b/modules/ticket/back/methods/ticket/specs/filter.spec.js index 648cfe3ba..357ef2bdb 100644 --- a/modules/ticket/back/methods/ticket/specs/filter.spec.js +++ b/modules/ticket/back/methods/ticket/specs/filter.spec.js @@ -1,13 +1,13 @@ const app = require('vn-loopback/server/server'); describe('ticket filter()', () => { - it('should call the filter method', async() => { + it('should return the tickets matching the filter', async() => { let ctx = {req: {accessToken: {userId: 9}}, args: {}}; - let filter = {order: 'shipped DESC'}; + let filter = {order: 'id DESC'}; let result = await app.models.Ticket.filter(ctx, filter); let ticketId = result[0].id; - expect(ticketId).toEqual(15); + expect(ticketId).toEqual(24); }); }); diff --git a/modules/ticket/back/methods/ticket/specs/getSales.spec.js b/modules/ticket/back/methods/ticket/specs/getSales.spec.js index cefa9ff4d..4e57f570f 100644 --- a/modules/ticket/back/methods/ticket/specs/getSales.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getSales.spec.js @@ -5,10 +5,10 @@ describe('ticket getSales()', () => { let sales = await app.models.Ticket.getSales(16); expect(sales.length).toEqual(4); - expect(sales[0].tags).toBeDefined(); - expect(sales[1].tags).toBeDefined(); - expect(sales[2].tags).toBeDefined(); - expect(sales[3].tags).toBeDefined(); + expect(sales[0].item).toBeDefined(); + expect(sales[1].item).toBeDefined(); + expect(sales[2].item).toBeDefined(); + expect(sales[3].item).toBeDefined(); expect(sales[0].claim).toBeDefined(); }); }); diff --git a/modules/ticket/back/methods/ticket/specs/getSalespersonMana.spec.js b/modules/ticket/back/methods/ticket/specs/getSalespersonMana.spec.js index b08220d15..84e958dfa 100644 --- a/modules/ticket/back/methods/ticket/specs/getSalespersonMana.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getSalespersonMana.spec.js @@ -4,11 +4,11 @@ describe('ticket getSalesPersonMana()', () => { it('should get the mana of a salesperson of a given ticket', async() => { let mana = await app.models.Ticket.getSalesPersonMana(1); - expect(mana).toEqual(222); + expect(mana).toEqual(124); }); - it('should return 0 if the given ticket does not exists', async() => { - let mana = await app.models.Ticket.getSalesPersonMana(20); + it('should return 0 if the given ticket does not exist', async() => { + let mana = await app.models.Ticket.getSalesPersonMana(99); expect(mana).toEqual(0); }); diff --git a/modules/ticket/back/methods/ticket/specs/getTaxes.spec.js b/modules/ticket/back/methods/ticket/specs/getTaxes.spec.js index 2d8488cd3..74f336bbd 100644 --- a/modules/ticket/back/methods/ticket/specs/getTaxes.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getTaxes.spec.js @@ -4,6 +4,6 @@ describe('ticket getTaxes()', () => { it('should return the tax of a given ticket', async() => { let result = await app.models.Ticket.getTaxes(1); - expect(result[0].tax).toEqual(7.64); + expect(result[0].tax).toEqual(77.54); }); }); diff --git a/modules/ticket/back/methods/ticket/specs/getTotal.spec.js b/modules/ticket/back/methods/ticket/specs/getTotal.spec.js index bcdcd4889..c3494bba9 100644 --- a/modules/ticket/back/methods/ticket/specs/getTotal.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getTotal.spec.js @@ -4,11 +4,11 @@ describe('ticket getTotal()', () => { it('should return the total of a ticket', async() => { let result = await app.models.Ticket.getTotal(1); - expect(result).toEqual(158.09); + expect(result).toEqual(893.87); }); it(`should return zero if the ticket doesn't have lines`, async() => { - let result = await app.models.Ticket.getTotal(13); + let result = await app.models.Ticket.getTotal(21); expect(result).toEqual(0); }); diff --git a/modules/ticket/back/methods/ticket/specs/getTotalVolume.spec.js b/modules/ticket/back/methods/ticket/specs/getTotalVolume.spec.js index d1ba56e84..a99dd6578 100644 --- a/modules/ticket/back/methods/ticket/specs/getTotalVolume.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getTotalVolume.spec.js @@ -4,7 +4,7 @@ describe('ticket getTotalVolume()', () => { it('should return the total volume of a ticket', async() => { let ticketFk = 1; - let expectedResult = 0.066; + let expectedResult = 1.562; let result = await app.models.Ticket.getTotalVolume(ticketFk); diff --git a/modules/ticket/back/methods/ticket/specs/getVAT.spec.js b/modules/ticket/back/methods/ticket/specs/getVAT.spec.js index 70fa0fa39..8ba2a3285 100644 --- a/modules/ticket/back/methods/ticket/specs/getVAT.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getVAT.spec.js @@ -1,17 +1,10 @@ const app = require('vn-loopback/server/server'); describe('ticket getVAT()', () => { - it('should call the getVAT method and return the response', async() => { + it('should return the ticket VAT', async() => { await app.models.Ticket.getVAT(1) .then(response => { - expect(response).toEqual(20.49); - }); - }); - - it(`should call the getVAT method and return zero if doesn't have lines`, async() => { - await app.models.Ticket.getVAT(13) - .then(response => { - expect(response).toEqual(0); + expect(response).toEqual(84.64); }); }); }); diff --git a/modules/ticket/back/methods/ticket/specs/getVolume.spec.js b/modules/ticket/back/methods/ticket/specs/getVolume.spec.js index b512a978b..8acf673af 100644 --- a/modules/ticket/back/methods/ticket/specs/getVolume.spec.js +++ b/modules/ticket/back/methods/ticket/specs/getVolume.spec.js @@ -5,7 +5,7 @@ describe('ticket getVolume()', () => { let ticketFk = 1; await app.models.Ticket.getVolume(ticketFk) .then(response => { - expect(response[0].m3).toEqual(0.04); + expect(response[0].m3).toEqual(1.09); }); }); }); diff --git a/modules/ticket/back/methods/ticket/specs/isEditable.spec.js b/modules/ticket/back/methods/ticket/specs/isEditable.spec.js index 1ccc4560c..328de4827 100644 --- a/modules/ticket/back/methods/ticket/specs/isEditable.spec.js +++ b/modules/ticket/back/methods/ticket/specs/isEditable.spec.js @@ -1,25 +1,25 @@ const app = require('vn-loopback/server/server'); describe('ticket isEditable()', () => { - it('should return false if the ticket given is not editable', async() => { + it('should return false if the given ticket is not editable', async() => { let result = await app.models.Ticket.isEditable(2); expect(result).toEqual(false); }); - it('should return false if the ticket given does not exist', async() => { + it('should return false if the given ticket does not exist', async() => { let result = await app.models.Ticket.isEditable(99999); expect(result).toEqual(false); }); - it('should return false if the ticket given isDeleted', async() => { - let result = await app.models.Ticket.isEditable(21); + it('should return false if the given ticket isDeleted', async() => { + let result = await app.models.Ticket.isEditable(19); expect(result).toEqual(false); }); - it('should return true if the ticket given is editable', async() => { + it('should return true if the given ticket is editable', async() => { let result = await app.models.Ticket.isEditable(16); expect(result).toEqual(true); diff --git a/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js b/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js index b9c14f4d3..6725c379a 100644 --- a/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js +++ b/modules/ticket/back/methods/ticket/specs/makeInvoice.spec.js @@ -2,6 +2,7 @@ const app = require('vn-loopback/server/server'); describe('ticket makeInvoice()', () => { let invoice; + let ticketId = 11; afterAll(async done => { let ticket = await app.models.Ticket.findById(11); @@ -18,8 +19,7 @@ describe('ticket makeInvoice()', () => { it('should invoice a ticket', async() => { let ctx = {req: {accessToken: {userId: 9}}}; - let ticketFk = 11; - invoice = await app.models.Ticket.makeInvoice(ctx, ticketFk); + invoice = await app.models.Ticket.makeInvoice(ctx, ticketId); expect(invoice.invoiceFk).not.toBeNaN(); expect(invoice.serial).toEqual('T'); @@ -27,10 +27,9 @@ describe('ticket makeInvoice()', () => { it('should not invoice an already invoiced ticket', async() => { let ctx = {req: {accessToken: {userId: 9}}}; - let ticketFk = 11; let error; - await app.models.Ticket.makeInvoice(ctx, ticketFk).catch(e => { + await app.models.Ticket.makeInvoice(ctx, ticketId).catch(e => { error = e; }).finally(() => { expect(error.message).toEqual(`This ticket can't be invoiced`); diff --git a/modules/ticket/back/methods/ticket/specs/new.spec.js b/modules/ticket/back/methods/ticket/specs/new.spec.js index 9b1c43c57..80147c2f2 100644 --- a/modules/ticket/back/methods/ticket/specs/new.spec.js +++ b/modules/ticket/back/methods/ticket/specs/new.spec.js @@ -13,18 +13,6 @@ describe('ticket new()', () => { done(); }); - it('should throw an error if the client is frozen', async() => { - let error; - let params = {addressFk: 121}; - - await app.models.Ticket.new(ctx, params) - .catch(e => { - error = e; - }); - - expect(error).toEqual(new UserError(`You can't create a ticket for a frozen client`)); - }); - it('should throw an error if the client isnt frozen and isnt active', async() => { let error; let params = {addressFk: 6}; diff --git a/modules/ticket/back/methods/ticket/specs/subtotal.spec.js b/modules/ticket/back/methods/ticket/specs/subtotal.spec.js index c204f806a..bd706b6b5 100644 --- a/modules/ticket/back/methods/ticket/specs/subtotal.spec.js +++ b/modules/ticket/back/methods/ticket/specs/subtotal.spec.js @@ -4,11 +4,11 @@ describe('ticket subtotal()', () => { it('should return the subtotal of a ticket', async() => { let result = await app.models.Ticket.subtotal(1); - expect(result).toEqual(137.60); + expect(result).toEqual(809.23); }); - it(`should return zero if the ticket doesn't have lines`, async() => { - let result = await app.models.Ticket.subtotal(13); + it(`should return 0 if the ticket doesn't have lines`, async() => { + let result = await app.models.Ticket.subtotal(21); expect(result).toEqual(0.00); }); diff --git a/modules/ticket/back/methods/ticket/specs/summary.spec.js b/modules/ticket/back/methods/ticket/specs/summary.spec.js index 2041555ba..c67db0520 100644 --- a/modules/ticket/back/methods/ticket/specs/summary.spec.js +++ b/modules/ticket/back/methods/ticket/specs/summary.spec.js @@ -5,7 +5,7 @@ describe('ticket summary()', () => { let result = await app.models.Ticket.summary(1); expect(result.id).toEqual(1); - expect(result.nickname).toEqual('address 21'); + expect(result.nickname).toEqual('Bat cave'); }); it('should return a summary object containing sales from 1 ticket', async() => { @@ -17,13 +17,13 @@ describe('ticket summary()', () => { it('should return a summary object containing subtotal for 1 ticket', async() => { let result = await app.models.Ticket.summary(1); - expect(Math.round(result.subtotal * 100) / 100).toEqual(137.60); + expect(Math.round(result.subtotal * 100) / 100).toEqual(809.23); }); it('should return a summary object containing VAT for 1 ticket', async() => { let result = await app.models.Ticket.summary(1); - expect(Math.round(result.vat * 100) / 100).toEqual(20.49); + expect(Math.round(result.vat * 100) / 100).toEqual(84.64); }); it('should return a summary object containing total for 1 ticket', async() => { diff --git a/modules/ticket/back/methods/ticket/specs/threeLastActive.spec.js b/modules/ticket/back/methods/ticket/specs/threeLastActive.spec.js index 6e6416d78..d3cd9ba93 100644 --- a/modules/ticket/back/methods/ticket/specs/threeLastActive.spec.js +++ b/modules/ticket/back/methods/ticket/specs/threeLastActive.spec.js @@ -2,7 +2,7 @@ const app = require('vn-loopback/server/server'); describe('ticket threeLastActive()', () => { it('should return the last three active tickets', async() => { - let params = {clientFk: 101, ticketFk: 1}; + let params = {clientFk: 109, ticketFk: 19}; let result = await app.models.Ticket.threeLastActive(params); expect(result.length).toEqual(3); diff --git a/modules/ticket/back/methods/ticket/specs/updateDiscount.spec.js b/modules/ticket/back/methods/ticket/specs/updateDiscount.spec.js index 2e0f1e918..30216c199 100644 --- a/modules/ticket/back/methods/ticket/specs/updateDiscount.spec.js +++ b/modules/ticket/back/methods/ticket/specs/updateDiscount.spec.js @@ -1,7 +1,7 @@ const app = require('vn-loopback/server/server'); describe('sale updateDiscount()', () => { - const originalSaleId = 14; + const originalSaleId = 8; let componentId; let originalSale; let salesPersonMana; @@ -29,7 +29,7 @@ describe('sale updateDiscount()', () => { it('should throw an error if no sales were selected', async() => { let error; - const ticketId = 8; + const ticketId = 11; const sales = []; const newDiscount = 10; @@ -44,7 +44,7 @@ describe('sale updateDiscount()', () => { it('should throw an error if no sales belong to different tickets', async() => { let error; - const ticketId = 8; + const ticketId = 11; const sales = [1, 14]; const newDiscount = 10; @@ -59,8 +59,8 @@ describe('sale updateDiscount()', () => { it('should throw an error if the ticket is invoiced already', async() => { let error; - const ticketId = 7; - const sales = [22]; + const ticketId = 1; + const sales = [1]; const newDiscount = 100; try { @@ -73,7 +73,7 @@ describe('sale updateDiscount()', () => { }); it('should update the discount if the salesPerson has mana', async() => { - const ticketId = 8; + const ticketId = 11; const sales = [originalSaleId]; const newDiscount = 100; diff --git a/modules/ticket/back/methods/ticket/specs/updateEditableTicket.spec.js b/modules/ticket/back/methods/ticket/specs/updateEditableTicket.spec.js index e792b925f..378b01961 100644 --- a/modules/ticket/back/methods/ticket/specs/updateEditableTicket.spec.js +++ b/modules/ticket/back/methods/ticket/specs/updateEditableTicket.spec.js @@ -4,7 +4,7 @@ describe('ticket updateEditableTicket()', () => { const validTicketId = 12; const invalidTicketId = 1; const data = {addressFk: 1}; - const originalData = {addressFk: 121}; + const originalData = {addressFk: 123}; afterAll(async done => { await app.models.Ticket.updateEditableTicket(validTicketId, originalData); diff --git a/modules/ticket/back/methods/ticket/threeLastActive.js b/modules/ticket/back/methods/ticket/threeLastActive.js index 2966514a4..fa4eab99d 100644 --- a/modules/ticket/back/methods/ticket/threeLastActive.js +++ b/modules/ticket/back/methods/ticket/threeLastActive.js @@ -20,7 +20,7 @@ module.exports = Self => { Self.threeLastActive = async params => { let query = ` - SELECT t.id,t.shipped,a.name AS agencyName,w.name AS warehouseName + SELECT t.id, t.shipped, a.name AS agencyName, w.name AS warehouseName FROM vn.ticket t JOIN vn.ticketState ts ON t.id = ts.ticketFk JOIN vn.agencyMode a ON t.agencyModeFk = a.id diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js index bc042ed8a..df5b95839 100644 --- a/modules/ticket/back/models/sale.js +++ b/modules/ticket/back/models/sale.js @@ -6,4 +6,8 @@ module.exports = Self => { require('../methods/sale/removes')(Self); require('../methods/sale/updatePrice')(Self); require('../methods/sale/updateQuantity')(Self); + + Self.validatesPresenceOf('concept', { + message: `Concept cannot be blank` + }); }; diff --git a/modules/ticket/back/models/sale.json b/modules/ticket/back/models/sale.json index 17a8c604e..894a2608f 100644 --- a/modules/ticket/back/models/sale.json +++ b/modules/ticket/back/models/sale.json @@ -13,7 +13,8 @@ "description": "Identifier" }, "concept": { - "type": "String" + "type": "String", + "required": true }, "quantity": { "type": "Number" diff --git a/modules/ticket/back/models/stowaway.js b/modules/ticket/back/models/stowaway.js new file mode 100644 index 000000000..714d823b0 --- /dev/null +++ b/modules/ticket/back/models/stowaway.js @@ -0,0 +1,16 @@ +const LoopBackContext = require('loopback-context'); +module.exports = function(Self) { + Self.observe('before save', async function(ctx) { + if (ctx.isNewInstance) { + let where = { + code: 'BOARDING' + }; + let state = await Self.app.models.State.findOne({where}); + let params = {ticketFk: ctx.instance.id, stateFk: state.id}; + const loopBackContext = LoopBackContext.getCurrentContext(); + + let httpCtx = {req: loopBackContext.active}; + await Self.app.models.TicketTracking.changeState(httpCtx, params); + } + }); +}; diff --git a/modules/ticket/back/models/ticket.js b/modules/ticket/back/models/ticket.js index 8ee2b4580..a058bbd89 100644 --- a/modules/ticket/back/models/ticket.js +++ b/modules/ticket/back/models/ticket.js @@ -1,3 +1,4 @@ + module.exports = Self => { require('../methods/ticket/changeWorker')(Self); require('../methods/ticket/getVolume')(Self); @@ -22,4 +23,25 @@ module.exports = Self => { require('../methods/ticket/checkEmptiness')(Self); require('../methods/ticket/updateDiscount')(Self); require('../methods/ticket/uploadFile')(Self); + require('../methods/ticket/addSale')(Self); + + Self.observe('before save', async function(ctx) { + if (ctx.isNewInstance) return; + + let changes = ctx.data || ctx.instance; + + if (changes.routeFk === null && ctx.currentInstance.routeFk != null) { + let instance = JSON.parse(JSON.stringify(ctx.currentInstance)); + let userId = ctx.options.accessToken.userId; + let logRecord = { + originFk: ctx.currentInstance.routeFk, + userFk: userId, + action: 'delete', + changedModel: 'Route', + oldInstance: {ticket: instance.id}, + newInstance: null + }; + await Self.app.models.RouteLog.create(logRecord); + } + }); }; diff --git a/modules/ticket/front/basic-data/step-two/index.html b/modules/ticket/front/basic-data/step-two/index.html index a8c3859e5..1ecd061e2 100644 --- a/modules/ticket/front/basic-data/step-two/index.html +++ b/modules/ticket/front/basic-data/step-two/index.html @@ -18,7 +18,8 @@ + item="::sale.item" + name="::sale.concept"> {{::sale.quantity}} diff --git a/modules/ticket/front/component/index.html b/modules/ticket/front/component/index.html index 27ba166d0..228a0270c 100644 --- a/modules/ticket/front/component/index.html +++ b/modules/ticket/front/component/index.html @@ -41,6 +41,7 @@ diff --git a/modules/ticket/front/descriptor/addStowaway.js b/modules/ticket/front/descriptor/addStowaway.js index 514d46503..b5f6d82fe 100644 --- a/modules/ticket/front/descriptor/addStowaway.js +++ b/modules/ticket/front/descriptor/addStowaway.js @@ -1,10 +1,10 @@ import ngModule from '../module'; class Controller { - constructor($state, $scope, $http, vnApp, $translate) { + constructor($state, $, $http, vnApp, $translate) { this.vnApp = vnApp; this.$translate = $translate; - this.$scope = $scope; + this.$ = $; this.$state = $state; this.$http = $http; } @@ -22,15 +22,16 @@ class Controller { .then(() => { this.cardReload(); this.vnApp.showSuccess(this.$translate.instant('Data saved!')); + this.$.dialog.hide(); }); } show() { - this.$scope.dialog.show(); + this.$.dialog.show(); } hide() { - this.$scope.dialog.hide(); + this.$.dialog.hide(); } } diff --git a/modules/ticket/front/dms/index/index.html b/modules/ticket/front/dms/index/index.html index 9000ca91e..eb51710b6 100644 --- a/modules/ticket/front/dms/index/index.html +++ b/modules/ticket/front/dms/index/index.html @@ -58,7 +58,8 @@ + href="api/dms/{{::document.dmsFk}}/downloadFile?access_token={{::$ctrl.accessToken}}" + ng-show="document.hasFile"> diff --git a/modules/ticket/front/index/index.html b/modules/ticket/front/index/index.html index fae2cf923..b5eb250cd 100644 --- a/modules/ticket/front/index/index.html +++ b/modules/ticket/front/index/index.html @@ -13,7 +13,6 @@ Agency Warehouse Invoice - Zone Hour - Zone Minute + Closure Total @@ -123,8 +121,7 @@ {{::ticket.agencyMode}} {{::ticket.warehouse}} {{::ticket.refFk | dashIfEmpty}} - {{::ticket.zoneLanding | dateTime: 'HH'}} - {{::ticket.zoneLanding | dateTime: 'mm'}} + {{::ticket.zoneLanding | dateTime: 'HH:mm'}} {{::ticket.total | currency: 'EUR': 2}} { - if (res.data) { - this.filter = { - scopeDays: parseInt(res.data.scopeDays) - }; - } - }); } setBalanceCreateDialog() { @@ -61,27 +37,27 @@ export default class Controller { this.$.balanceCreateDialog.description += description.join(', '); } - buildFilterDates() { - let today = new Date(); - this.today = today.setHours(0, 0, 0, 0); + getScopeDates(days) { + const today = new Date(); + today.setHours(0, 0, 0, 0); - let buildDate = new Date(today); - buildDate.setDate(today.getDate() + this.scopeDays); - buildDate.setHours(23, 59, 59, 999); + const daysOnward = new Date(today); + daysOnward.setDate(today.getDate() + days); + daysOnward.setHours(23, 59, 59, 999); - this.daysOnward = buildDate; + return {from: today, to: daysOnward}; } onSearch(params) { if (params) { + let newParams = params; if (params.scopeDays) { - params.scopeDays = parseInt(params.scopeDays); - this.scopeDays = params.scopeDays; - this.buildFilterDates(); - params = Object.assign(params, {from: this.today, to: this.daysOnward}); - } + const scopeDates = this.getScopeDates(params.scopeDays); + Object.assign(newParams, scopeDates); + } else if (Object.entries(params).length == 0) + newParams = this.getScopeDates(1); - this.$.model.applyFilter(null, params); + this.$.model.applyFilter(null, newParams); } else this.$.model.clear(); } diff --git a/modules/ticket/front/index/locale/es.yml b/modules/ticket/front/index/locale/es.yml index f2c6d164e..4253b8305 100644 --- a/modules/ticket/front/index/locale/es.yml +++ b/modules/ticket/front/index/locale/es.yml @@ -2,5 +2,4 @@ Turns: Turnos Go to lines: Ir a lineas Not available: No disponible Payment on account...: Pago a cuenta... -Zone Hour: Hora zona -Zone Minute: Minuto zona \ No newline at end of file +Closure: Cierre diff --git a/modules/ticket/front/index/style.scss b/modules/ticket/front/index/style.scss index b5722b9b1..6a935c7f6 100644 --- a/modules/ticket/front/index/style.scss +++ b/modules/ticket/front/index/style.scss @@ -1,11 +1,17 @@ @import "variables"; -vn-ticket-index vn-icon-menu { - padding-top: 30px; - padding-left: 10px; - color: $color-main; - - li { - color: initial; +vn-ticket-index { + vn-icon-menu { + padding-top: 30px; + padding-left: 10px; + color: $color-main; + + li { + color: initial; + } } -} + + vn-searchbar { + width: 100% + } +} \ No newline at end of file diff --git a/modules/ticket/front/locale/es.yml b/modules/ticket/front/locale/es.yml index d57ca3fdf..a1abc81fc 100644 --- a/modules/ticket/front/locale/es.yml +++ b/modules/ticket/front/locale/es.yml @@ -44,6 +44,7 @@ Price gap: Diferencia de precio Quantity: Cantidad Remove lines: Borrar lineas Route: Ruta +SET OK: PONER OK Shipment: Salida Shipped: F. envío Some fields are invalid: Algunos campos no son válidos diff --git a/modules/ticket/front/request/create/index.html b/modules/ticket/front/request/create/index.html index 95ea8b550..b03e87f6a 100644 --- a/modules/ticket/front/request/create/index.html +++ b/modules/ticket/front/request/create/index.html @@ -27,7 +27,8 @@ field="$ctrl.ticketRequest.quantity"> diff --git a/modules/ticket/front/sale-checked/index.html b/modules/ticket/front/sale-checked/index.html index 4126e3477..cc4db0aaf 100644 --- a/modules/ticket/front/sale-checked/index.html +++ b/modules/ticket/front/sale-checked/index.html @@ -37,6 +37,7 @@ diff --git a/modules/ticket/front/sale-tracking/index.html b/modules/ticket/front/sale-tracking/index.html index 020052e01..c3c918c09 100644 --- a/modules/ticket/front/sale-tracking/index.html +++ b/modules/ticket/front/sale-tracking/index.html @@ -41,6 +41,7 @@ diff --git a/modules/ticket/front/sale/editDiscount.html b/modules/ticket/front/sale/editDiscount.html index 7648d2ddc..e4c7cf9cd 100644 --- a/modules/ticket/front/sale/editDiscount.html +++ b/modules/ticket/front/sale/editDiscount.html @@ -13,8 +13,6 @@

New price

-

{{($ctrl.edit[0].quantity * $ctrl.edit[0].price) - - (($ctrl.newDiscount * ($ctrl.edit[0].quantity * $ctrl.edit[0].price))/100) - | currency: 'EUR':2}}

+

{{$ctrl.newPrice | currency: 'EUR':2}}

\ No newline at end of file diff --git a/modules/ticket/front/sale/editDiscount.js b/modules/ticket/front/sale/editDiscount.js index 2ad12b159..e623e2eba 100644 --- a/modules/ticket/front/sale/editDiscount.js +++ b/modules/ticket/front/sale/editDiscount.js @@ -28,6 +28,20 @@ class Controller { return this._bulk; } + get newDiscount() { + return this._newDiscount; + } + + set newDiscount(value) { + this._newDiscount = value; + this.updateNewPrice(); + } + + updateNewPrice() { + if (this.newDiscount && this.edit[0]) + this.newPrice = (this.edit[0].quantity * this.edit[0].price) - ((this.newDiscount * (this.edit[0].quantity * this.edit[0].price)) / 100); + } + setNewDiscount() { if (!this.newDiscount && this.edit[0]) this.newDiscount = this.edit[0].discount; diff --git a/modules/ticket/front/sale/index.html b/modules/ticket/front/sale/index.html index 454bab75c..3e2900101 100644 --- a/modules/ticket/front/sale/index.html +++ b/modules/ticket/front/sale/index.html @@ -11,12 +11,13 @@ @@ -92,66 +93,86 @@ + vn-tooltip="{{::$ctrl.$translate.instant('Reserved')}}"> + - - - - - - {{::sale.itemFk | zeroFill:6}} + + + + + + + {{sale.itemFk | zeroFill:6}} - - - {{sale.quantity}} - - - - - - + + + + + + + + {{sale.quantity}} + + + + + + + + item="sale.item" + name="sale.concept" + sub-name="sale.subName"> - - - - {{sale.price | currency: 'EUR':2}} - - - + + + + + + + + {{sale.price | currency: 'EUR':2}} - - - - {{sale.discount}} % - - - - {{sale.discount}} % - - - {{$ctrl.getSaleTotal(sale) | currency: 'EUR':2}} - - - - - + + + + + {{sale.discount | percentage}} + + + + {{$ctrl.getSaleTotal(sale) | currency: 'EUR':2}} + + + + + + + + @@ -186,9 +207,7 @@

New price

-

{{($ctrl.sale.quantity * $ctrl.editedPrice) - - (($ctrl.sale.discount * ($ctrl.sale.quantity * $ctrl.editedPrice))/100) - | currency: 'EUR':2}}

+

{{$ctrl.newPrice | currency: 'EUR':2}}

@@ -249,7 +268,9 @@ - No results + + No results + \ No newline at end of file diff --git a/modules/ticket/front/sale/index.js b/modules/ticket/front/sale/index.js index 0293f12d0..909f6068b 100644 --- a/modules/ticket/front/sale/index.js +++ b/modules/ticket/front/sale/index.js @@ -9,7 +9,6 @@ class Controller { this.$state = $state; this.$stateParams = $state.params; this.$http = $http; - this.deletable = false; this.edit = {}; this.moreOptions = [ {callback: this.markAsReserved, name: 'Mark as reserved'}, @@ -18,17 +17,26 @@ class Controller { {callback: this.createClaim, name: 'Add claim'}, {callback: this.showSMSDialog, name: 'Send SMS'} ]; - + this._sales = []; this.imagesPath = '//verdnatura.es/vn-image-data/catalog'; } + get sales() { + return this._sales; + } + set sales(value) { this._sales = value; this.refreshTotal(); } - get sales() { - return this._sales; + get editedPrice() { + return this._editedPrice; + } + + set editedPrice(value) { + this._editedPrice = value; + this.updateNewPrice(); } refreshTotal() { @@ -44,6 +52,9 @@ class Controller { } getSaleTotal(sale) { + if (!sale.quantity || !sale.price) + return; + return sale.quantity * sale.price * ((100 - sale.discount) / 100); } @@ -91,22 +102,51 @@ class Controller { return false; } + /** + * Returns checked instances + * + * @return {Array} Checked instances + */ getCheckedLines() { - let lines = []; - let data = this.sales; - if (data) { - for (let i = 0; i < data.length; i++) { - if (data[i].checked) - lines.push({id: data[i].id, instance: i}); - } - } - return lines; + if (!this.sales) return; + + return this.sales.filter(sale => { + return sale.checked; + }); + } + + /** + * Returns an array of indexes + * from checked instances + * + * @return {Array} Indexes of checked instances + */ + getCheckedLinesIndex() { + if (!this.sales) return; + + let indexes = []; + this.sales.forEach((sale, index) => { + if (sale.checked) indexes.push(index); + }); + + return indexes; + } + + removeCheckedLines() { + const sales = this.getCheckedLines(); + + sales.forEach(sale => { + const index = this.sales.indexOf(sale); + this.sales.splice(index, 1); + }); + + this.refreshTotal(); } onStateOkClick() { let filter = {where: {code: 'OK'}, fields: ['id']}; let json = encodeURIComponent(JSON.stringify(filter)); - this.$http.get(`/api/States?filter=${json}`).then(res => { + return this.$http.get(`/api/States?filter=${json}`).then(res => { this.onStateChange(res.data[0].id); }); } @@ -122,21 +162,21 @@ class Controller { onRemoveLinesClick(response) { if (response === 'ACCEPT') { let sales = this.getCheckedLines(); + + // Remove unsaved instances + sales.forEach((sale, index) => { + if (!sale.id) sales.splice(index); + }); + let params = {sales: sales, actualTicketFk: this.ticket.id}; let query = `/api/Sales/removes`; this.$http.post(query, params).then(() => { - this.removeInstances(sales); + this.removeCheckedLines(); this.vnApp.showSuccess(this.$translate.instant('Data saved!')); }); } } - removeInstances(instances) { - for (let i of instances) - this.sales.splice(i.instance, 1); - this.refreshTotal(); - } - showRemoveLinesDialog() { this.$scope.deleteLines.show(); } @@ -200,14 +240,12 @@ class Controller { } createClaim() { - let claim = { + const claim = { ticketFk: this.ticket.id, clientFk: this.ticket.clientFk, ticketCreated: this.ticket.shipped }; - let sales = this.getCheckedLines(); - for (let i = 0; i < sales.length; i++) - sales[i].quantity = this.sales[sales[i].instance].quantity; + const sales = this.getCheckedLines(); this.$http.post(`/api/Claims/createFromSales`, {claim: claim, sales: sales}).then(res => { this.$state.go('claim.card.basicData', {id: res.data.id}); }); @@ -247,6 +285,7 @@ class Controller { } showEditPricePopover(event, sale) { + if (!this.isEditable) return; this.sale = sale; this.editedPrice = this.sale.price; this.edit = { @@ -260,17 +299,24 @@ class Controller { updatePrice() { if (this.editedPrice != this.sale.price) { - this.$http.post(`/api/Sales/${this.edit.id}/updatePrice`, {newPrice: this.editedPrice}).then(() => { - this.sale.price = this.edit.price; + this.$http.post(`/api/Sales/${this.edit.id}/updatePrice`, {newPrice: this.editedPrice}).then(res => { + if (res.data) + this.sale.price = res.data.price; + this.vnApp.showSuccess(this.$translate.instant('Data saved!')); - this.$scope.model.refresh(); }); } this.$scope.editPricePopover.hide(); } - showEditPopover(event, sale) { + updateNewPrice() { + this.newPrice = this.sale.quantity * this.editedPrice - ((this.sale.discount * (this.sale.quantity * this.editedPrice)) / 100); + } + + showEditDiscountPopover(event, sale) { + if (!this.isEditable) return; + this.sale = sale; this.edit = [{ ticketFk: this.ticket.id, @@ -298,24 +344,14 @@ class Controller { this.$scope.editPopover.hide(); } - updateQuantity(id, quantity) { - this.$http.post(`/api/Sales/${id}/updateQuantity`, {quantity: parseInt(quantity)}).then(() => { - this.vnApp.showSuccess(this.$translate.instant('Data saved!')); - }).catch(e => { - this.vnApp.showError(e.data.error.message); - }).finally(() => { - this.$scope.model.refresh(); - }); - } - - /** + /* * Unmark sale as reserved */ unmarkAsReserved() { this.setReserved(false); } - /** + /* * Mark sale as reserved */ markAsReserved() { @@ -323,11 +359,22 @@ class Controller { } setReserved(reserved) { - let sales = this.getCheckedLines(); - let params = {sales: sales, ticketFk: this.ticket.id, reserved: reserved}; + let selectedSales = this.getCheckedLines(); + let params = {sales: selectedSales, ticketFk: this.ticket.id, reserved: reserved}; - this.$http.post(`/api/Sales/reserve`, params).then(() => { - this.$scope.model.refresh(); + let reservedSales = new Map(); + this.$http.post(`/api/Sales/reserve`, params).then(res => { + let isReserved = res.config.data.reserved; + + res.config.data.sales.forEach(sale => { + reservedSales.set(sale.id, {reserved: isReserved}); + }); + + this.sales.forEach(sale => { + const reservedSale = reservedSales.get(sale.id); + if (reservedSale) + sale.reserved = reservedSale.reserved; + }); }); } @@ -340,10 +387,9 @@ class Controller { showSMSDialog() { const address = this.ticket.address; - const lines = this.getCheckedLines(); - const items = lines.map(line => { - const instance = this.sales[line.instance]; - return `${instance.quantity} ${instance.concept}`; + const sales = this.getCheckedLines(); + const items = sales.map(sale => { + return `${sale.quantity} ${sale.concept}`; }); const notAvailables = items.join(', '); const params = { @@ -367,6 +413,79 @@ class Controller { hasInvoice() { return this.ticket.refFk !== null; } + + /** + * Inserts a new instance + */ + add() { + this.$scope.model.insert({}); + } + + /* + * Creates a new sale if it's a new instance + * Updates the sale quantity for existing instance + */ + onChangeQuantity(sale) { + if (!sale.id) + this.addSale(sale); + else + this.updateQuantity(sale); + } + + /* + * Updates a sale quantity + */ + updateQuantity(sale) { + const data = {quantity: parseInt(sale.quantity)}; + const query = `/api/Sales/${sale.id}/updateQuantity`; + this.$http.post(query, data).then(() => { + this.vnApp.showSuccess(this.$translate.instant('Data saved!')); + }).catch(e => { + this.$scope.model.refresh(); + throw e; + }); + } + + /* + * Updates a sale concept + */ + updateConcept(sale) { + const data = {concept: sale.concept}; + const query = `/api/Sales/${sale.id}`; + this.$http.patch(query, data).then(() => { + this.vnApp.showSuccess(this.$translate.instant('Data saved!')); + }).catch(e => { + this.$scope.model.refresh(); + throw e; + }); + } + + /* + * Adds a new sale + */ + addSale(sale) { + const data = { + itemId: sale.itemFk, + quantity: sale.quantity + }; + const query = `/api/tickets/${this.ticket.id}/addSale`; + this.$http.post(query, data).then(res => { + if (!res.data) return; + + const newSale = res.data; + + sale.id = newSale.id; + sale.image = newSale.item.image; + sale.subName = newSale.item.subName; + sale.concept = newSale.concept; + sale.quantity = newSale.quantity; + sale.discount = newSale.discount; + sale.price = newSale.price; + sale.item = newSale.item; + + this.vnApp.showSuccess(this.$translate.instant('Data saved!')); + }); + } } Controller.$inject = ['$scope', '$state', '$http', 'vnApp', '$translate']; diff --git a/modules/ticket/front/sale/locale/es.yml b/modules/ticket/front/sale/locale/es.yml index 235ca9e41..b8966232f 100644 --- a/modules/ticket/front/sale/locale/es.yml +++ b/modules/ticket/front/sale/locale/es.yml @@ -1,4 +1,5 @@ New price: Nuevo precio +Add item: Añadir artículo Add turn: Añadir a turno Delete ticket: Borrar ticket Mark as reserved: Marcar como reservado diff --git a/modules/ticket/front/sale/specs/index.spec.js b/modules/ticket/front/sale/specs/index.spec.js index b1cadd0fc..938b4c252 100644 --- a/modules/ticket/front/sale/specs/index.spec.js +++ b/modules/ticket/front/sale/specs/index.spec.js @@ -64,8 +64,10 @@ describe('Ticket', () => { it('should perform a query and call windows open', () => { spyOn(controller.$state, 'go'); - let res = {id: 1}; - $httpBackend.expectPOST(`/api/Claims/createFromSales`).respond(res); + const claim = {id: 1}; + const sales = [{id: 1}, {id: 2}]; + $httpBackend.when('POST', `/api/Claims/createFromSales`, {claim, sales}).respond(claim); + $httpBackend.expect('POST', `/api/Claims/createFromSales`).respond(claim); controller.createClaim(); $httpBackend.flush(); @@ -93,7 +95,7 @@ describe('Ticket', () => { it('should make an array of the instances with the property checked true()', () => { let sale = controller.sales[1]; sale.checked = true; - let expectedResult = [{id: sale.id, instance: 1}]; + let expectedResult = [sale]; expect(controller.getCheckedLines()).toEqual(expectedResult); }); @@ -156,12 +158,10 @@ describe('Ticket', () => { describe('setReserved()', () => { it('should call getCheckedLines, $.index.accept and make a query ', () => { - controller.sales[1].checked = true; + const sale = controller.sales[1]; + sale.checked = true; let expectedRequest = { - sales: [{ - id: sales[1].id, - instance: 1 - }], + sales: [sale], ticketFk: ticket.id, reserved: false }; @@ -184,5 +184,55 @@ describe('Ticket', () => { expect(controller.newSMS.message).not.toEqual(''); }); }); + + describe('updateQuantity()', () => { + it('should make a POST query saving sale quantity', () => { + const data = {quantity: 10}; + const sale = sales[0]; + sale.quantity = 10; + + $httpBackend.when('POST', `/api/Sales/1/updateQuantity`, data).respond(); + $httpBackend.expect('POST', `/api/Sales/1/updateQuantity`, data).respond(); + controller.updateQuantity(sale); + $httpBackend.flush(); + }); + }); + + describe('updateConcept()', () => { + it('should make a POST query saving sale concept', () => { + const data = {concept: 'My new weapon'}; + const sale = sales[0]; + sale.concept = 'My new weapon'; + + $httpBackend.when('PATCH', `/api/Sales/1`, data).respond(); + $httpBackend.expect('PATCH', `/api/Sales/1`, data).respond(); + controller.updateConcept(sale); + $httpBackend.flush(); + }); + }); + + describe('addSale()', () => { + it('should make a POST query adding a new sale', () => { + const newSale = {itemFk: 4, quantity: 10}; + const params = {itemId: 4, quantity: 10}; + + const expectedResult = { + id: 30, + quantity: 10, + discount: 0, + price: 0, + itemFk: 4, + item: { + subName: 'Item subName', + image: '30.png' + } + }; + + $httpBackend.when('POST', `/api/tickets/1/addSale`, params).respond(expectedResult); + $httpBackend.expect('POST', `/api/tickets/1/addSale`, params).respond(expectedResult); + controller.addSale(newSale); + $httpBackend.flush(); + }); + }); }); }); diff --git a/modules/ticket/front/summary/index.html b/modules/ticket/front/summary/index.html index 0e6052d3d..7105e0515 100644 --- a/modules/ticket/front/summary/index.html +++ b/modules/ticket/front/summary/index.html @@ -2,7 +2,7 @@
Ticket #{{$ctrl.summary.id}} - {{$ctrl.summary.client.name}} ({{$ctrl.summary.client.id}}) - {{$ctrl.summary.nickname}} @@ -101,6 +101,7 @@ {{::sale.price | currency: 'EUR':2}} diff --git a/modules/ticket/front/volume/index.html b/modules/ticket/front/volume/index.html index cfb095bd5..ef21d8f50 100644 --- a/modules/ticket/front/volume/index.html +++ b/modules/ticket/front/volume/index.html @@ -46,6 +46,7 @@ {{::sale.quantity}} diff --git a/modules/worker/back/methods/worker-mana/specs/getCurrentWorkerMana.spec.js b/modules/worker/back/methods/worker-mana/specs/getCurrentWorkerMana.spec.js index fe0b119f3..8d626e720 100644 --- a/modules/worker/back/methods/worker-mana/specs/getCurrentWorkerMana.spec.js +++ b/modules/worker/back/methods/worker-mana/specs/getCurrentWorkerMana.spec.js @@ -4,7 +4,7 @@ describe('workerMana getCurrentWorkerMana()', () => { it('should get the mana of the logged worker', async() => { let mana = await app.models.WorkerMana.getCurrentWorkerMana({req: {accessToken: {userId: 18}}}); - expect(mana).toEqual(222); + expect(mana).toEqual(124); }); it('should return 0 if the user doesnt uses mana', async() => { diff --git a/modules/worker/front/calendar/index.html b/modules/worker/front/calendar/index.html index 9952e1d81..9427ca9e8 100644 --- a/modules/worker/front/calendar/index.html +++ b/modules/worker/front/calendar/index.html @@ -3,7 +3,7 @@ data="$ctrl.absenceTypes" auto-load="true">
- +
{ const absenceType = absence.absenceType; events.push({ + name: absenceType.name, + description: absenceType.name, dated: absence.dated, - title: absenceType.name, - style: { - background: absenceType.rgb - } + style: {backgroundColor: absenceType.rgb} }); }); this.events = this.events.concat(events); diff --git a/modules/worker/front/calendar/index.spec.js b/modules/worker/front/calendar/index.spec.js index 194ea8f8b..f29b8fecc 100644 --- a/modules/worker/front/calendar/index.spec.js +++ b/modules/worker/front/calendar/index.spec.js @@ -93,7 +93,7 @@ describe('Worker', () => { controller.setHolidays(data); expect(controller.events.length).toEqual(2); - expect(controller.events[0].title).toEqual('New year'); + expect(controller.events[0].name).toEqual('New year'); expect(controller.events[0].isRemovable).toEqual(false); }); }); @@ -107,9 +107,9 @@ describe('Worker', () => { controller.setWorkerCalendar(data); expect(controller.events.length).toEqual(2); - expect(controller.events[0].title).toEqual('Holiday'); + expect(controller.events[0].name).toEqual('Holiday'); expect(controller.events[0].style).toBeDefined(); - expect(controller.events[1].title).toEqual('Leave'); + expect(controller.events[1].name).toEqual('Leave'); expect(controller.events[1].style).toBeDefined(); }); }); diff --git a/modules/worker/front/calendar/style.scss b/modules/worker/front/calendar/style.scss index 70503336a..5028edf32 100644 --- a/modules/worker/front/calendar/style.scss +++ b/modules/worker/front/calendar/style.scss @@ -1,5 +1,13 @@ @import "variables"; +.calendar-list .calendar { + border-bottom:1px solid #ddd +} + +.calendar-list .calendar:nth-child(2n + 1) { + border-right:1px solid #ddd +} + .calendar-list { align-items: flex-start; flex-wrap: wrap; @@ -9,7 +17,7 @@ box-sizing: border-box; padding: $pad-medium; overflow: hidden; - width: 20em + width: 50% } } diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..dfbc9f198 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15666 @@ +{ + "name": "salix-back", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.4.5.tgz", + "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helpers": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.5", + "@babel/types": "^7.4.4", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.4.4.tgz", + "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", + "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-define-map": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.4.4.tgz", + "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", + "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.4.4.tgz", + "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.4.4.tgz", + "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.4.4.tgz", + "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } + }, + "@babel/helpers": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.4.4.tgz", + "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", + "dev": true, + "requires": { + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.4.5.tgz", + "integrity": "sha512-9mUqkL1FF5T7f0WDFfAoDdiMVPWsdD1gZYzSnaXsxUCUqzuch/8of9G3VUSNiZmMBoRxT3neyVsqeiL/ZPcjew==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.4.4.tgz", + "integrity": "sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", + "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.4.4.tgz", + "integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.4.4.tgz", + "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.11" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.4.4.tgz", + "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.4.4.tgz", + "integrity": "sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", + "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", + "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", + "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.4.4.tgz", + "integrity": "sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.4.4.tgz", + "integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", + "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", + "dev": true, + "requires": { + "regexp-tree": "^0.1.6" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", + "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", + "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", + "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", + "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/polyfill": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz", + "integrity": "sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg==", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz", + "integrity": "sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==", + "dev": true + } + } + }, + "@babel/preset-env": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.4.5.tgz", + "integrity": "sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.4.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.4.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.4.4", + "@babel/plugin-transform-classes": "^7.4.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.4.4", + "@babel/plugin-transform-modules-systemjs": "^7.4.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + } + }, + "@babel/register": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.4.4.tgz", + "integrity": "sha512-sn51H88GRa00+ZoMqCVgOphmswG4b7mhf9VOB0LUBAieykq2GnRFerlN+JQkO/ntT7wz4jaHNSRPg9IdMPEUkA==", + "dev": true, + "requires": { + "core-js": "^3.0.0", + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.11", + "mkdirp": "^0.5.1", + "pirates": "^4.0.0", + "source-map-support": "^0.5.9" + }, + "dependencies": { + "core-js": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.1.4.tgz", + "integrity": "sha512-YNZN8lt82XIMLnLirj9MhKDFZHalwzzrL9YLt6eb0T5D0EDl4IQ90IGkua8mHbnxNrkj1d8hbdizMc0Qmg1WnQ==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/traverse": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.4.5.tgz", + "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.4.4.tgz", + "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" + } + }, + "@google-cloud/common": { + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@google-cloud/common/-/common-0.32.1.tgz", + "integrity": "sha512-bLdPzFvvBMtVkwsoBtygE9oUm3yrNmPa71gvOgucYI/GqvNP2tb6RYsDHPq98kvignhcgHGDI5wyNgxaCo8bKQ==", + "requires": { + "@google-cloud/projectify": "^0.3.3", + "@google-cloud/promisify": "^0.4.0", + "@types/request": "^2.48.1", + "arrify": "^2.0.0", + "duplexify": "^3.6.0", + "ent": "^2.2.0", + "extend": "^3.0.2", + "google-auth-library": "^3.1.1", + "pify": "^4.0.1", + "retry-request": "^4.0.0", + "teeny-request": "^3.11.3" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + } + } + }, + "@google-cloud/paginator": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-0.2.0.tgz", + "integrity": "sha512-2ZSARojHDhkLvQ+CS32K+iUhBsWg3AEw+uxtqblA7xoCABDyhpj99FPp35xy6A+XlzMhOSrHHaxFE+t6ZTQq0w==", + "requires": { + "arrify": "^1.0.1", + "extend": "^3.0.1", + "split-array-stream": "^2.0.0", + "stream-events": "^1.0.4" + } + }, + "@google-cloud/projectify": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-0.3.3.tgz", + "integrity": "sha512-7522YHQ4IhaafgSunsFF15nG0TGVmxgXidy9cITMe+256RgqfcrfWphiMufW+Ou4kqagW/u3yxwbzVEW3dk2Uw==" + }, + "@google-cloud/promisify": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-0.4.0.tgz", + "integrity": "sha512-4yAHDC52TEMCNcMzVC8WlqnKKKq+Ssi2lXoUg9zWWkZ6U6tq9ZBRYLHHCRdfU+EU9YJsVmivwGcKYCjRGjnf4Q==" + }, + "@google-cloud/storage": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@google-cloud/storage/-/storage-2.5.0.tgz", + "integrity": "sha512-q1mwB6RUebIahbA3eriRs8DbG2Ij81Ynb9k8hMqTPkmbd8/S6Z0d6hVvfPmnyvX9Ej13IcmEYIbymuq/RBLghA==", + "requires": { + "@google-cloud/common": "^0.32.0", + "@google-cloud/paginator": "^0.2.0", + "@google-cloud/promisify": "^0.4.0", + "arrify": "^1.0.0", + "async": "^2.0.1", + "compressible": "^2.0.12", + "concat-stream": "^2.0.0", + "date-and-time": "^0.6.3", + "duplexify": "^3.5.0", + "extend": "^3.0.0", + "gcs-resumable-upload": "^1.0.0", + "hash-stream-validation": "^0.2.1", + "mime": "^2.2.0", + "mime-types": "^2.0.8", + "onetime": "^5.1.0", + "pumpify": "^1.5.1", + "snakeize": "^0.1.0", + "stream-events": "^1.0.1", + "teeny-request": "^3.11.3", + "through2": "^3.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + } + } + }, + "@kyleshockey/object-assign-deep": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@kyleshockey/object-assign-deep/-/object-assign-deep-0.4.2.tgz", + "integrity": "sha1-hJAPDu/DcnmPR1G1JigwuCCJIuw=" + }, + "@types/body-parser": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.17.0.tgz", + "integrity": "sha512-a2+YeUjPkztKJu5aIF2yArYFQQp8d51wZ7DavSHjFuY1mqVgidGyzEQ41JIVNy82fXj8yPgy2vJmfIywgESW6w==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/caseless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz", + "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==" + }, + "@types/connect": { + "version": "3.4.32", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.32.tgz", + "integrity": "sha512-4r8qa0quOvh7lGD0pre62CAb1oni1OO6ecJLGCezTmhQ8Fz50Arx9RUszryR8KlgK6avuSXvviL6yWyViQABOg==", + "requires": { + "@types/node": "*" + } + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/express": { + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.0.tgz", + "integrity": "sha512-CjaMu57cjgjuZbh9DpkloeGxV45CnMGlVd+XpG7Gm9QgVrd7KFq+X4HY0vM+2v0bczS48Wg7bvnMY5TN+Xmcfw==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.16.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.16.7.tgz", + "integrity": "sha512-847KvL8Q1y3TtFLRTXcVakErLJQgdpFSaq+k043xefz9raEf0C7HalpSY7OW5PyjCnY8P7bPW5t/Co9qqp+USg==", + "requires": { + "@types/node": "*", + "@types/range-parser": "*" + } + }, + "@types/form-data": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", + "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", + "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "dev": true, + "requires": { + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/mime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz", + "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw==" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "10.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.10.tgz", + "integrity": "sha512-V8wj+w2YMNvGuhgl/MA5fmTxgjmVHVoasfIaxMMZJV6Y8Kk+Ydpi1z2whoShDCJ2BuNVoqH/h1hrygnBxkrw/Q==" + }, + "@types/range-parser": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", + "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" + }, + "@types/request": { + "version": "2.48.1", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.1.tgz", + "integrity": "sha512-ZgEZ1TiD+KGA9LiAAPPJL68Id2UWfeSO62ijSXZjFJArVV+2pKcsVHmrcu+1oiE3q6eDGiFiSolRc4JHoerBBg==", + "requires": { + "@types/caseless": "*", + "@types/form-data": "*", + "@types/node": "*", + "@types/tough-cookie": "*" + } + }, + "@types/serve-static": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.2.tgz", + "integrity": "sha512-/BZ4QRLpH/bNYgZgwhKEh+5AsboDBcUdlBYgzoLX0fpj3Y2gp6EApyOlM3bK53wQS/OE1SrdSYBAbux2D1528Q==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/mime": "*" + } + }, + "@types/tough-cookie": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-2.3.5.tgz", + "integrity": "sha512-SCcK7mvGi3+ZNz833RRjFIxrn4gI1PPR3NtuIS+6vMkvmsGjosqTJwRt5bAEFLRz+wtJMWv8+uOnZf2hi2QXTg==" + }, + "@webassemblyjs/ast": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", + "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", + "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", + "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", + "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", + "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", + "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", + "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", + "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", + "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", + "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", + "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", + "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", + "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/helper-wasm-section": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-opt": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "@webassemblyjs/wast-printer": "1.8.5" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", + "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", + "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-buffer": "1.8.5", + "@webassemblyjs/wasm-gen": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", + "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-wasm-bytecode": "1.8.5", + "@webassemblyjs/ieee754": "1.8.5", + "@webassemblyjs/leb128": "1.8.5", + "@webassemblyjs/utf8": "1.8.5" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", + "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/floating-point-hex-parser": "1.8.5", + "@webassemblyjs/helper-api-error": "1.8.5", + "@webassemblyjs/helper-code-frame": "1.8.5", + "@webassemblyjs/helper-fsm": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", + "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/wast-parser": "1.8.5", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "accept-language": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/accept-language/-/accept-language-3.0.18.tgz", + "integrity": "sha1-9QJfF79lpGaoRYOMz5jNuHfYM4Q=", + "requires": { + "bcp47": "^1.1.2", + "stable": "^0.1.6" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", + "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", + "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", + "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "ajv": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", + "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.0.tgz", + "integrity": "sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw==", + "dev": true + }, + "ambi": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ambi/-/ambi-2.5.0.tgz", + "integrity": "sha1-fI43K+SIkRV+fOoBy2+RQ9H3QiA=", + "requires": { + "editions": "^1.1.1", + "typechecker": "^4.3.0" + }, + "dependencies": { + "typechecker": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.7.0.tgz", + "integrity": "sha512-4LHc1KMNJ6NDGO+dSM/yNfZQRtp8NN7psYrPHUblD62Dvkwsp3VShsbM78kOgpcmMkRTgvwdKOTjctS+uMllgQ==", + "requires": { + "editions": "^2.1.0" + }, + "dependencies": { + "editions": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz", + "integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==", + "requires": { + "errlop": "^1.1.1", + "semver": "^5.6.0" + } + } + } + } + } + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "angular-mocks": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.7.8.tgz", + "integrity": "sha512-LB13ESBT0eJrhQhfPXyLR9qm4LI9g44hyBFwUqZKEHEA4DpfxVTu0ONipiNoN0zWtmEAezA8u2gjcoaO2TStig==", + "dev": true + }, + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "requires": { + "string-width": "^2.0.0" + } + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-cyan": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz", + "integrity": "sha1-U4rlKK+JgvKK4w2G8vF0VtJgmHM=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + } + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-hook-jl": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/async-hook-jl/-/async-hook-jl-1.7.6.tgz", + "integrity": "sha512-gFaHkFfSxTjvoxDMYqDuGHlcRyUuamF8s+ZTtJdDzqjws4mCt7v0vuV79/E2Wr2/riMQgtG4/yUtXWs1gZ7JMg==", + "requires": { + "stack-chain": "^1.3.7" + } + }, + "async-limiter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", + "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==", + "dev": true + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "aws-sdk": { + "version": "2.487.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.487.0.tgz", + "integrity": "sha512-bdImYaIzvRL4nn8DEvI39VCrQYPDeC/PTYg++EBobhaFh8ksbsTzBnIFAn5IxtlRsXWUzaZVyOgRTGqiiS6YHA==", + "requires": { + "buffer": "4.9.1", + "events": "1.1.1", + "ieee754": "1.1.8", + "jmespath": "0.15.0", + "querystring": "0.2.0", + "sax": "1.2.1", + "url": "0.10.3", + "uuid": "3.3.2", + "xml2js": "0.4.19" + }, + "dependencies": { + "sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + }, + "babel-loader": { + "version": "8.0.6", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", + "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "pify": "^4.0.1" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.0.2.tgz", + "integrity": "sha1-R0IRyV5s8qVH20YeT2d4tR0I+mU=" + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcp47": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/bcp47/-/bcp47-1.1.2.tgz", + "integrity": "sha1-NUvjMH/9CEM6ePXh4glYRfifx/4=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=" + }, + "beeper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", + "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", + "dev": true + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "bignumber.js": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz", + "integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==" + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "bops": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bops/-/bops-1.0.0.tgz", + "integrity": "sha1-YxqJKPEXhBfrb3Bs9prNteWk6q0=", + "requires": { + "base64-js": "1.0.2", + "to-utf8": "0.0.1" + } + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "requires": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.3.tgz", + "integrity": "sha512-CNBqTCq22RKM8wKJNowcqihHJ4SkI8CGeK7KOR9tPboXUuS5Zk5lQgzzTbs4oxD8x+6HUshZUa2OyNI9lR93bQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000975", + "electron-to-chromium": "^1.3.164", + "node-releases": "^1.1.23" + } + }, + "btoa": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.1.2.tgz", + "integrity": "sha1-PkC4FmP4HS3WWWpMtxSo3BbPq+A=" + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "bufferstreams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.0.1.tgz", + "integrity": "sha1-z7GtlWjTujz+k1upq92VLeiKqyo=", + "dev": true, + "requires": { + "readable-stream": "^1.0.33" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "camelize": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz", + "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" + }, + "caniuse-lite": { + "version": "1.0.30000979", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000979.tgz", + "integrity": "sha512-gcu45yfq3B7Y+WB05fOMfr0EiSlq+1u+m6rPHyJli/Wy3PVQNGaU7VA4bZE5qw+AU2UVOBR/N5g1bzADUqdvFw==", + "dev": true + }, + "canonical-json": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/canonical-json/-/canonical-json-0.0.4.tgz", + "integrity": "sha1-ZXnAcsPbXEd+xB3JePvyuPQQdKM=" + }, + "capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cldrjs": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cldrjs/-/cldrjs-0.5.1.tgz", + "integrity": "sha512-xyiP8uAm8K1IhmpDndZLraloW1yqu0L+HYdQ7O1aGPxx9Cr+BMnPANlNhSt++UKfxytL2hd2NPXgTjiy7k43Ew==" + }, + "clean-css": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", + "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + } + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "cls-hooked": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/cls-hooked/-/cls-hooked-4.2.2.tgz", + "integrity": "sha512-J4Xj5f5wq/4jAvcdgoGsL3G103BtWpZrMo8NEinRltN+xpTZdI+M38pyQqhuFU/P792xkMFvnKSf+Lm81U1bxw==", + "requires": { + "async-hook-jl": "^1.7.6", + "emitter-listener": "^1.0.1", + "semver": "^5.4.1" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", + "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "requires": { + "mime-db": ">= 1.40.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "configstore": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", + "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "consolidate": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", + "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-security-policy-builder": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/content-security-policy-builder/-/content-security-policy-builder-2.0.0.tgz", + "integrity": "sha512-j+Nhmj1yfZAikJLImCvPJFE29x/UuBi+/MWqggGGc515JKaZrjuei2RhULJmy0MsstW3E3htl002bwmBNMKr7w==" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-props": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.4.tgz", + "integrity": "sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==", + "dev": true, + "requires": { + "each-props": "^1.3.0", + "is-plain-object": "^2.0.1" + } + }, + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" + }, + "core-js-compat": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.1.4.tgz", + "integrity": "sha512-Z5zbO9f1d0YrJdoaQhphVAnKPimX92D6z8lCGphH89MNRxlL1prI9ExJPqVwP0/kgkQCv8c4GJGT8X16yUncOg==", + "dev": true, + "requires": { + "browserslist": "^4.6.2", + "core-js-pure": "3.1.4", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.1.4.tgz", + "integrity": "sha512-uJ4Z7iPNwiu1foygbcZYJsJs1jiXrTTCvxfLDXNhI/I+NHbSIEyr548y4fcsCEyWY0XgfAG/qqaunJ1SThHenA==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "requires": { + "capture-stack-trace": "^1.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-fetch": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-0.0.8.tgz", + "integrity": "sha1-Ae2U3EB98sAPGAf95wCnz6SKIFw=", + "requires": { + "node-fetch": "1.7.3", + "whatwg-fetch": "2.0.3" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "csextends": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/csextends/-/csextends-1.2.0.tgz", + "integrity": "sha512-S/8k1bDTJIwuGgQYmsRoE+8P+ohV32WhQ0l4zqrc0XDdxOhjQQD7/wTZwCzoZX53jSX3V/qwjT+OkPTxWQcmjg==" + }, + "css-loader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz", + "integrity": "sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==", + "dev": true, + "requires": { + "camelcase": "^5.2.0", + "icss-utils": "^4.1.0", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.14", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^2.0.6", + "postcss-modules-scope": "^2.1.0", + "postcss-modules-values": "^2.0.0", + "postcss-value-parser": "^3.3.0", + "schema-utils": "^1.0.0" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + }, + "dependencies": { + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dargs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", + "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=", + "dev": true + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dasherize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dasherize/-/dasherize-2.0.0.tgz", + "integrity": "sha1-bYCcnNDPe7iVLYD8hPoT1H3bEwg=" + }, + "date-and-time": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/date-and-time/-/date-and-time-0.6.3.tgz", + "integrity": "sha512-lcWy3AXDRJOD7MplwZMmNSRM//kZtJaLz4n6D1P5z9wEmZGBKhJRBIr1Xs9KNQJmdXPblvgffynYji4iylUTcA==" + }, + "date-format": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.0.0.tgz", + "integrity": "sha512-M6UqVvZVgFYqZL1SfHsRGIQSz3ZL+qgbsV5Lp1Vj61LZVYuEwcMXYay7DRDtYs2HQQBK5hQtQ0fD9aEJ89V0LA==", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-defaults": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/deep-defaults/-/deep-defaults-1.0.5.tgz", + "integrity": "sha512-5ev/sNkiHTmeTqbDJEDgdQa/Ub0eOMQNix9l+dLLGbwOos7/in5HdvHXI014wqxsET4YeJG9Eq4qj0PJRL8rSw==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-extend": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "denque": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz", + "integrity": "sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "deprecate": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/deprecate/-/deprecate-1.1.0.tgz", + "integrity": "sha512-b5dDNQYdy2vW9WXUD8+RQlfoxvqztLLhDE+T7Gd37I5E8My7nJkKu6FmhdDeRWJ8B+yjZKuwjCta8pgi8kgSqA==", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-prefetch-control": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dns-prefetch-control/-/dns-prefetch-control-0.1.0.tgz", + "integrity": "sha1-YN20V3dOF48flBXwyrsOhbCzALI=" + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dont-sniff-mimetype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.0.0.tgz", + "integrity": "sha1-WTKJDcn04vGeXrAqIAJuXl78j1g=" + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "^1.0.0" + } + }, + "duplex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/duplex/-/duplex-1.0.0.tgz", + "integrity": "sha1-arxcFuwX5MV4V4cnEmcAWQ06Ldo=" + }, + "duplexer": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.0.4.tgz", + "integrity": "sha1-r8t/H4uNdPggcmFx1dZKyeSo/yA=" + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "eachr": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/eachr/-/eachr-2.0.4.tgz", + "integrity": "sha1-Rm98qhBwj2EFCeMsgHqv5X/BIr8=", + "requires": { + "typechecker": "^2.0.8" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz", + "integrity": "sha512-PcW2a0tyTuPHz3tWyYqtK6r1fZ3gp+3Sop8Ph+ZYN81Ob5rwmbHEzaqs10N3BEsaGTkh/ooniXK+WwszGlc2+Q==" + }, + "electron": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/electron/-/electron-2.0.18.tgz", + "integrity": "sha512-PQRHtFvLxHdJzMMIwTddUtkS+Te/fZIs+PHO+zPmTUTBE76V3Od3WRGzMQwiJHxN679licmCKhJpMyxZfDEVWQ==", + "dev": true, + "requires": { + "@types/node": "^8.0.24", + "electron-download": "^3.0.1", + "extract-zip": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "8.10.49", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.49.tgz", + "integrity": "sha512-YX30JVx0PvSmJ3Eqr74fYLGeBxD+C7vIL20ek+GGGLJeUbVYRUW3EzyAXpIRA0K8c8o0UWqR/GwEFYiFoz1T8w==", + "dev": true + } + } + }, + "electron-download": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-3.3.0.tgz", + "integrity": "sha1-LP1U1pZsAZxNSa1l++Zcyc3vaMg=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "fs-extra": "^0.30.0", + "home-path": "^1.0.1", + "minimist": "^1.2.0", + "nugget": "^2.0.0", + "path-exists": "^2.1.0", + "rc": "^1.1.2", + "semver": "^5.3.0", + "sumchecker": "^1.2.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "electron-to-chromium": { + "version": "1.3.185", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.185.tgz", + "integrity": "sha512-h2iW0AHIwix8ifNJg/RkXhQjUDqBME8TvX8qQQMvvF2Tb6F2KnO6febvI+JqI9CdZOWnl90CPxdBRWGDrdk9UA==", + "dev": true + }, + "elliptic": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", + "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emitter-listener": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", + "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", + "requires": { + "shimmer": "^1.2.0" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encode-3986": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/encode-3986/-/encode-3986-1.0.0.tgz", + "integrity": "sha1-lA1RSY+HQa3hhLda0UObMXwMemA=" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "requires": { + "iconv-lite": "~0.4.13" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "enqueue": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/enqueue/-/enqueue-1.0.2.tgz", + "integrity": "sha1-kBTpvOVw7pPKlubI5jrVTBkra8g=", + "dev": true, + "requires": { + "sliced": "0.0.5" + }, + "dependencies": { + "sliced": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-0.0.5.tgz", + "integrity": "sha1-XtwETKTrb3gW1Qui/GPiXY/kcH8=", + "dev": true + } + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=" + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "errlop": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/errlop/-/errlop-1.1.1.tgz", + "integrity": "sha512-WX7QjiPHhsny7/PQvrhS5VMizXXKoKCS3udaBp8gjlARdbn+XmK300eKBAAN0hGyRaTCtRpOaxK+xFVPUJ3zkw==", + "requires": { + "editions": "^2.1.2" + }, + "dependencies": { + "editions": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/editions/-/editions-2.1.3.tgz", + "integrity": "sha512-xDZyVm0A4nLgMNWVVLJvcwMjI80ShiH/27RyLiCnW1L273TcJIA25C4pwJ33AWV01OX6UriP35Xu+lH4S7HWQw==", + "requires": { + "errlop": "^1.1.1", + "semver": "^5.6.0" + } + } + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "errs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/errs/-/errs-0.3.2.tgz", + "integrity": "sha1-eYCZstvTfKK8dJ5TinwTB9C1BJk=" + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.50", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz", + "integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "^1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "es6-templates": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", + "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", + "dev": true, + "requires": { + "recast": "~0.11.12", + "through": "~2.3.6" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", + "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.9.1", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^4.0.3", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^5.0.1", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^6.2.2", + "js-yaml": "^3.13.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.11", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "eslint-config-google": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.11.0.tgz", + "integrity": "sha512-z541Fs5TFaY7/35v/z100InQ2f3V2J7e3u/0yKrnImgsHjh6JWgSRngfC/mZepn/+XN16jUydt64k//kxXc1fw==", + "dev": true + }, + "eslint-plugin-jasmine": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.10.1.tgz", + "integrity": "sha1-VzO3CedR9LxA4x4cFpib0s377Jc=", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", + "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", + "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", + "dev": true + }, + "espree": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", + "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "dev": true, + "requires": { + "acorn": "^6.0.7", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", + "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "dev": true, + "requires": { + "estraverse": "^4.0.0" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=" + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=" + }, + "eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "expect-ct": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/expect-ct/-/expect-ct-0.2.0.tgz", + "integrity": "sha512-6SK3MG/Bbhm8MsgyJAylg+ucIOU71/FzyFalcfu5nY19dH8y/z0tBJU0wrNBXD4B27EoQtqPF/9wqH0iYAd04g==" + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extendr": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/extendr/-/extendr-2.1.0.tgz", + "integrity": "sha1-MBqgu+pWX00tyPVw8qImEahSe1Y=", + "requires": { + "typechecker": "~2.0.1" + }, + "dependencies": { + "typechecker": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz", + "integrity": "sha1-6D2oS7ZMWEzLNFg4V2xAsDN9uC4=" + } + } + }, + "external-editor": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", + "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extract-opts": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-2.2.0.tgz", + "integrity": "sha1-H6KOunNSxttID4hc63GkaBC+bX0=", + "requires": { + "typechecker": "~2.0.1" + }, + "dependencies": { + "typechecker": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.0.8.tgz", + "integrity": "sha1-6D2oS7ZMWEzLNFg4V2xAsDN9uC4=" + } + } + }, + "extract-zip": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", + "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "debug": "2.6.9", + "mkdirp": "0.5.1", + "yauzl": "2.4.1" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=" + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + }, + "fast-json-patch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.1.0.tgz", + "integrity": "sha512-PipOsAKamRw7+CXtKiieehyjUeDVPJ5J7b2kdJYerEf6TSUQoD2ijpVyZ88KQm5YXziff4h762bz3+vzf56khg==", + "requires": { + "deep-equal": "^1.0.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fast-text-encoding": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz", + "integrity": "sha512-R9bHCvweUxxwkDwhjav5vxpFvdPGlVngtqmx4pIZfSUhM/Q4NiIUHB456BAf+Q1Nwu3HEZYONtu+Rya+af4jiQ==" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "feature-policy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/feature-policy/-/feature-policy-0.3.0.tgz", + "integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ==" + }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-loader": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", + "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "filed-mimefix": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/filed-mimefix/-/filed-mimefix-0.1.3.tgz", + "integrity": "sha1-Cwtn0HWmP8dPJv3znH+dQxSWe7U=", + "requires": { + "mime": "^1.4.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-0.1.0.tgz", + "integrity": "sha1-dV0+wU1JqG49L8wIvurVwMornAo=" + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", + "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", + "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", + "dev": true, + "requires": { + "debug": "^3.2.6" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz", + "integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==" + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "frameguard": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/frameguard/-/frameguard-3.1.0.tgz", + "integrity": "sha512-TxgSKM+7LTA6sidjOiSZK9wxY0ffMPY3Wta//MqwmX0nZuEHc8QrkV8Fh3ZhMJeiH+Uyh/tcaarImRy8u77O7g==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "^1.0.0" + } + }, + "fs-extra": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", + "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "fs-readfile-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fs-readfile-promise/-/fs-readfile-promise-2.0.1.tgz", + "integrity": "sha1-gAI4I5gfn//+AWCei+Zo9prknnA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function-source": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/function-source/-/function-source-0.1.0.tgz", + "integrity": "sha1-2RBL8+RniLVUaMAr8bL6vPj8Ga8=", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "g11n-pipeline": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/g11n-pipeline/-/g11n-pipeline-2.0.6.tgz", + "integrity": "sha512-ykVjThha+dGKAR/F31kCUxMn7vu1JrmUkDxMs+h7TvjGbQoNx29hsw618GQKm9eT4Qo6E+8zJAnt0BT3gMtggQ==", + "requires": { + "swagger-client": "^3.8.3" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaxios": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-1.8.4.tgz", + "integrity": "sha512-BoENMnu1Gav18HcpV9IleMPZ9exM+AvUjrAOV4Mzs/vfz2Lu/ABv451iEXByKiMPn2M140uul1txXCg83sAENw==", + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^2.2.1", + "node-fetch": "^2.3.0" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "gcp-metadata": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-1.0.0.tgz", + "integrity": "sha512-Q6HrgfrCQeEircnNP3rCcEgiDv7eF9+1B+1MMgpE190+/+0mjQR8PxeOaRgxZWmdDAF9EIryHB9g1moPiw1SbQ==", + "requires": { + "gaxios": "^1.0.2", + "json-bigint": "^0.3.0" + } + }, + "gcs-resumable-upload": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-1.1.0.tgz", + "integrity": "sha512-uBz7uHqp44xjSDzG3kLbOYZDjxxR/UAGbB47A0cC907W6yd2LkcyFDTHg+bjivkHMwiJlKv4guVWcjPCk2zScg==", + "requires": { + "abort-controller": "^2.0.2", + "configstore": "^4.0.0", + "gaxios": "^1.5.0", + "google-auth-library": "^3.0.0", + "pumpify": "^1.5.1", + "stream-events": "^1.0.4" + }, + "dependencies": { + "abort-controller": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-2.0.3.tgz", + "integrity": "sha512-EPSq5wr2aFyAZ1PejJB32IX9Qd4Nwus+adnp7STYFM5/23nLPBazqZ1oor6ZqbH+4otaaGXTlC8RN5hq3C8w9Q==", + "requires": { + "event-target-shim": "^5.0.0" + } + } + } + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "glob-watcher": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz", + "integrity": "sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "object.defaults": "^1.1.0" + } + }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "requires": { + "ini": "^1.3.4" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globalize": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/globalize/-/globalize-1.4.2.tgz", + "integrity": "sha512-IfKeYI5mAITBmT5EnH8kSQB5uGson4Fkj2XtTpyEbIS7IHNfLHoeTyLJ6tfjiKC6cJXng3IhVurDk5C7ORqFhQ==", + "requires": { + "cldrjs": "^0.5.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "google-auth-library": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-3.1.2.tgz", + "integrity": "sha512-cDQMzTotwyWMrg5jRO7q0A4TL/3GWBgO7I7q5xGKNiiFf9SmGY/OJ1YsLMgI2MVHHsEGyrqYnbnmV1AE+Z6DnQ==", + "requires": { + "base64-js": "^1.3.0", + "fast-text-encoding": "^1.0.0", + "gaxios": "^1.2.1", + "gcp-metadata": "^1.0.0", + "gtoken": "^2.3.2", + "https-proxy-agent": "^2.2.1", + "jws": "^3.1.5", + "lru-cache": "^5.0.0", + "semver": "^5.5.0" + }, + "dependencies": { + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + } + } + }, + "google-p12-pem": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-1.0.4.tgz", + "integrity": "sha512-SwLAUJqUfTB2iS+wFfSS/G9p7bt4eWcc2LyfvmUXe7cWp6p3mpxDo6LLI29MXdU6wvPcQ/up298X7GMC5ylAlA==", + "requires": { + "node-forge": "^0.8.0", + "pify": "^4.0.0" + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "requires": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "dependencies": { + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + } + } + }, + "graceful-fs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.0.tgz", + "integrity": "sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==" + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=" + }, + "gtoken": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-2.3.3.tgz", + "integrity": "sha512-EaB49bu/TCoNeQjhCYKI/CurooBKkGxIqFHsWABW0b25fobBYVTMe84A8EBVVZhl8emiUdNypil9huMOTmyAnw==", + "requires": { + "gaxios": "^1.0.4", + "google-p12-pem": "^1.0.0", + "jws": "^3.1.5", + "mime": "^2.2.0", + "pify": "^4.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + } + } + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "gulp-cli": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.2.0.tgz", + "integrity": "sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.1.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.0.1", + "yargs": "^7.1.0" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "gulp-env": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/gulp-env/-/gulp-env-0.4.0.tgz", + "integrity": "sha1-g3BkaUmjJJPcBtrZSgZDKW+q2+g=", + "dev": true, + "requires": { + "ini": "^1.3.4", + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "gulp-file": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/gulp-file/-/gulp-file-0.4.0.tgz", + "integrity": "sha1-RRNWoqxQicbbkaBEQlKgVDZXAGs=", + "dev": true, + "requires": { + "through2": "^0.4.1", + "vinyl": "^2.1.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz", + "integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=", + "dev": true, + "requires": { + "readable-stream": "~1.0.17", + "xtend": "~2.1.1" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "gulp-install": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gulp-install/-/gulp-install-1.1.0.tgz", + "integrity": "sha1-k4a0bLRmm0cle2rfTj6i6DySiho=", + "dev": true, + "requires": { + "dargs": "^5.1.0", + "gulp-util": "^3.0.7", + "lodash.groupby": "^4.6.0", + "p-queue": "^1.0.0", + "through2": "^2.0.3", + "which": "^1.2.14" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "gulp-jasmine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-jasmine/-/gulp-jasmine-3.0.0.tgz", + "integrity": "sha1-ATFIbwzVmv/toY4AxkOZKpGWljs=", + "dev": true, + "requires": { + "arrify": "^1.0.0", + "jasmine": "^2.8.0", + "jasmine-terminal-reporter": "^1.0.3", + "plugin-error": "^0.1.2", + "through2": "^2.0.0" + }, + "dependencies": { + "arr-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-1.1.0.tgz", + "integrity": "sha1-aHwydYFjWI/vfeezb6vklesaOZo=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "array-slice": "^0.2.3" + } + }, + "arr-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz", + "integrity": "sha1-IPnqtexw9cfSFbEHexw5Fh0pLH0=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "extend-shallow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz", + "integrity": "sha1-Gda/lN/AnXa6cR85uHLSH/TdkHE=", + "dev": true, + "requires": { + "kind-of": "^1.1.0" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "jasmine": { + "version": "2.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz", + "integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.99.0" + } + }, + "kind-of": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=", + "dev": true + }, + "plugin-error": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", + "integrity": "sha1-O5uzM1zPAPQl4HQ34ZJ2ln2kes4=", + "dev": true, + "requires": { + "ansi-cyan": "^0.1.1", + "ansi-red": "^0.1.1", + "arr-diff": "^1.0.1", + "arr-union": "^2.0.1", + "extend-shallow": "^1.1.2" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "gulp-merge-json": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/gulp-merge-json/-/gulp-merge-json-1.3.1.tgz", + "integrity": "sha512-J1N//k3Kfa0RgtzuJdn1pz+ROQF2AH2gOHGhebSc7NvATIKgeRTThPlBaOK+jvYfhNVpviWILAFo8QvUgNV4ig==", + "dev": true, + "requires": { + "deprecate": "^1.0.0", + "json5": "^1.0.1", + "lodash.mergewith": "^4.6.1", + "plugin-error": "^1.0.1", + "through": "^2.3.8", + "vinyl": "^2.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "gulp-nodemon": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/gulp-nodemon/-/gulp-nodemon-2.4.2.tgz", + "integrity": "sha512-r8ShC9yzL3lK5qUsTStMeZRwqLG6t2m4lEBVcfUYzVkiYSeYXu9xYXG5rfvzBOPZOZ2dWugTKr+zeWbnMnzWDA==", + "dev": true, + "requires": { + "colors": "^1.2.1", + "gulp": "^4.0.0", + "nodemon": "^1.18.7" + } + }, + "gulp-print": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/gulp-print/-/gulp-print-2.0.1.tgz", + "integrity": "sha1-Gs7ljqyK8tPErTMp2+RldYOTxBQ=", + "dev": true, + "requires": { + "gulp-util": "^3.0.6", + "map-stream": "~0.0.6" + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "gulp-wrap": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/gulp-wrap/-/gulp-wrap-0.13.0.tgz", + "integrity": "sha1-kPsLSieiZkM4Mv98YSLbXB7olMY=", + "dev": true, + "requires": { + "consolidate": "^0.14.1", + "es6-promise": "^3.1.2", + "fs-readfile-promise": "^2.0.1", + "gulp-util": "^3.0.3", + "js-yaml": "^3.2.6", + "lodash": "^4.11.1", + "node.extend": "^1.1.2", + "through2": "^2.0.1", + "tryit": "^1.0.1", + "vinyl-bufferstream": "^1.0.1" + }, + "dependencies": { + "es6-promise": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", + "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "gulp-yaml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gulp-yaml/-/gulp-yaml-1.0.1.tgz", + "integrity": "sha1-AIHJMhOCe66xJzD5P97on9a+Ey0=", + "dev": true, + "requires": { + "bufferstreams": "1.1.0", + "gulp-util": "^3.0.6", + "js-yaml": "^3.4.3", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "bufferstreams": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.0.tgz", + "integrity": "sha1-BzzRIDCMBnjufXxItp4G60U4reA=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "handle-thing": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", + "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash-stream-validation": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/hash-stream-validation/-/hash-stream-validation-0.2.1.tgz", + "integrity": "sha1-7Mm5l7IYvluzEphii7gHhptz3NE=", + "requires": { + "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "helmet": { + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.18.0.tgz", + "integrity": "sha512-TsKlGE5UVkV0NiQ4PllV9EVfZklPjyzcMEMjWlyI/8S6epqgRT+4s4GHVgc25x0TixsKvp3L7c91HQQt5l0+QA==", + "requires": { + "depd": "2.0.0", + "dns-prefetch-control": "0.1.0", + "dont-sniff-mimetype": "1.0.0", + "expect-ct": "0.2.0", + "feature-policy": "0.3.0", + "frameguard": "3.1.0", + "helmet-crossdomain": "0.3.0", + "helmet-csp": "2.7.1", + "hide-powered-by": "1.0.0", + "hpkp": "2.0.0", + "hsts": "2.2.0", + "ienoopen": "1.1.0", + "nocache": "2.1.0", + "referrer-policy": "1.2.0", + "x-xss-protection": "1.1.0" + } + }, + "helmet-crossdomain": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/helmet-crossdomain/-/helmet-crossdomain-0.3.0.tgz", + "integrity": "sha512-YiXhj0E35nC4Na5EPE4mTfoXMf9JTGpN4OtB4aLqShKuH9d2HNaJX5MQoglO6STVka0uMsHyG5lCut5Kzsy7Lg==" + }, + "helmet-csp": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.7.1.tgz", + "integrity": "sha512-sCHwywg4daQ2mY0YYwXSZRsgcCeerUwxMwNixGA7aMLkVmPTYBl7gJoZDHOZyXkqPrtuDT3s2B1A+RLI7WxSdQ==", + "requires": { + "camelize": "1.0.0", + "content-security-policy-builder": "2.0.0", + "dasherize": "2.0.0", + "platform": "1.3.5" + } + }, + "hide-powered-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hide-powered-by/-/hide-powered-by-1.0.0.tgz", + "integrity": "sha1-SoWtZYgfYoV/xwr3F0oRhNzM4ys=" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-path": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/home-path/-/home-path-1.0.6.tgz", + "integrity": "sha512-wo+yjrdAtoXt43Vy92a+0IPCYViiyLAHyp0QVS4xL/tfvVz5sXIW1ubLZk3nhVkD92fQpUMKX+fzMjr5F489vw==", + "dev": true + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hpkp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hpkp/-/hpkp-2.0.0.tgz", + "integrity": "sha1-EOFCJk52IVpdMMROxD3mTe5tFnI=" + }, + "hsts": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/hsts/-/hsts-2.2.0.tgz", + "integrity": "sha512-ToaTnQ2TbJkochoVcdXYm4HOCliNozlviNsg+X2XQLQvZNI/kCHR9rZxVYpJB3UPcHz80PgxRyWQ7PdU1r+VBQ==", + "requires": { + "depd": "2.0.0" + } + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-loader": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.4.5.tgz", + "integrity": "sha1-X7zYfNY6XEmn/OL+VvQl4Fcpxow=", + "dev": true, + "requires": { + "es6-templates": "^0.2.2", + "fastparse": "^1.1.1", + "html-minifier": "^3.0.1", + "loader-utils": "^1.0.2", + "object-assign": "^4.1.0" + } + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, + "html-webpack-plugin": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.5.tgz", + "integrity": "sha512-y5l4lGxOW3pz3xBTFdfB9rnnrWRPVxlAhX6nrBYIcW+2k2zC3mSp/3DxlWVCMBfnO6UAnoF8OcFn0IMy6kaKAQ==", + "dev": true, + "requires": { + "html-minifier": "^3.5.20", + "loader-utils": "^1.1.0", + "lodash": "^4.17.11", + "pretty-error": "^2.1.1", + "tapable": "^1.1.0", + "util.promisify": "1.0.0" + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-proxy": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "dev": true, + "requires": { + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "http-status": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/http-status/-/http-status-1.3.2.tgz", + "integrity": "sha512-vR1YTaDyi2BukI0UiH01xy92oiZi4in7r0dmSPnrZg72Vu1SzyOLalwWP5NUk1rNiB2L+XVK2lcSVOqaertX8A==" + }, + "httpntlm": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/httpntlm/-/httpntlm-1.6.1.tgz", + "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=", + "requires": { + "httpreq": ">=0.4.22", + "underscore": "~1.7.0" + } + }, + "httpreq": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz", + "integrity": "sha1-QzX/2CzZaWaKOUZckprGHWOTYn8=" + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "i18n": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/i18n/-/i18n-0.8.3.tgz", + "integrity": "sha1-LYzxwkciYCwgQdAbpq5eqlE4jw4=", + "requires": { + "debug": "*", + "make-plural": "^3.0.3", + "math-interval-parser": "^1.1.0", + "messageformat": "^0.3.1", + "mustache": "*", + "sprintf-js": ">=1.0.3" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "ienoopen": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ienoopen/-/ienoopen-1.1.0.tgz", + "integrity": "sha512-MFs36e/ca6ohEKtinTJ5VvAJ6oDRAYFdYXweUnGY9L9vcoqFOU4n2ZhmJ0C4z/cwGZ3YIQRSB3XZ1+ghZkY5NQ==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", + "dev": true + }, + "ignorefs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ignorefs/-/ignorefs-1.2.0.tgz", + "integrity": "sha1-2ln7hYl25KXkNwLM0fKC/byeV1Y=", + "requires": { + "editions": "^1.3.3", + "ignorepatterns": "^1.1.0" + } + }, + "ignorepatterns": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ignorepatterns/-/ignorepatterns-1.1.0.tgz", + "integrity": "sha1-rI9DbyI5td+2bV8NOpBKh6xnzF4=" + }, + "import-fresh": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", + "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflection": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.4.1.tgz", + "integrity": "sha512-/Jw+qPZx4EDYsaT6uz7F4GJRNFMRdKNeUZw3ZnKV8lyuUgz/YWRCSUAJMZSVhSq4Ec0R2oYnyi6b3d4JXcL5Nw==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.11", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" + }, + "is": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz", + "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "requires": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-stream-ended": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "isemail": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-2.2.1.tgz", + "integrity": "sha1-A1PT2aYpUQgMJiwqoKQrjqjp4qY=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-form-data": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz", + "integrity": "sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI=", + "requires": { + "form-data": "^1.0.0-rc3" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "form-data": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", + "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", + "requires": { + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" + } + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=" + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" + } + } + }, + "jasmine": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.4.0.tgz", + "integrity": "sha512-sR9b4n+fnBFDEd7VS2el2DeHgKcPiMVn44rtKFumq9q7P/t8WrxsVIZPob4UDdgcDNCwyDqwxCt4k9TDRmjPoQ==", + "dev": true, + "requires": { + "glob": "^7.1.3", + "jasmine-core": "~3.4.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "jasmine-core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.4.0.tgz", + "integrity": "sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==", + "dev": true + } + } + }, + "jasmine-core": { + "version": "2.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", + "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "dev": true + }, + "jasmine-reporters": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/jasmine-reporters/-/jasmine-reporters-2.3.2.tgz", + "integrity": "sha512-u/7AT9SkuZsUfFBLLzbErohTGNsEUCKaQbsVYnLFW1gEuL2DzmBL4n8v90uZsqIqlWvWUgian8J6yOt5Fyk/+A==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1", + "xmldom": "^0.1.22" + }, + "dependencies": { + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "dev": true + } + } + }, + "jasmine-spec-reporter": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", + "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", + "dev": true, + "requires": { + "colors": "1.1.2" + }, + "dependencies": { + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + } + } + }, + "jasmine-terminal-reporter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jasmine-terminal-reporter/-/jasmine-terminal-reporter-1.0.3.tgz", + "integrity": "sha1-iW8eyP30v2rs3UHFA+2nNH9hUms=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "pluralize": "^1.2.1" + } + }, + "jayson": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-2.1.2.tgz", + "integrity": "sha512-2GejcQnEV35KYTXoBvzALIDdO/1oyEIoJHBnaJFhJhcurv0x2JqUXQW6xlDUhcNOpN9t+d2w+JGA6vOphb+5mg==", + "requires": { + "@types/node": "^10.3.5", + "JSONStream": "^1.3.1", + "commander": "^2.12.2", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.11", + "uuid": "^3.2.1" + } + }, + "jmespath": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "js2xmlparser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", + "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", + "requires": { + "xmlcreate": "^1.0.1" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-bigint": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz", + "integrity": "sha1-DM2RLEuCcNBfBW+9E4FLU9OCWx4=", + "requires": { + "bignumber.js": "^7.0.0" + } + }, + "json-buffer": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-2.0.11.tgz", + "integrity": "sha1-PkQf2jCYvo0eMXGtWRvGKjPi1V8=" + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "just-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.0.0.tgz", + "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", + "dev": true + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "karma": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-4.1.0.tgz", + "integrity": "sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^2.3.2", + "chokidar": "^2.0.3", + "colors": "^1.1.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.11", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", + "socket.io": "2.1.1", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.3.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "karma-chrome-launcher": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz", + "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", + "dev": true, + "requires": { + "fs-access": "^1.0.0", + "which": "^1.2.1" + } + }, + "karma-firefox-launcher": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-1.1.0.tgz", + "integrity": "sha512-LbZ5/XlIXLeQ3cqnCbYLn+rOVhuMIK9aZwlP6eOLGzWdo1UVp7t6CN3DP4SafiRLjexKwHeKHDm0c38Mtd3VxA==", + "dev": true + }, + "karma-jasmine": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", + "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", + "dev": true, + "requires": { + "jasmine-core": "^3.3" + }, + "dependencies": { + "jasmine-core": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.4.0.tgz", + "integrity": "sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==", + "dev": true + } + } + }, + "karma-junit-reporter": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-1.2.0.tgz", + "integrity": "sha1-T5xAzt+xo5X4rvh2q/lhiZF8Y5Y=", + "dev": true, + "requires": { + "path-is-absolute": "^1.0.0", + "xmlbuilder": "8.2.2" + }, + "dependencies": { + "xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true + } + } + }, + "karma-sourcemap-loader": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", + "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2" + } + }, + "karma-webpack": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-3.0.5.tgz", + "integrity": "sha512-nRudGJWstvVuA6Tbju9tyGUfXTtI1UXMXoRHVmM2/78D0q6s/Ye2IC157PKNDC15PWFGR0mVIRtWLAdcfsRJoA==", + "dev": true, + "requires": { + "async": "^2.0.0", + "babel-runtime": "^6.0.0", + "loader-utils": "^1.0.0", + "lodash": "^4.0.0", + "source-map": "^0.5.6", + "webpack-dev-middleware": "^2.0.6" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + } + } + }, + "keypress": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz", + "integrity": "sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo=", + "dev": true + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "requires": { + "package-json": "^4.0.0" + } + }, + "lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "liboneandone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/liboneandone/-/liboneandone-1.2.0.tgz", + "integrity": "sha512-EB6Ak9qw+U4HAOnKqPtatxQ9pLclvtsBsggrvOuD4zclJ5xOeEASojsLKEC3O8KJ1Q4obE2JHhOeDuqWXvkoUQ==", + "requires": { + "mocha": "^2.5.3", + "request": "^2.74.0" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.mergewith": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "log4js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.4.0.tgz", + "integrity": "sha512-xwRvmxFsq8Hb7YeS+XKfvCrsH114bXex6mIwJ2+KmYVi23pB3+hlzyGq1JPycSFTJWNLhD/7PCtM0RfPy6/2yg==", + "dev": true, + "requires": { + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.4", + "streamroller": "^1.0.5" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "loglevel": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.3.tgz", + "integrity": "sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==", + "dev": true + }, + "loglevelnext": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/loglevelnext/-/loglevelnext-1.0.5.tgz", + "integrity": "sha512-V/73qkPuJmx4BcBF19xPBr+0ZRVBhc4POxvZTZdMeXpJ4NItXSJ/MSwuFT0kQJlCbXvdlZoQQ/418bS1y9Jh6A==", + "dev": true, + "requires": { + "es6-symbol": "^3.1.1", + "object.assign": "^4.1.0" + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "dev": true + }, + "loopback": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/loopback/-/loopback-3.26.0.tgz", + "integrity": "sha512-QDREGpTTjLwMgteSIajFXMklW4slbVO5PvY2bPXBn3EUfPzmWXfaDiSlzwbbRbw+cyMUAr2EorL1r0+IsIslWg==", + "requires": { + "async": "^2.0.1", + "bcryptjs": "^2.1.0", + "bluebird": "^3.1.1", + "body-parser": "^1.12.0", + "canonical-json": "0.0.4", + "debug": "^2.1.2", + "depd": "^1.0.0", + "ejs": "^2.3.1", + "express": "^4.14.0", + "inflection": "^1.6.0", + "isemail": "^2.2.1", + "loopback-connector-remote": "^3.0.0", + "loopback-datasource-juggler": "^3.28.0", + "loopback-filters": "^1.0.0", + "loopback-phase": "^3.0.0", + "nodemailer": "^4.0.1", + "nodemailer-direct-transport": "^3.3.2", + "nodemailer-stub-transport": "^1.1.0", + "serve-favicon": "^2.2.0", + "stable": "^0.1.5", + "strong-globalize": "^4.1.1", + "strong-remoting": "^3.11.0", + "uid2": "0.0.3", + "underscore.string": "^3.3.5" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + } + } + }, + "loopback-boot": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/loopback-boot/-/loopback-boot-2.28.0.tgz", + "integrity": "sha512-DTZnoWEMukgG2PrtguJ0Xk9HmIlHgcynGoxkDPa9oFiJ7l+8v92Ym8q7RQxOf8Nqws1kykPQ7PNuia+9AoeC7w==", + "requires": { + "async": "^0.9.2", + "commondir": "^1.0.1", + "debug": "^3.2.6", + "lodash": "^4.17.11", + "semver": "^5.6.0", + "strong-globalize": "^4.1.3", + "toposort": "^2.0.2" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-component-explorer": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/loopback-component-explorer/-/loopback-component-explorer-6.4.0.tgz", + "integrity": "sha512-vDRR4gqkvGOEXh5yL383xGuGxUW9xtF+NCY6/lJu1VAgupKltZxEx3Vw+L3nsGvQrlkJTSmiK3jk72qxkoBtbw==", + "requires": { + "debug": "^3.1.0", + "lodash": "^4.17.11", + "loopback-swagger": "^5.0.0", + "strong-globalize": "^4.1.1", + "swagger-ui": "^2.2.5" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-component-storage": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/loopback-component-storage/-/loopback-component-storage-3.6.1.tgz", + "integrity": "sha512-KM+Q8XhaLtpUfCabeBxYDxs9ZuKyvWiP+iCLmnjem2UZvPp04B5MCLz4A3Rc1jqKQugAe3Ijk15hZQE+Zob8PQ==", + "requires": { + "async": "^2.6.1", + "debug": "^3.1.0", + "formidable": "^1.2.1", + "pkgcloud": "^2.0.0", + "strong-globalize": "^4.1.1", + "uuid": "^3.2.1" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-connector": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/loopback-connector/-/loopback-connector-4.8.0.tgz", + "integrity": "sha512-X5A4YaS6iifomym97ll/J/V+iPZ3Av69J6gmG3QXkq2JtzDtAOh6g2ITgo9aYJ/rzRf9HESH3Ys7aqeppDkpZQ==", + "requires": { + "async": "^2.1.5", + "bluebird": "^3.4.6", + "debug": "^3.1.0", + "msgpack5": "^4.2.0", + "strong-globalize": "^4.1.1", + "uuid": "^3.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-connector-mysql": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/loopback-connector-mysql/-/loopback-connector-mysql-5.4.1.tgz", + "integrity": "sha512-+nXuodxmAVotvXGYrJRyzF21AT+3250Rodhsbh7lUrwRHOsYuja6ulT15P1P9NAoHeoZkzbw6XV9DQSJe6JyXw==", + "requires": { + "async": "^2.6.1", + "debug": "^3.1.0", + "lodash": "^4.17.11", + "loopback-connector": "^4.0.0", + "mysql": "^2.11.1", + "strong-globalize": "^4.1.1" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-connector-remote": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/loopback-connector-remote/-/loopback-connector-remote-3.4.1.tgz", + "integrity": "sha512-O22X2Gcq8YzZF9DvRjOCyktQlASw1/22i/zzqxJHNKSQA5aQYeTB0w5FttOiKxcw6Q/jzL476hUvUE/NaZVZ1Q==", + "requires": { + "loopback-datasource-juggler": "^3.0.0", + "strong-remoting": "^3.0.0" + } + }, + "loopback-context": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/loopback-context/-/loopback-context-3.4.0.tgz", + "integrity": "sha512-Vd9bjgQlqQoG9dkb73waNvWqJFv8HVyrTSYh2JgnclTGEihijIJ4g/tGeOJ9Xwpe/0ZuGdHZN+iGFJRo1U7gdQ==", + "requires": { + "cls-hooked": "^4.2.0" + } + }, + "loopback-datasource-juggler": { + "version": "3.31.1", + "resolved": "https://registry.npmjs.org/loopback-datasource-juggler/-/loopback-datasource-juggler-3.31.1.tgz", + "integrity": "sha512-B33enq3yKcSsMha/xysomLG7y8rHuTOkKPtsZjg5P63PmtAPVZ8DaA5KJPQ8J5rNINdjVactVAvx7hd4h0cEQA==", + "requires": { + "async": "^2.6.0", + "bluebird": "^3.1.1", + "debug": "^3.1.0", + "depd": "^1.0.0", + "inflection": "^1.6.0", + "lodash": "^4.17.4", + "loopback-connector": "^4.4.0", + "minimatch": "^3.0.3", + "qs": "^6.5.0", + "shortid": "^2.2.6", + "strong-globalize": "^4.1.1", + "traverse": "^0.6.6", + "uuid": "^3.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-datatype-geopoint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/loopback-datatype-geopoint/-/loopback-datatype-geopoint-1.0.0.tgz", + "integrity": "sha1-/apcerjXMKmrflRVS+Fl8xzfYQA=" + }, + "loopback-filters": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/loopback-filters/-/loopback-filters-1.0.0.tgz", + "integrity": "sha512-uFQQLfj4T27CM6dzlWMH6aF1lf/Qj97VmXMlVnNWcG+Pd8R8ZbU4i/shArYXArXfis+ICD80YadrPbf9DYRbOA==", + "requires": { + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-phase": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/loopback-phase/-/loopback-phase-3.3.0.tgz", + "integrity": "sha512-0NAMtZ2P7VHtW2vgADmDFzFCeniCJwL4I3AdAxX5Ds8IFDQNbnRFnBQSvg+F50HcB7ZkKmR5gtOxtr7bXbqaAQ==", + "requires": { + "async": "^2.6.1", + "debug": "^3.1.0", + "strong-globalize": "^4.1.1" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loopback-swagger": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/loopback-swagger/-/loopback-swagger-5.7.3.tgz", + "integrity": "sha512-RKmmaaiYS6gkAybiY17Poh1NBPrOI5rYlEJY+cf5VlL5p0e1MK9ivfOVDFpfPaxXEnYt7NL/Cz/iZ9QuKyfA5g==", + "requires": { + "async": "^2.1.4", + "debug": "^3.1.0", + "ejs": "^2.5.5", + "lodash": "^4.17.11", + "strong-globalize": "^4.1.1" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + } + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "make-plural": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-3.0.6.tgz", + "integrity": "sha1-IDOgO6wpC487uRJY9lud9+iwHKc=", + "requires": { + "minimist": "^1.2.0" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "dev": true + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "math-interval-parser": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-interval-parser/-/math-interval-parser-1.1.0.tgz", + "integrity": "sha1-2+2lsGsySZc8bfYXD94jhvCv2JM=", + "requires": { + "xregexp": "^2.0.0" + } + }, + "md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "requires": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "messageformat": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/messageformat/-/messageformat-0.3.1.tgz", + "integrity": "sha1-5Y//gkXps5cXmeW0PbWLPpQX9aI=", + "requires": { + "async": "~1.5.2", + "glob": "~6.0.4", + "make-plural": "~3.0.3", + "nopt": "~3.0.6", + "watchr": "~2.4.13" + } + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "minstache": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minstache/-/minstache-1.2.0.tgz", + "integrity": "sha1-/xzEA6woRPaNvxjGYhKb5+sO/EE=", + "dev": true, + "requires": { + "commander": "1.0.4" + }, + "dependencies": { + "commander": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/commander/-/commander-1.0.4.tgz", + "integrity": "sha1-Xt6xruI8T7VBprcNaSq+8ZZpotM=", + "dev": true, + "requires": { + "keypress": "0.1.x" + } + } + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mktmpdir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/mktmpdir/-/mktmpdir-0.1.1.tgz", + "integrity": "sha1-OKyCCVDXjvoLnN38A/99XFp4bbk=", + "requires": { + "rimraf": "~2.2.8" + } + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=" + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=" + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "requires": { + "inherits": "2", + "minimatch": "0.3" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "msgpack-js": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/msgpack-js/-/msgpack-js-0.3.0.tgz", + "integrity": "sha1-Aw7AjFlW+cp9F9QKVy1Tlv7BCSM=", + "requires": { + "bops": "~0.0.6" + }, + "dependencies": { + "base64-js": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.2.tgz", + "integrity": "sha1-Ak8Pcq+iW3X5wO5zzU9V7Bvtl4Q=" + }, + "bops": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/bops/-/bops-0.0.7.tgz", + "integrity": "sha1-tKClqDmkBkVK8P4FqLkaenZqVOI=", + "requires": { + "base64-js": "0.0.2", + "to-utf8": "0.0.1" + } + } + } + }, + "msgpack-stream": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/msgpack-stream/-/msgpack-stream-0.0.13.tgz", + "integrity": "sha1-UKZzrE6uyl43cBkk0JPUM1DB5Sw=", + "requires": { + "bops": "1.0.0", + "msgpack-js": "0.3.0", + "through": "2.3.4" + }, + "dependencies": { + "through": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.4.tgz", + "integrity": "sha1-SV5A6Nio6uvHwnXqiMK4/BTFZFU=" + } + } + }, + "msgpack5": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/msgpack5/-/msgpack5-4.2.1.tgz", + "integrity": "sha512-Xo7nE9ZfBVonQi1rSopNAqPdts/QHyuSEUwIEzAkB+V2FtmkkLUbP6MyVqVVQxsZYI65FpvW3Bb8Z9ZWEjbgHQ==", + "requires": { + "bl": "^2.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.3.6", + "safe-buffer": "^5.1.2" + } + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "multiline": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/multiline/-/multiline-1.0.2.tgz", + "integrity": "sha1-abHyX/B00oKJBPJE3dBrfZbvbJM=", + "dev": true, + "requires": { + "strip-indent": "^1.0.0" + } + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "mustache": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.0.1.tgz", + "integrity": "sha512-jFI/4UVRsRYdUbuDTKT7KzfOp7FiD5WzYmmwNwXyUVypC0xjoTL78Fqc0jHUPIvvGD+6DQSPHIt1NE7D1ArsqA==" + }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mux-demux": { + "version": "3.7.9", + "resolved": "https://registry.npmjs.org/mux-demux/-/mux-demux-3.7.9.tgz", + "integrity": "sha1-NTZ3GP02AcgLzi63YlMVdtekrO8=", + "requires": { + "duplex": "~1.0.0", + "json-buffer": "~2.0.4", + "msgpack-stream": "~0.0.10", + "stream-combiner": "0.0.2", + "stream-serializer": "~1.1.1", + "through": "~2.3.1", + "xtend": "~1.0.3" + } + }, + "mysql": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.17.1.tgz", + "integrity": "sha512-7vMqHQ673SAk5C8fOzTG2LpPcf3bNt0oL3sFpxPEEFp1mdlDcrLK0On7z8ZYKaaHrHwNcQ/MTUz7/oobZ2OyyA==", + "requires": { + "bignumber.js": "7.2.1", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + } + }, + "mysql2": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-1.6.5.tgz", + "integrity": "sha512-zedaOOyb3msuuZcJJnxIX/EGOpmljDG7B+UevRH5lqcv+yhy9eCwkArBz8/AO+/rlY3/oCsOdG8R5oD6k0hNfg==", + "dev": true, + "requires": { + "denque": "^1.4.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.4.24", + "long": "^4.0.0", + "lru-cache": "^4.1.3", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "dev": true, + "requires": { + "lru-cache": "^4.1.3" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true + }, + "nanoid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.0.3.tgz", + "integrity": "sha512-NbaoqdhIYmY6FXDRB4eYtDVC9Z9eCbn8TyaiC16LNKtpPv/aqa0tOPD8y6gNE4yUNnaZ7LLhYtXOev/6+cBtfw==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", + "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "nightmare": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/nightmare/-/nightmare-3.0.2.tgz", + "integrity": "sha512-z6Sr7k71pFcNHFH0orejum9xMzrsdU1lcxlbvNGRsKgDltmu4r52sK5opDnoqfyWS+w9SNthj/4Bbt5zNofzhw==", + "dev": true, + "requires": { + "debug": "^2.2.0", + "deep-defaults": "^1.0.3", + "defaults": "^1.0.2", + "electron": "^2.0.18", + "enqueue": "^1.0.2", + "function-source": "^0.1.0", + "jsesc": "^0.5.0", + "minstache": "^1.2.0", + "mkdirp": "^0.5.1", + "multiline": "^1.0.2", + "once": "^1.3.3", + "rimraf": "^2.4.3", + "sliced": "1.0.1", + "split2": "^2.0.1" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "nocache": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz", + "integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==" + }, + "node-fetch": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" + }, + "node-forge": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.5.tgz", + "integrity": "sha512-vFMQIWt+J/7FLNyKouZ9TazT74PRV3wgv9UT4cRjC8BffxFbKXkgIWR42URCPSnHm/QDz6BOlb2Q0U4+VQT67Q==" + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", + "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-releases": { + "version": "1.1.24", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.24.tgz", + "integrity": "sha512-wym2jptfuKowMmkZsfCSTsn8qAVo8zm+UiQA6l5dNqUcpfChZSnS/vbbpOeXczf+VdPhutxh+99lWHhdd6xKzg==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "node-sass": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", + "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.11", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "node.extend": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.1.8.tgz", + "integrity": "sha512-L/dvEBwyg3UowwqOUTyDsGBU6kjBQOpOhshio9V3i3BMPv5YUb9+mWNN8MK0IbWqT0AqaTSONZf0aTuMMahWgA==", + "dev": true, + "requires": { + "has": "^1.0.3", + "is": "^3.2.1" + } + }, + "nodemailer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-4.7.0.tgz", + "integrity": "sha512-IludxDypFpYw4xpzKdMAozBSkzKHmNBvGanUREjJItgJ2NYcK/s8+PggVhj7c2yGFQykKsnnmv1+Aqo0ZfjHmw==" + }, + "nodemailer-direct-transport": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/nodemailer-direct-transport/-/nodemailer-direct-transport-3.3.2.tgz", + "integrity": "sha1-6W+vuQNYVglH5WkBfZfmBzilCoY=", + "requires": { + "nodemailer-shared": "1.1.0", + "smtp-connection": "2.12.0" + } + }, + "nodemailer-fetch": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/nodemailer-fetch/-/nodemailer-fetch-1.6.0.tgz", + "integrity": "sha1-ecSQihwPXzdbc/6IjamCj23JY6Q=" + }, + "nodemailer-shared": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-shared/-/nodemailer-shared-1.1.0.tgz", + "integrity": "sha1-z1mU4v0mjQD1zw+nZ6CBae2wfsA=", + "requires": { + "nodemailer-fetch": "1.6.0" + } + }, + "nodemailer-stub-transport": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/nodemailer-stub-transport/-/nodemailer-stub-transport-1.1.0.tgz", + "integrity": "sha1-EUIdLWa07m9AU1T5FMH0ZB6ySw0=" + }, + "nodemon": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.1.tgz", + "integrity": "sha512-/DXLzd/GhiaDXXbGId5BzxP1GlsqtMGM9zTmkWrgXtSqjKmGSbLicM/oAy4FR0YWm14jCHRwnR31AHS2dYFHrg==", + "dev": true, + "requires": { + "chokidar": "^2.1.5", + "debug": "^3.1.0", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.0.4", + "pstree.remy": "^1.1.6", + "semver": "^5.5.0", + "supports-color": "^5.2.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.2", + "update-notifier": "^2.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "nugget": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dev": true, + "requires": { + "debug": "^2.1.3", + "minimist": "^1.1.0", + "pretty-bytes": "^1.0.2", + "progress-stream": "^1.1.0", + "request": "^2.45.0", + "single-line-log": "^1.1.2", + "throttleit": "0.0.2" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-diff": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/object-diff/-/object-diff-0.0.4.tgz", + "integrity": "sha1-2IOwRE/o/W4E5ZXXu2ZWgskWBH8=" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" + }, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optional": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz", + "integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw==" + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=" + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "p-queue": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-1.2.0.tgz", + "integrity": "sha1-Y5y4sHJwwVtx16ZEao4wQU88ltE=", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "requires": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + } + }, + "pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pkgcloud": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkgcloud/-/pkgcloud-2.1.0.tgz", + "integrity": "sha512-0029nB7g1Y9ESCPLESORiZaG19Yh9aHXZqe/odvJS9O5SJao2RUA1h8Oksz+qw4yS8ZaexcCEGqRPmQ+il7+yA==", + "requires": { + "@google-cloud/storage": "^2.4.3", + "async": "^2.6.1", + "aws-sdk": "^2.382.0", + "errs": "^0.3.2", + "eventemitter2": "^5.0.1", + "fast-json-patch": "^2.1.0", + "filed-mimefix": "^0.1.3", + "ip": "^1.1.5", + "liboneandone": "^1.2.0", + "lodash": "^4.17.10", + "mime": "^2.4.1", + "qs": "^6.5.2", + "request": "^2.88.0", + "through2": "^3.0.1", + "url-join": "^4.0.0", + "xml2js": "^0.4.19" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" + } + } + }, + "platform": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", + "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==" + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + } + }, + "pluralize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz", + "integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU=", + "dev": true + }, + "portfinder": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", + "integrity": "sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw==", + "dev": true, + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "posix-getopt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/posix-getopt/-/posix-getopt-1.2.0.tgz", + "integrity": "sha1-Su7rfa3mb8qKk2XdqfawBXQctiE=" + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz", + "integrity": "sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0", + "postcss-value-parser": "^3.3.1" + } + }, + "postcss-modules-scope": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz", + "integrity": "sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz", + "integrity": "sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^7.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", + "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "meow": "^3.1.0" + } + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "progress-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dev": true, + "requires": { + "speedometer": "~0.1.2", + "through2": "~0.2.3" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9", + "xtend": "~2.1.1" + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, + "requires": { + "object-keys": "~0.4.0" + } + } + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.2.0.tgz", + "integrity": "sha512-GEn74ZffufCmkDDLNcl3uuyF/aSD6exEyh1v/ZSdAomB82t6G9hzJVRx0jBmLDW+VfZqks3aScmMw9DszwUalA==" + }, + "pstree.remy": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.7.tgz", + "integrity": "sha512-xsMgrUwRpuGskEzBFkH8NmTimbZ5PcPup0LA8JJkHIm2IMUbQcpo3yeLNWVrufEYjh8YwtSVh0xz6UeWc5Oh5A==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-browser": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/querystring-browser/-/querystring-browser-1.0.4.tgz", + "integrity": "sha1-8uNYgYQKgZvHsb9Zf68JeeZiLcY=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + } + } + }, + "raw-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-1.0.0.tgz", + "integrity": "sha512-Uqy5AqELpytJTRxYT4fhltcKPj0TyaEpzJDcGz7DFJi+pQOOi3GjR/DOdxTkTsF+NzhnldIoG6TORaBlInUuqA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, + "requires": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "referrer-policy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz", + "integrity": "sha512-LgQJIuS6nAy1Jd88DCQRemyE3mS+ispwlqMk3b0yjZ257fI1v9c+/p6SD5gP5FGyXUIgrNOAfmyioHwZtYv2VA==" + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "regenerator-transform": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.0.tgz", + "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp-tree": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.10.tgz", + "integrity": "sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ==", + "dev": true + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regexpu-core": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.4.tgz", + "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "requires": { + "rc": "^1.0.1" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + } + } + }, + "request-promise-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", + "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "requires": { + "lodash": "^4.17.11" + } + }, + "request-promise-native": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", + "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "requires": { + "request-promise-core": "1.1.2", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-yaml": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/require-yaml/-/require-yaml-0.0.1.tgz", + "integrity": "sha1-LhsY2RPDuqcqWk03O28Tjd0sMr0=", + "requires": { + "js-yaml": "^3.13.1" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", + "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "retry-request": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.1.tgz", + "integrity": "sha512-BINDzVtLI2BDukjWmjAIRZ0oglnCAkpP2vQjM3jdLhmT62h0xnQgciPwBRDAvHqpkPT2Wo1XuUyLyn6nbGrZQQ==", + "requires": { + "debug": "^4.1.1", + "through2": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=" + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safefs": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/safefs/-/safefs-3.2.2.tgz", + "integrity": "sha1-gXDBRE1wOOCMrqBaN0+uL6NJ4Vw=", + "requires": { + "graceful-fs": "*" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "sass-loader": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "dev": true, + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scandirectory": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-2.5.0.tgz", + "integrity": "sha1-bOA/VKCQtmjjy+2/IO354xBZPnI=", + "requires": { + "ignorefs": "^1.0.0", + "safefs": "^3.1.2", + "taskgroup": "^4.0.5" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", + "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", + "dev": true, + "requires": { + "node-forge": "0.7.5" + }, + "dependencies": { + "node-forge": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", + "dev": true + } + } + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + }, + "semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "requires": { + "semver": "^5.0.3" + } + }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha1-1WgS4cAXpuTnw+Ojeh2m143TyT4=", + "dev": true + }, + "serialize-javascript": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", + "integrity": "sha512-ke8UG8ulpFOxO8f8gRYabHQe/ZntKlcig2Mp+8+URDP1D8vJZ0KUt7LYo07q25Z/+JVSgpr/cui9PIp5H6/+nA==", + "dev": true + }, + "serve-favicon": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", + "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", + "requires": { + "etag": "~1.8.1", + "fresh": "0.5.2", + "ms": "2.1.1", + "parseurl": "~1.3.2", + "safe-buffer": "5.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dev": true, + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==" + }, + "shortid": { + "version": "2.2.14", + "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.14.tgz", + "integrity": "sha512-4UnZgr9gDdA1kaKj/38IiudfC3KHKhDc1zi/HSxd9FQDR0VLwH3/y79tZJLsVYPsJgIjeHjqIWaWVRJUj9qZOQ==", + "requires": { + "nanoid": "^2.0.0" + } + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "single-line-log": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dev": true, + "requires": { + "string-width": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + } + }, + "sliced": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=", + "dev": true + }, + "smtp-connection": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/smtp-connection/-/smtp-connection-2.12.0.tgz", + "integrity": "sha1-1275EnyyPCJZ7bHoNJwujV4tdME=", + "requires": { + "httpntlm": "1.6.1", + "nodemailer-shared": "1.1.0" + } + }, + "snakeize": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/snakeize/-/snakeize-0.1.0.tgz", + "integrity": "sha1-EMCI2LWOsHazIpu1oE4jLOEmQi0=" + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "soap": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/soap/-/soap-0.26.0.tgz", + "integrity": "sha512-tTS3lnGl6lfjQQuJgNnWOgC0Xa6qYQSwl2G7DX3kCdGmek/FTNmHDM/7icKP1KBMFfCrKpAWEbZiGefa92SCYw==", + "requires": { + "bluebird": "^3.5.0", + "concat-stream": "^1.5.1", + "debug": "^2.6.9", + "ejs": "~2.5.5", + "finalhandler": "^1.0.3", + "httpntlm": "^1.5.2", + "lodash": "^4.17.5", + "request": ">=2.9.0", + "sax": ">=0.6", + "serve-static": "^1.11.1", + "strip-bom": "~0.3.1", + "uuid": "^3.1.0", + "xml-crypto": "~0.8.0" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "ejs": { + "version": "2.5.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.9.tgz", + "integrity": "sha512-GJCAeDBKfREgkBtgrYSf9hQy9kTb3helv0zGdzqhM7iAkW8FA/ZF97VQDbwFiwIT8MQLLOe5VlPZOEvZAqtUAQ==" + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.1.tgz", + "integrity": "sha1-KoBeihTWNyEk3ZFZrUUC+MsH8Gs=", + "dev": true + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.12", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz", + "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", + "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "dev": true + }, + "spdy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.0.tgz", + "integrity": "sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "speedometer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", + "dev": true + }, + "split-array-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/split-array-stream/-/split-array-stream-2.0.0.tgz", + "integrity": "sha512-hmMswlVY91WvGMxs0k8MRgq8zb2mSen4FmDNc5AFiTWtrBpdZN6nwD6kROVe4vNL+ywrvbCKsWVCnEd4riELIg==", + "requires": { + "is-stream-ended": "^0.1.4" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "split2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz", + "integrity": "sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==", + "dev": true, + "requires": { + "through2": "^2.0.2" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" + }, + "sse": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/sse/-/sse-0.0.8.tgz", + "integrity": "sha512-cviG7JH31TUhZeaEVhac3zTzA+2FwA7qvHziAHpb7mC7RNVJ/RbHN+6LIGsS2ugP4o2H15DWmrSMK+91CboIcg==", + "requires": { + "options": "0.0.6" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-chain": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/stack-chain/-/stack-chain-1.3.7.tgz", + "integrity": "sha1-0ZLJ/06moiyUxN1FkXHj8AzqEoU=" + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-combiner": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.2.tgz", + "integrity": "sha1-3+DnRnV0JWXnbGBWeI6lwjvZfbQ=", + "requires": { + "duplexer": "~0.0.3" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-events": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/stream-events/-/stream-events-1.0.5.tgz", + "integrity": "sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==", + "requires": { + "stubs": "^3.0.0" + } + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "stream-serializer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/stream-serializer/-/stream-serializer-1.1.2.tgz", + "integrity": "sha1-wfl9FdolH1lK4n1B7IraCahG408=" + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" + }, + "streamroller": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.5.tgz", + "integrity": "sha512-iGVaMcyF5PcUY0cPbW3xFQUXnr9O4RZXNBBjhuLZgrjLO4XCLLGfx4T2sGqygSeylUjwgWRsnNbT9aV0Zb8AYw==", + "dev": true, + "requires": { + "async": "^2.6.2", + "date-format": "^2.0.0", + "debug": "^3.2.6", + "fs-extra": "^7.0.1", + "lodash": "^4.17.11" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "dev": true, + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "strip-bom": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-0.3.1.tgz", + "integrity": "sha1-noo57/RW/5q8LwWfXyIluw8/fKU=", + "requires": { + "first-chunk-stream": "^0.1.0", + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "strong-error-handler": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/strong-error-handler/-/strong-error-handler-2.3.2.tgz", + "integrity": "sha512-MT68SXVUPB1MNKEkIOUEgKOUCXWf3QV3TmgQRxJHyVplV/IbKFW/60UhAapViDt18cwr1XmgrNbtZ/2cF2qKdg==", + "requires": { + "accepts": "^1.3.3", + "debug": "^2.2.0", + "ejs": "^2.5.7", + "http-status": "^1.0.0", + "js2xmlparser": "^3.0.0", + "strong-globalize": "^3.1.0" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "strong-globalize": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-3.3.0.tgz", + "integrity": "sha512-WrCZPABG/c4e55aH9S1mIW4054YL492cFwJFoF1WZZsJQ39gBYgGjdccTYI5Kj6uTlXH5hjepCQfwE5gCHJnKQ==", + "requires": { + "accept-language": "^3.0.18", + "async": "^2.4.1", + "debug": "^3.1.0", + "esprima": "^4.0.0", + "estraverse": "^4.2.0", + "g11n-pipeline": "^2.0.1", + "globalize": "^1.3.0", + "htmlparser2": "^3.9.2", + "lodash": "^4.17.4", + "md5": "^2.2.1", + "mkdirp": "^0.5.1", + "mktmpdir": "^0.1.1", + "optional": "^0.1.3", + "os-locale": "^2.0.0", + "posix-getopt": "^1.2.0", + "word-count": "^0.2.2", + "xtend": "^4.0.1", + "yamljs": "^0.3.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } + } + }, + "strong-globalize": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/strong-globalize/-/strong-globalize-4.1.3.tgz", + "integrity": "sha512-SJegV7w5D4AodEspZJtJ7rls3fmi+Zc0PdyJCqBsg4RN9B8TC80/uAI2fikC+s1Jp9FLvr2vDX8f0Fqc62M4OA==", + "requires": { + "accept-language": "^3.0.18", + "debug": "^4.1.1", + "globalize": "^1.4.2", + "lodash": "^4.17.4", + "md5": "^2.2.1", + "mkdirp": "^0.5.1", + "os-locale": "^3.1.0", + "yamljs": "^0.3.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "strong-remoting": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/strong-remoting/-/strong-remoting-3.14.0.tgz", + "integrity": "sha512-kBOVMBIGW8fCv37G8uyvxBLO+ed0mF9z+gulAgOZfdIXWa0AgXhndpjTqAWvde+2iXt/n6odiyYvCUbXCrfBsQ==", + "requires": { + "async": "^2.0.1", + "body-parser": "^1.12.4", + "debug": "^3.1.0", + "depd": "^1.1.0", + "escape-string-regexp": "^1.0.5", + "eventemitter2": "^5.0.1", + "express": "4.x", + "inflection": "^1.7.1", + "jayson": "^2.0.5", + "js2xmlparser": "^3.0.0", + "loopback-datatype-geopoint": "^1.0.0", + "loopback-phase": "^3.1.0", + "mux-demux": "^3.7.9", + "qs": "^6.2.1", + "request": "^2.83.0", + "sse": "0.0.8", + "strong-error-handler": "^3.0.0", + "strong-globalize": "^4.1.0", + "traverse": "^0.6.6", + "xml2js": "^0.4.8" + }, + "dependencies": { + "async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", + "requires": { + "lodash": "^4.17.11" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "strong-error-handler": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/strong-error-handler/-/strong-error-handler-3.2.0.tgz", + "integrity": "sha512-WBU5itMkVPoEPf1W3ptb0AjtPvRWabDzVO4Lcy8MbJQUbo8vdWngLAcNQptQovdFoMGLgQAgJzZkelm6FRADuQ==", + "requires": { + "@types/express": "^4.16.0", + "accepts": "^1.3.3", + "debug": "^3.1.0", + "ejs": "^2.6.1", + "http-status": "^1.1.2", + "js2xmlparser": "^3.0.0", + "strong-globalize": "^4.1.0" + } + } + } + }, + "stubs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stubs/-/stubs-3.0.0.tgz", + "integrity": "sha1-6NK6H6nJBXAwPAMLaQD31fiavls=" + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + } + }, + "sumchecker": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-1.3.1.tgz", + "integrity": "sha1-ebs7RFbdBPGOvbwNcDodHa7FEF0=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "es6-promise": "^4.0.5" + } + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=" + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "swagger-client": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.9.0.tgz", + "integrity": "sha512-uyCq2xoaAtmE0oIQ0fCfnsDoy/v97ANnAZywtyk4yumBP74xXp4NFlpZaqZJHN9K9dbPzgs3MH98VocZeM0ExQ==", + "requires": { + "@kyleshockey/js-yaml": "^1.0.1", + "@kyleshockey/object-assign-deep": "^0.4.0", + "babel-runtime": "^6.26.0", + "btoa": "1.1.2", + "buffer": "^5.1.0", + "cookie": "^0.3.1", + "cross-fetch": "0.0.8", + "deep-extend": "^0.5.1", + "encode-3986": "^1.0.0", + "fast-json-patch": "^2.0.6", + "isomorphic-form-data": "0.0.1", + "lodash": "^4.16.2", + "qs": "^6.3.0", + "querystring-browser": "^1.0.4", + "traverse": "^0.6.6", + "url": "^0.11.0", + "utf8-bytes": "0.0.1", + "utfstring": "^2.0.0" + }, + "dependencies": { + "@kyleshockey/js-yaml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@kyleshockey/js-yaml/-/js-yaml-1.0.1.tgz", + "integrity": "sha512-coFyIk1LvTscq1cUU4nCCfYwv+cmG4fCP+wgDKgYZjhM4f++YwZy+g0k+1tUqa4GuUpBTEOGH2KUqKFFWdT73g==", + "requires": { + "argparse": "^1.0.7" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + } + } + }, + "swagger-ui": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-2.2.10.tgz", + "integrity": "sha1-sl56IWZOXZC/OR2zDbCN5B6FLXs=" + }, + "table": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.1.tgz", + "integrity": "sha512-E6CK1/pZe2N75rGZQotFOdmzWQ1AILtgYbMAbAjvms0S1l5IDB47zG3nCnFGB/w+7nB3vKofbLXCH7HPBo864w==", + "dev": true, + "requires": { + "ajv": "^6.9.1", + "lodash": "^4.17.11", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "taskgroup": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-4.3.1.tgz", + "integrity": "sha1-feGT/r12gnPEV3MElwJNUSwnkVo=", + "requires": { + "ambi": "^2.2.0", + "csextends": "^1.0.3" + } + }, + "teeny-request": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/teeny-request/-/teeny-request-3.11.3.tgz", + "integrity": "sha512-CKncqSF7sH6p4rzCgkb/z/Pcos5efl0DmolzvlqRQUNcpRIruOhY9+T1FsIlyEbfWd7MsFpodROOwHYh2BaXzw==", + "requires": { + "https-proxy-agent": "^2.2.1", + "node-fetch": "^2.2.0", + "uuid": "^3.3.2" + } + }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "requires": { + "execa": "^0.7.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "terser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.0.2.tgz", + "integrity": "sha512-IWLuJqTvx97KP3uTYkFVn93cXO+EtlzJu8TdJylq+H0VBDlPMIfQA9MBS5Vc5t3xTEUG1q0hIfHMpAP2R+gWTw==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-W2YWmxPjjkUcOWa4pBEv4OP4er1aeQJlSo2UhtCFQCuRXEHjOFscO8VyWHj9JLlA0RzQb8Y2/Ta78XZvT54uGg==", + "dev": true, + "requires": { + "cacache": "^11.3.2", + "find-cache-dir": "^2.0.0", + "is-wsl": "^1.1.0", + "loader-utils": "^1.2.3", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.7.0", + "source-map": "^0.6.1", + "terser": "^4.0.0", + "webpack-sources": "^1.3.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "requires": { + "readable-stream": "2 || 3" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "thunky": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", + "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", + "dev": true + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "^2.0.3" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "to-utf8": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/to-utf8/-/to-utf8-0.0.1.tgz", + "integrity": "sha1-0Xrqcv8vujm55DYBvns/9y4ImFI=" + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=" + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } + } + }, + "traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "tryit": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tryit/-/tryit-1.0.3.tgz", + "integrity": "sha1-OTvnMKlEb9Hq1tpZoBQwjzbCics=", + "dev": true + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz", + "integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typechecker": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-2.1.0.tgz", + "integrity": "sha1-0cIJOlT/ihn1jP+HfuqlTyJC04M=" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uid2": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz", + "integrity": "sha1-SDEm4Rd03y9xuLY53NeZw3YWK4I=" + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "dev": true, + "requires": { + "debug": "^2.2.0" + } + }, + "underscore": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", + "integrity": "sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=" + }, + "underscore.string": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", + "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", + "requires": { + "sprintf-js": "^1.0.3", + "util-deprecate": "^1.0.2" + } + }, + "undertaker": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, + "update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "requires": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "requires": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + } + } + } + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", + "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-join": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", + "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=" + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "useragent": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", + "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "dev": true, + "requires": { + "lru-cache": "4.1.x", + "tmp": "0.0.x" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "utf8-bytes": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/utf8-bytes/-/utf8-bytes-0.0.1.tgz", + "integrity": "sha1-EWsCVEjJtQAIHN+/H01sbDfYg30=" + }, + "utfstring": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/utfstring/-/utfstring-2.0.0.tgz", + "integrity": "sha512-/ugBfyvIoLe9xqkFHio3CxXnpUKQ1p2LfTxPr6QTRj6GiwpHo73YGdh03UmAzDQNOWpNIE0J5nLss00L4xlWgg==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + }, + "v8-compile-cache": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", + "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", + "dev": true + }, + "v8flags": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz", + "integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", + "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-bufferstream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vinyl-bufferstream/-/vinyl-bufferstream-1.0.1.tgz", + "integrity": "sha1-BTeGn1gO/6TKRay0dXnkuf5jCBo=", + "dev": true, + "requires": { + "bufferstreams": "1.0.1" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + } + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "vm-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", + "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "dev": true + }, + "vn-loopback": { + "version": "file:loopback" + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + } + }, + "watchr": { + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/watchr/-/watchr-2.4.13.tgz", + "integrity": "sha1-10hHu01vkPYf4sdPn2hmKqDgdgE=", + "requires": { + "eachr": "^2.0.2", + "extendr": "^2.1.0", + "extract-opts": "^2.2.0", + "ignorefs": "^1.0.0", + "safefs": "^3.1.2", + "scandirectory": "^2.5.0", + "taskgroup": "^4.2.0", + "typechecker": "^2.0.8" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webpack": { + "version": "4.35.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.35.2.tgz", + "integrity": "sha512-TZAmorNymV4q66gAM/h90cEjG+N3627Q2MnkSgKlX/z3DlNVKUtqy57lz1WmZU2+FUZwzM+qm7cGaO95PyrX5A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.8.5", + "@webassemblyjs/helper-module-context": "1.8.5", + "@webassemblyjs/wasm-edit": "1.8.5", + "@webassemblyjs/wasm-parser": "1.8.5", + "acorn": "^6.0.5", + "acorn-dynamic-import": "^4.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^1.0.0", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" + } + }, + "webpack-cli": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.5.tgz", + "integrity": "sha512-w0j/s42c5UhchwTmV/45MLQnTVwRoaUTu9fM5LuyOd/8lFoCNCELDogFoecx5NzRUndO0yD/gF2b02XKMnmAWQ==", + "dev": true, + "requires": { + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "enhanced-resolve": "4.1.0", + "findup-sync": "3.0.0", + "global-modules": "2.0.0", + "import-local": "2.0.0", + "interpret": "1.2.0", + "loader-utils": "1.2.3", + "supports-color": "6.1.0", + "v8-compile-cache": "2.0.3", + "yargs": "13.2.4" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yargs": { + "version": "13.2.4", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", + "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-2.0.6.tgz", + "integrity": "sha512-tj5LLD9r4tDuRIDa5Mu9lnY2qBBehAITv6A9irqXhw/HQquZgTx3BCd57zYbU2gMDnncA49ufK2qVQSbaKJwOw==", + "dev": true, + "requires": { + "loud-rejection": "^1.6.0", + "memory-fs": "~0.4.1", + "mime": "^2.1.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "url-join": "^2.0.2", + "webpack-log": "^1.0.1" + }, + "dependencies": { + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "url-join": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", + "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.7.2.tgz", + "integrity": "sha512-mjWtrKJW2T9SsjJ4/dxDC2fkFVUw8jlpemDERqV0ZJIkjjjamR2AbQlr3oz+j4JLhYCHImHnXZK5H06P2wvUew==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.6", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", + "http-proxy-middleware": "^0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "killable": "^1.0.1", + "loglevel": "^1.6.3", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.20", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.4", + "semver": "^6.1.1", + "serve-index": "^1.9.1", + "sockjs": "0.3.19", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.5" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "is-path-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.1.0.tgz", + "integrity": "sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", + "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "webpack-dev-middleware": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz", + "integrity": "sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.2", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", + "integrity": "sha512-U9AnICnu50HXtiqiDxuli5gLB5PGBo7VvcHx36jRZHwK4vzOYLbImqT4lwWwoMHdQWwEKw736fCHEekokTEKHA==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "loglevelnext": "^1.0.1", + "uuid": "^3.1.0" + } + }, + "webpack-merge": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz", + "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==", + "dev": true, + "requires": { + "lodash": "^4.17.5" + } + }, + "webpack-sources": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "dev": true, + "requires": { + "string-width": "^2.1.1" + } + }, + "word-count": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/word-count/-/word-count-0.2.2.tgz", + "integrity": "sha1-aZGS/KaCn+k21Byw2V25JIxXBFE=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + }, + "x-xss-protection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.1.0.tgz", + "integrity": "sha512-rx3GzJlgEeZ08MIcDsU2vY2B1QEriUKJTSiNHHUIem6eg9pzVOr2TL3Y4Pd6TMAM5D5azGjcxqI62piITBDHVg==" + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + }, + "xml-crypto": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-0.8.5.tgz", + "integrity": "sha1-K7z7PrM/OoKiGLgiv2craxwg5Tg=", + "requires": { + "xmldom": "=0.1.19", + "xpath.js": ">=0.0.3" + } + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + }, + "xmlcreate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", + "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=" + }, + "xmldom": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz", + "integrity": "sha1-Yx/Ad3bv2EEYvyUXGzftTQdaCrw=" + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xpath.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xpath.js/-/xpath.js-1.1.0.tgz", + "integrity": "sha512-jg+qkfS4K8E7965sqaUl8mRngXiKb3WZGfONgE18pr03FUQiuSV6G+Ej4tS55B+rIQSFEIw3phdVAQ4pPqNWfQ==" + }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" + }, + "xtend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-1.0.3.tgz", + "integrity": "sha1-P12Tc1PM7Y4IU5mlY/2yJUHClgo=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" + }, + "yaml-loader": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.5.0.tgz", + "integrity": "sha512-p9QIzcFSNm4mCw/m5NdyMfN4RE4aFZJWRRb01ERVNGCym8VNbKtw3OYZXnvUIkim6U/EjqE/2yIh9F/msShH9A==", + "dev": true, + "requires": { + "js-yaml": "^3.5.2" + } + }, + "yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "requires": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "dependencies": { + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + } + } + }, + "yauzl": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", + "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "dev": true, + "requires": { + "fd-slicer": "~1.0.1" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + } + } +} diff --git a/package.json b/package.json index 8265f2711..151eea978 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "fs-extra": "^5.0.0", "helmet": "^3.15.1", "i18n": "^0.8.3", - "loopback": "^3.25.0", + "loopback": "^3.26.0", "loopback-boot": "^2.27.1", "loopback-component-explorer": "^6.3.1", "loopback-component-storage": "^3.6.1", @@ -60,7 +60,7 @@ "gulp-yaml": "^1.0.1", "html-loader": "^0.4.5", "html-webpack-plugin": "^4.0.0-beta.5", - "jasmine": "^2.99.0", + "jasmine": "^3.4.0", "jasmine-reporters": "^2.3.2", "jasmine-spec-reporter": "^4.2.1", "json-loader": "^0.5.7", @@ -74,7 +74,7 @@ "merge-stream": "^1.0.1", "minimist": "^1.2.0", "mysql2": "^1.6.5", - "nightmare": "^3.0.1", + "nightmare": "^3.0.2", "node-sass": "^4.9.3", "nodemon": "^1.18.10", "plugin-error": "^1.0.1",