diff options
author | Tor Andersson <tor@ccxvii.net> | 2023-11-01 14:04:15 +0100 |
---|---|---|
committer | Tor Andersson <tor@ccxvii.net> | 2023-11-01 14:06:13 +0100 |
commit | 02a81dfcc5beb1fbe784a3e261fd6416590f4755 (patch) | |
tree | a13177f7230cdf4bbae8d9a41000f157c04b7a26 /tools | |
parent | 3a0b106015952d13512fef95f0d33893cebc94d3 (diff) | |
download | algeria-02a81dfcc5beb1fbe784a3e261fd6416590f4755.tar.gz |
Clean up map. Use JS to layout stacks.
Change size to be an even multiple of the track boxes (1503x1103).
Move boxes and text into play.html part.
Render area outlines and borders to bitmap.
Focus stacks by clicking as in wilderness war.
Stacks expand different directions based on the sub-location
so that they don't collide with stacks in the same area.
NOTE: Layout values have been manually tweaked.
Do not re-run the genlayout script.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/genlayout.py | 52 | ||||
-rw-r--r-- | tools/genshape.js | 30 | ||||
-rw-r--r-- | tools/layout.svg | 2045 |
3 files changed, 1715 insertions, 412 deletions
diff --git a/tools/genlayout.py b/tools/genlayout.py index 2e7bafe..9a287db 100644 --- a/tools/genlayout.py +++ b/tools/genlayout.py @@ -1,33 +1,41 @@ from bs4 import BeautifulSoup -SCALE = 1.8033333333333332 +SCALE = 1.8 def readsvg(filename): - with open(filename) as fp: - soup = BeautifulSoup(fp, features="xml") + with open(filename) as fp: + soup = BeautifulSoup(fp, features="xml") - result = [] - boxes = soup.find('g', id='Mission-Boxes') - for box in boxes.find_all('g', recursive=False): - area_name = box.attrs.get('serif:id', box.attrs['id']) - for rect in box.find_all('rect'): - rect_id = rect.attrs.get('serif:id', rect.attrs['id']) - x = float(rect.attrs['x']) - y = float(rect.attrs['y']) - w = float(rect.attrs['width']) - h = float(rect.attrs['height']) - xc = round((x+w/2.0)/SCALE) - yc = round((y+h/2.0)/SCALE) - name = area_name + '-' + rect_id - result.append([name, xc, yc]) + result = [] + boxes = soup.find('g', id='Mission-Boxes') + for box in boxes.find_all('g', recursive=False): + area_name = box.attrs.get('serif:id', box.attrs['id']) + for g in box.find_all('g'): + xo = 0 + yo = 0 + transform = g.attrs.get('transform') + if transform and transform.startswith("translate("): + transform = transform.replace("translate(","").replace(")","").split(',') + xo = float(transform[0]) + yo = float(transform[1]) + for rect in g.find_all('rect'): + rect_id = rect.attrs.get('serif:id', rect.attrs['id']) + x = float(rect.attrs['x']) + xo + y = float(rect.attrs['y']) + yo + w = float(rect.attrs['width']) + h = float(rect.attrs['height']) + xc = round((x+w/2.0)/SCALE) + yc = round((y+h/2.0)/SCALE) + name = area_name + '-' + rect_id + result.append([name, xc, yc]) - return result + return result def print_list(data): - print("const LAYOUT = {") - for (name, x, y) in data: - print(f'\t"{name}": [{x}, {y}],') - print("}") + print("const LAYOUT = {") + for (name, x, y) in data: + print(f'\t"{name}": [{x}, {y}],') + print("}") result = readsvg("tools/layout.svg") print_list(result) diff --git a/tools/genshape.js b/tools/genshape.js new file mode 100644 index 0000000..c1b7ddf --- /dev/null +++ b/tools/genshape.js @@ -0,0 +1,30 @@ +var fs = require("fs") + +function polygon(radius, sides, angle) { + let w = radius * 2 + 6 + let b = 3 + radius + let out = [] + out.push(`<svg xmlns="http://www.w3.org/2000/svg" width="${w}" height="${w}">`) + let d = [ "M" ] + for (let i = 0; i < sides; ++i) { + let a = (angle + (360 / sides) * i) * (Math.PI / 180) + let x = b + Math.round(Math.sin(a) * radius) + let y = b + Math.round(Math.cos(a) * radius) + d.push(x) + d.push(y) + } + d.push("z") + out.push(`<path d="${d.join(" ")}" stroke-width="2" fill="white" stroke="none" />`) + out.push(`</svg>`) + return out.join("\n") +} + +// circle diameter: 54 => 27 +// square width: 54 => 27 +// hex diameter = 60 => 30 +// triangle base = 70, r = 70 / sqrt(3) => 40 + +fs.writeFileSync("ops.svg", polygon(30, 6, 30)) +//fs.writeFileSync("ptl.svg", polygon(27, 100, 0)) +//fs.writeFileSync("oc.svg", polygon(27, 4, 45)) +fs.writeFileSync("ug.svg", polygon(38, 3, 180)) diff --git a/tools/layout.svg b/tools/layout.svg index f5a7850..d5addb3 100644 --- a/tools/layout.svg +++ b/tools/layout.svg @@ -1,448 +1,1713 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="100%" height="100%" viewBox="0 0 2705 1985" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> - <g id="Mission-Boxes" serif:id="Mission Boxes"> - <g id="Laghouat"> - <g id="OC"> - <rect id="OC1" serif:id="OC" x="1487.38" y="1715.19" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL"> - <rect id="PTL1" serif:id="PTL" x="1130.76" y="1762.19" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS"> - <rect id="OPS1" serif:id="OPS" x="1414.38" y="1552.66" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG"> - <rect id="UG1" serif:id="UG" x="1098.76" y="1577.48" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK"> - <rect id="MK1" serif:id="MK" x="1273.36" y="1595.45" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> +<svg + xmlns:serif="http://www.serif.com/" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1503" + height="1103" + viewBox="0 0 2705 1985" + version="1.1" + xml:space="preserve" + style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" + id="svg291" + sodipodi:docname="layout.svg" + inkscape:version="1.0.2 (e86c870879, 2021-01-15)"><metadata + id="metadata297"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs + id="defs295" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="640" + inkscape:window-height="480" + id="namedview293" + showgrid="false" + inkscape:zoom="0.66338952" + inkscape:cx="770.82707" + inkscape:cy="317.33965" + inkscape:current-layer="Mission-Boxes" + inkscape:document-rotation="0" /> + +<image + sodipodi:absref="/home/tor/src/rally/public/algeria/map.png" + xlink:href="../map.png" + x="0" + y="0" + width="2705" + height="1985" + image-rendering="pixelated" + id="image2" + sodipodi:insensitive="true" /> + + <g + id="Mission-Boxes" + serif:id="Mission Boxes"> + <g + id="Laghouat"> + <g + id="OC"> + <rect + id="OC1" + serif:id="OC" + x="1487.38" + y="1715.1899" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL"> + <rect + id="PTL1" + serif:id="PTL" + x="1130.76" + y="1762.1899" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS"> + <rect + id="OPS1" + serif:id="OPS" + x="1414.38" + y="1552.66" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG"> + <rect + id="UG1" + serif:id="UG" + x="1098.76" + y="1577.48" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK" + transform="translate(8.7642638,43.69044)"> + <rect + id="MK1" + serif:id="MK" + x="1273.36" + y="1595.45" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Ain-Sefra" serif:id="Ain Sefra"> - <g id="OC2" serif:id="OC"> - <rect id="OC3" serif:id="OC" x="800.256" y="1779.47" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL2" serif:id="PTL"> - <rect id="PTL3" serif:id="PTL" x="619.629" y="1781.47" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS2" serif:id="OPS"> - <rect id="OPS3" serif:id="OPS" x="836.256" y="1632.82" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG2" serif:id="UG"> - <rect id="UG3" serif:id="UG" x="435.629" y="1763.66" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK2" serif:id="MK"> - <rect id="MK3" serif:id="MK" x="543.5" y="1694.19" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Ain-Sefra" + serif:id="Ain Sefra"> + <g + id="OC2" + serif:id="OC"> + <rect + id="OC3" + serif:id="OC" + x="800.25598" + y="1779.47" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL2" + serif:id="PTL"> + <rect + id="PTL3" + serif:id="PTL" + x="619.62903" + y="1781.47" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS2" + serif:id="OPS"> + <rect + id="OPS3" + serif:id="OPS" + x="836.25598" + y="1632.8199" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG2" + serif:id="UG"> + <rect + id="UG3" + serif:id="UG" + x="435.629" + y="1763.66" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK2" + serif:id="MK" + transform="translate(88.912795,-37.696569)"> + <rect + id="MK3" + serif:id="MK" + x="543.5" + y="1694.1899" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Mascara"> - <g id="OC4" serif:id="OC"> - <rect id="OC5" serif:id="OC" x="904.382" y="1430.43" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL4" serif:id="PTL"> - <rect id="PTL5" serif:id="PTL" x="779.256" y="1473.43" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS4" serif:id="OPS"> - <rect id="OPS5" serif:id="OPS" x="905.382" y="1315.9" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG4" serif:id="UG"> - <rect id="UG5" serif:id="UG" x="780.756" y="1342.9" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK4" serif:id="MK"> - <rect id="MK5" serif:id="MK" x="754.5" y="1248.59" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Mascara"> + <g + id="OC4" + serif:id="OC"> + <rect + id="OC5" + serif:id="OC" + x="904.38202" + y="1430.4301" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL4" + serif:id="PTL"> + <rect + id="PTL5" + serif:id="PTL" + x="779.25598" + y="1473.4301" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS4" + serif:id="OPS"> + <rect + id="OPS5" + serif:id="OPS" + x="905.38202" + y="1315.9" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG4" + serif:id="UG"> + <rect + id="UG5" + serif:id="UG" + x="780.75598" + y="1342.9" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK4" + serif:id="MK" + transform="translate(54.94949,-16.061576)"> + <rect + id="MK5" + serif:id="MK" + x="754.5" + y="1248.59" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Saida"> - <g id="OC6" serif:id="OC"> - <rect id="OC7" serif:id="OC" x="644.382" y="1553.47" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL6" serif:id="PTL"> - <rect id="PTL7" serif:id="PTL" x="508.5" y="1577.47" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS6" serif:id="OPS"> - <rect id="OPS7" serif:id="OPS" x="617" y="1370.94" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG6" serif:id="UG"> - <rect id="UG7" serif:id="UG" x="494" y="1371.94" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK6" serif:id="MK"> - <rect id="MK7" serif:id="MK" x="505" y="1474.32" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Saida"> + <g + id="OC6" + serif:id="OC"> + <rect + id="OC7" + serif:id="OC" + x="644.38202" + y="1553.47" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL6" + serif:id="PTL"> + <rect + id="PTL7" + serif:id="PTL" + x="508.5" + y="1577.47" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS6" + serif:id="OPS"> + <rect + id="OPS7" + serif:id="OPS" + x="617" + y="1370.9399" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG6" + serif:id="UG"> + <rect + id="UG7" + serif:id="UG" + x="494" + y="1371.9399" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK6" + serif:id="MK" + transform="translate(49.351526,-8.4824755)"> + <rect + id="MK7" + serif:id="MK" + x="505" + y="1474.3199" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Mecheria"> - <g id="OC8" serif:id="OC"> - <rect id="OC9" serif:id="OC" x="354.382" y="1618.47" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL8" serif:id="PTL"> - <rect id="PTL9" serif:id="PTL" x="243.5" y="1635.47" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS8" serif:id="OPS"> - <rect id="OPS9" serif:id="OPS" x="345.5" y="1433.94" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG8" serif:id="UG"> - <rect id="UG9" serif:id="UG" x="237.756" y="1454.43" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK8" serif:id="MK"> - <rect id="MK9" serif:id="MK" x="371.846" y="1523.47" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Mecheria"> + <g + id="OC8" + serif:id="OC" + transform="translate(5.0040751,-2.0924014)"> + <rect + id="OC9" + serif:id="OC" + x="354.38199" + y="1618.47" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL8" + serif:id="PTL"> + <rect + id="PTL9" + serif:id="PTL" + x="243.5" + y="1635.47" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS8" + serif:id="OPS"> + <rect + id="OPS9" + serif:id="OPS" + x="345.5" + y="1433.9399" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG8" + serif:id="UG"> + <rect + id="UG9" + serif:id="UG" + x="237.756" + y="1454.4301" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK8" + serif:id="MK"> + <rect + id="MK9" + serif:id="MK" + x="292.21362" + y="1532.2079" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Mostaganem"> - <g id="OC10" serif:id="OC"> - <rect id="OC11" serif:id="OC" x="852.382" y="1075.71" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL10" serif:id="PTL"> - <rect id="PTL11" serif:id="PTL" x="748.5" y="983.707" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS10" serif:id="OPS"> - <rect id="OPS11" serif:id="OPS" x="814.382" y="746.015" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG10" serif:id="UG"> - <rect id="UG11" serif:id="UG" x="715.756" y="805.221" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK10" serif:id="MK"> - <rect id="MK11" serif:id="MK" x="862.454" y="963.829" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Mostaganem"> + <g + id="OC10" + serif:id="OC"> + <rect + id="OC11" + serif:id="OC" + x="852.38202" + y="1075.71" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL10" + serif:id="PTL"> + <rect + id="PTL11" + serif:id="PTL" + x="748.5" + y="983.70697" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS10" + serif:id="OPS"> + <rect + id="OPS11" + serif:id="OPS" + x="814.38202" + y="746.01501" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG10" + serif:id="UG"> + <rect + id="UG11" + serif:id="UG" + x="715.75598" + y="805.22101" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK10" + serif:id="MK" + transform="translate(-27.826371,-79.737528)"> + <rect + id="MK11" + serif:id="MK" + x="862.45398" + y="963.82898" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Sidi-Bel-Abbes" serif:id="Sidi Bel Abbes"> - <g id="OC12" serif:id="OC"> - <rect id="OC13" serif:id="OC" x="625.382" y="1113.71" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL12" serif:id="PTL"> - <rect id="PTL13" serif:id="PTL" x="504" y="1187.71" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS12" serif:id="OPS"> - <rect id="OPS13" serif:id="OPS" x="571.382" y="944.735" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG12" serif:id="UG"> - <rect id="UG13" serif:id="UG" x="414.756" y="956.176" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK12" serif:id="MK"> - <rect id="MK13" serif:id="MK" x="423.045" y="1099.2" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Sidi-Bel-Abbes" + serif:id="Sidi Bel Abbes"> + <g + id="OC12" + serif:id="OC"> + <rect + id="OC13" + serif:id="OC" + x="625.38202" + y="1113.71" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL12" + serif:id="PTL"> + <rect + id="PTL13" + serif:id="PTL" + x="504" + y="1187.71" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS12" + serif:id="OPS"> + <rect + id="OPS13" + serif:id="OPS" + x="571.38202" + y="944.73499" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG12" + serif:id="UG"> + <rect + id="UG13" + serif:id="UG" + x="414.75601" + y="956.17603" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK12" + serif:id="MK" + transform="translate(64.185442,-42.317636)"> + <rect + id="MK13" + serif:id="MK" + x="423.04501" + y="1099.2" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Tlemcen"> - <g id="OC14" serif:id="OC"> - <rect id="OC15" serif:id="OC" x="291.382" y="1291.47" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL14" serif:id="PTL"> - <rect id="PTL15" serif:id="PTL" x="181" y="1229.47" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS14" serif:id="OPS"> - <rect id="OPS15" serif:id="OPS" x="291.382" y="1153.59" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG14" serif:id="UG"> - <rect id="UG15" serif:id="UG" x="163.756" y="1095.94" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK14" serif:id="MK"> - <rect id="MK15" serif:id="MK" x="195.454" y="963.829" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Tlemcen"> + <g + id="OC14" + serif:id="OC"> + <rect + id="OC15" + serif:id="OC" + x="291.38199" + y="1291.47" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL14" + serif:id="PTL"> + <rect + id="PTL15" + serif:id="PTL" + x="181" + y="1229.47" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS14" + serif:id="OPS"> + <rect + id="OPS15" + serif:id="OPS" + x="291.38199" + y="1153.59" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG14" + serif:id="UG"> + <rect + id="UG15" + serif:id="UG" + x="163.756" + y="1095.9399" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK14" + serif:id="MK" + transform="translate(62.103501,36.734828)"> + <rect + id="MK15" + serif:id="MK" + x="195.45399" + y="963.82898" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Orleansville"> - <g id="OC16" serif:id="OC"> - <rect id="OC17" serif:id="OC" x="1079.38" y="997" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL16" serif:id="PTL"> - <rect id="PTL17" serif:id="PTL" x="991.756" y="910" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS16" serif:id="OPS"> - <rect id="OPS17" serif:id="OPS" x="1099.76" y="855.235" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG16" serif:id="UG"> - <rect id="UG17" serif:id="UG" x="992.756" y="772.427" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK16" serif:id="MK"> - <rect id="MK17" serif:id="MK" x="1099" y="748.015" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Orleansville"> + <g + id="OC16" + serif:id="OC"> + <rect + id="OC17" + serif:id="OC" + x="1079.38" + y="997" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL16" + serif:id="PTL"> + <rect + id="PTL17" + serif:id="PTL" + x="991.75598" + y="910" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS16" + serif:id="OPS"> + <rect + id="OPS17" + serif:id="OPS" + x="1099.76" + y="855.23499" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG16" + serif:id="UG"> + <rect + id="UG17" + serif:id="UG" + x="992.75598" + y="772.427" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK16" + serif:id="MK" + transform="translate(-77.751221,-80.414807)"> + <rect + id="MK17" + serif:id="MK" + x="1099" + y="748.01501" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Medea"> - <g id="OC18" serif:id="OC"> - <rect id="OC19" serif:id="OC" x="1316" y="846.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL18" serif:id="PTL"> - <rect id="PTL19" serif:id="PTL" x="1224.76" y="932.545" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS18" serif:id="OPS"> - <rect id="OPS19" serif:id="OPS" x="1346.26" y="730.221" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG18" serif:id="UG"> - <rect id="UG19" serif:id="UG" x="1225.76" y="739.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK18" serif:id="MK"> - <rect id="MK19" serif:id="MK" x="1351.5" y="624.5" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Medea"> + <g + id="OC18" + serif:id="OC"> + <rect + id="OC19" + serif:id="OC" + x="1316" + y="846.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL18" + serif:id="PTL"> + <rect + id="PTL19" + serif:id="PTL" + x="1224.76" + y="932.54498" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS18" + serif:id="OPS"> + <rect + id="OPS19" + serif:id="OPS" + x="1346.26" + y="730.22101" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG18" + serif:id="UG"> + <rect + id="UG19" + serif:id="UG" + x="1225.76" + y="739.94098" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK18" + serif:id="MK" + transform="translate(-86.381872,21.503549)"> + <rect + id="MK19" + serif:id="MK" + x="1351.5" + y="624.5" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Ain-Qussera" serif:id="Ain Qussera"> - <g id="OC20" serif:id="OC"> - <rect id="OC21" serif:id="OC" x="1217.13" y="1392.47" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL20" serif:id="PTL"> - <rect id="PTL21" serif:id="PTL" x="1067.5" y="1311.47" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS20" serif:id="OPS"> - <rect id="OPS21" serif:id="OPS" x="1222.13" y="1119.24" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG20" serif:id="UG"> - <rect id="UG21" serif:id="UG" x="1046" y="1153.31" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK20" serif:id="MK"> - <rect id="MK21" serif:id="MK" x="1143.5" y="1203.53" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Ain-Qussera" + serif:id="Ain Qussera"> + <g + id="OC20" + serif:id="OC"> + <rect + id="OC21" + serif:id="OC" + x="1217.13" + y="1392.47" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL20" + serif:id="PTL"> + <rect + id="PTL21" + serif:id="PTL" + x="1067.5" + y="1311.47" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS20" + serif:id="OPS"> + <rect + id="OPS21" + serif:id="OPS" + x="1222.13" + y="1119.24" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG20" + serif:id="UG"> + <rect + id="UG21" + serif:id="UG" + x="1046" + y="1153.3101" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK20" + serif:id="MK"> + <rect + id="MK21" + serif:id="MK" + x="1143.5" + y="1203.53" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Sidi-Aissa" serif:id="Sidi Aissa"> - <g id="OC22" serif:id="OC"> - <rect id="OC23" serif:id="OC" x="1512.5" y="1302.47" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL22" serif:id="PTL"> - <rect id="PTL23" serif:id="PTL" x="1388.5" y="1370.47" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS22" serif:id="OPS"> - <rect id="OPS23" serif:id="OPS" x="1530.5" y="1118.24" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG22" serif:id="UG"> - <rect id="UG23" serif:id="UG" x="1379" y="1066.94" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK22" serif:id="MK"> - <rect id="MK23" serif:id="MK" x="1348.5" y="1280.53" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Sidi-Aissa" + serif:id="Sidi Aissa"> + <g + id="OC22" + serif:id="OC"> + <rect + id="OC23" + serif:id="OC" + x="1512.5" + y="1302.47" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL22" + serif:id="PTL"> + <rect + id="PTL23" + serif:id="PTL" + x="1388.5" + y="1370.47" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS22" + serif:id="OPS"> + <rect + id="OPS23" + serif:id="OPS" + x="1530.5" + y="1118.24" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG22" + serif:id="UG"> + <rect + id="UG23" + serif:id="UG" + x="1379" + y="1066.9399" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK22" + serif:id="MK" + transform="translate(63.297461,-68.20929)"> + <rect + id="MK23" + serif:id="MK" + x="1348.5" + y="1280.53" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Bougie"> - <g id="OC24" serif:id="OC"> - <rect id="OC25" serif:id="OC" x="1817.69" y="725.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL24" serif:id="PTL"> - <rect id="PTL25" serif:id="PTL" x="1715.06" y="725.472" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS24" serif:id="OPS"> - <rect id="OPS25" serif:id="OPS" x="1818.69" y="618.941" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG24" serif:id="UG"> - <rect id="UG25" serif:id="UG" x="1716.06" y="618.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK24" serif:id="MK"> - <rect id="MK25" serif:id="MK" x="1849.88" y="508.5" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Bougie"> + <g + id="OC24" + serif:id="OC"> + <rect + id="OC25" + serif:id="OC" + x="1817.6899" + y="725.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL24" + serif:id="PTL"> + <rect + id="PTL25" + serif:id="PTL" + x="1715.0601" + y="725.47198" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS24" + serif:id="OPS"> + <rect + id="OPS25" + serif:id="OPS" + x="1818.6899" + y="618.94098" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG24" + serif:id="UG"> + <rect + id="UG25" + serif:id="UG" + x="1716.0601" + y="618.94098" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK24" + serif:id="MK" + transform="translate(-75.943045,14.657479)"> + <rect + id="MK25" + serif:id="MK" + x="1849.88" + y="508.5" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Bordj-Bou-Arreridj" serif:id="Bordj Bou Arreridj"> - <g id="OC26" serif:id="OC"> - <rect id="OC27" serif:id="OC" x="1571.38" y="941.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL26" serif:id="PTL"> - <rect id="PTL27" serif:id="PTL" x="1469.76" y="942.472" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS26" serif:id="OPS"> - <rect id="OPS27" serif:id="OPS" x="1572.38" y="835.941" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG26" serif:id="UG"> - <rect id="UG27" serif:id="UG" x="1470.76" y="836.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK26" serif:id="MK"> - <rect id="MK27" serif:id="MK" x="1665.5" y="933.01" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Bordj-Bou-Arreridj" + serif:id="Bordj Bou Arreridj"> + <g + id="OC26" + serif:id="OC"> + <rect + id="OC27" + serif:id="OC" + x="1571.38" + y="941.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL26" + serif:id="PTL"> + <rect + id="PTL27" + serif:id="PTL" + x="1469.76" + y="942.47198" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS26" + serif:id="OPS"> + <rect + id="OPS27" + serif:id="OPS" + x="1572.38" + y="835.94098" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG26" + serif:id="UG"> + <rect + id="UG27" + serif:id="UG" + x="1470.76" + y="836.94098" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK26" + serif:id="MK" + transform="translate(9.3559768,-69.859721)"> + <rect + id="MK27" + serif:id="MK" + x="1665.5" + y="933.01001" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Tizi-Ouzou" serif:id="Tizi Ouzou"> - <g id="OC28" serif:id="OC"> - <rect id="OC29" serif:id="OC" x="1589.38" y="703.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL28" serif:id="PTL"> - <rect id="PTL29" serif:id="PTL" x="1485.76" y="703.472" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS28" serif:id="OPS"> - <rect id="OPS29" serif:id="OPS" x="1588.38" y="597.941" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG28" serif:id="UG"> - <rect id="UG29" serif:id="UG" x="1485.76" y="597.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK28" serif:id="MK"> - <rect id="MK29" serif:id="MK" x="1485.2" y="434.666" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Tizi-Ouzou" + serif:id="Tizi Ouzou"> + <g + id="OC28" + serif:id="OC"> + <rect + id="OC29" + serif:id="OC" + x="1589.38" + y="703.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL28" + serif:id="PTL"> + <rect + id="PTL29" + serif:id="PTL" + x="1485.76" + y="703.47198" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS28" + serif:id="OPS"> + <rect + id="OPS29" + serif:id="OPS" + x="1588.38" + y="597.94098" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG28" + serif:id="UG"> + <rect + id="UG29" + serif:id="UG" + x="1485.76" + y="597.94098" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK28" + serif:id="MK" + transform="translate(51.091112,48.378729)"> + <rect + id="MK29" + serif:id="MK" + x="1485.2" + y="434.66599" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Biskra"> - <g id="OC30" serif:id="OC"> - <rect id="OC31" serif:id="OC" x="2028.13" y="1751.99" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL30" serif:id="PTL"> - <rect id="PTL31" serif:id="PTL" x="1772.5" y="1707.99" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS30" serif:id="OPS"> - <rect id="OPS31" serif:id="OPS" x="2154.76" y="1631.46" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG30" serif:id="UG"> - <rect id="UG31" serif:id="UG" x="1742.5" y="1508.46" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK30" serif:id="MK"> - <rect id="MK31" serif:id="MK" x="1914.5" y="1564.95" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Biskra"> + <g + id="OC30" + serif:id="OC"> + <rect + id="OC31" + serif:id="OC" + x="2028.13" + y="1751.99" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL30" + serif:id="PTL"> + <rect + id="PTL31" + serif:id="PTL" + x="1772.5" + y="1707.99" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS30" + serif:id="OPS"> + <rect + id="OPS31" + serif:id="OPS" + x="2154.76" + y="1631.46" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG30" + serif:id="UG"> + <rect + id="UG31" + serif:id="UG" + x="1742.5" + y="1508.46" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK30" + serif:id="MK" + transform="translate(9.6367911,23.280195)"> + <rect + id="MK31" + serif:id="MK" + x="1914.5" + y="1564.95" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Batna"> - <g id="OC32" serif:id="OC"> - <rect id="OC33" serif:id="OC" x="2277.81" y="1510.59" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL32" serif:id="PTL"> - <rect id="PTL33" serif:id="PTL" x="2022.68" y="1425.59" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS32" serif:id="OPS"> - <rect id="OPS33" serif:id="OPS" x="2311.74" y="1370.06" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG32" serif:id="UG"> - <rect id="UG33" serif:id="UG" x="1969.18" y="1291.3" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK32" serif:id="MK"> - <rect id="MK33" serif:id="MK" x="2092.27" y="1312.95" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Batna"> + <g + id="OC32" + serif:id="OC"> + <rect + id="OC33" + serif:id="OC" + x="2277.8101" + y="1510.59" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL32" + serif:id="PTL"> + <rect + id="PTL33" + serif:id="PTL" + x="2022.6801" + y="1425.59" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS32" + serif:id="OPS"> + <rect + id="OPS33" + serif:id="OPS" + x="2311.74" + y="1370.0601" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG32" + serif:id="UG"> + <rect + id="UG33" + serif:id="UG" + x="1969.1801" + y="1291.3" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK32" + serif:id="MK" + transform="translate(62.380237,46.517001)"> + <rect + id="MK33" + serif:id="MK" + x="2092.27" + y="1312.95" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Tebessa"> - <g id="OC34" serif:id="OC"> - <rect id="OC35" serif:id="OC" x="2360.63" y="1231.86" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL34" serif:id="PTL"> - <rect id="PTL35" serif:id="PTL" x="2213.13" y="1202.86" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS34" serif:id="OPS"> - <rect id="OPS35" serif:id="OPS" x="2424.81" y="1119.33" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG34" serif:id="UG"> - <rect id="UG35" serif:id="UG" x="2081.18" y="1113" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK34" serif:id="MK"> - <rect id="MK35" serif:id="MK" x="2181.56" y="1077.04" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Tebessa"> + <g + id="OC34" + serif:id="OC"> + <rect + id="OC35" + serif:id="OC" + x="2360.6299" + y="1231.86" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL34" + serif:id="PTL"> + <rect + id="PTL35" + serif:id="PTL" + x="2213.1299" + y="1202.86" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS34" + serif:id="OPS"> + <rect + id="OPS35" + serif:id="OPS" + x="2424.8101" + y="1119.33" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG34" + serif:id="UG"> + <rect + id="UG35" + serif:id="UG" + x="2081.1799" + y="1113" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK34" + serif:id="MK" + transform="translate(68.11229,14.336908)"> + <rect + id="MK35" + serif:id="MK" + x="2181.5601" + y="1077.04" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Barika"> - <g id="OC36" serif:id="OC"> - <rect id="OC37" serif:id="OC" x="1814.38" y="1249.42" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL36" serif:id="PTL"> - <rect id="PTL37" serif:id="PTL" x="1681.26" y="1291.42" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS36" serif:id="OPS"> - <rect id="OPS37" serif:id="OPS" x="1913.38" y="1081.85" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG36" serif:id="UG"> - <rect id="UG37" serif:id="UG" x="1696.76" y="1034.08" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK36" serif:id="MK"> - <rect id="MK37" serif:id="MK" x="1687.33" y="1156.02" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Barika"> + <g + id="OC36" + serif:id="OC"> + <rect + id="OC37" + serif:id="OC" + x="1814.38" + y="1249.42" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL36" + serif:id="PTL"> + <rect + id="PTL37" + serif:id="PTL" + x="1681.26" + y="1291.42" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS36" + serif:id="OPS"> + <rect + id="OPS37" + serif:id="OPS" + x="1913.38" + y="1081.85" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG36" + serif:id="UG"> + <rect + id="UG37" + serif:id="UG" + x="1696.76" + y="1034.08" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK36" + serif:id="MK" + transform="translate(75.287936,-11.917487)"> + <rect + id="MK37" + serif:id="MK" + x="1687.33" + y="1156.02" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Souk-Ahras" serif:id="Souk Ahras"> - <g id="OC38" serif:id="OC"> - <rect id="OC39" serif:id="OC" x="2460.37" y="954.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL38" serif:id="PTL"> - <rect id="PTL39" serif:id="PTL" x="2357.75" y="953.472" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS38" serif:id="OPS"> - <rect id="OPS39" serif:id="OPS" x="2469.37" y="844.941" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG38" serif:id="UG"> - <rect id="UG39" serif:id="UG" x="2353.75" y="840.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK38" serif:id="MK"> - <rect id="MK39" serif:id="MK" x="2451.09" y="682.903" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Souk-Ahras" + serif:id="Souk Ahras"> + <g + id="OC38" + serif:id="OC"> + <rect + id="OC39" + serif:id="OC" + x="2460.3701" + y="954.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL38" + serif:id="PTL"> + <rect + id="PTL39" + serif:id="PTL" + x="2357.75" + y="953.47198" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS38" + serif:id="OPS"> + <rect + id="OPS39" + serif:id="OPS" + x="2469.3701" + y="844.94098" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG38" + serif:id="UG"> + <rect + id="UG39" + serif:id="UG" + x="2353.75" + y="840.94098" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK38" + serif:id="MK"> + <rect + id="MK39" + serif:id="MK" + x="2451.0901" + y="682.90302" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Constantine"> - <g id="OC40" serif:id="OC"> - <rect id="OC41" serif:id="OC" x="2173.57" y="436.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL40" serif:id="PTL"> - <rect id="PTL41" serif:id="PTL" x="2070.94" y="436.472" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS40" serif:id="OPS"> - <rect id="OPS41" serif:id="OPS" x="2173.57" y="329.941" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG40" serif:id="UG"> - <rect id="UG41" serif:id="UG" x="2070.94" y="329.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK40" serif:id="MK"> - <rect id="MK41" serif:id="MK" x="2270" y="234" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Constantine"> + <g + id="OC40" + serif:id="OC"> + <rect + id="OC41" + serif:id="OC" + x="2173.5701" + y="436.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL40" + serif:id="PTL"> + <rect + id="PTL41" + serif:id="PTL" + x="2070.9399" + y="436.47198" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS40" + serif:id="OPS"> + <rect + id="OPS41" + serif:id="OPS" + x="2173.5701" + y="329.94101" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG40" + serif:id="UG"> + <rect + id="UG41" + serif:id="UG" + x="2070.9399" + y="329.94101" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK40" + serif:id="MK" + transform="translate(-148.70719,-9.6519772)"> + <rect + id="MK41" + serif:id="MK" + x="2270" + y="234" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Philippeville"> - <g id="OC42" serif:id="OC"> - <rect id="OC43" serif:id="OC" x="2205.13" y="936" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL42" serif:id="PTL"> - <rect id="PTL43" serif:id="PTL" x="2217.76" y="783.469" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS42" serif:id="OPS"> - <rect id="OPS43" serif:id="OPS" x="2316.76" y="686.939" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG42" serif:id="UG"> - <rect id="UG43" serif:id="UG" x="2214.76" y="581.939" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK42" serif:id="MK"> - <rect id="MK43" serif:id="MK" x="2317.5" y="516" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Philippeville"> + <g + id="OC42" + serif:id="OC"> + <rect + id="OC43" + serif:id="OC" + x="2205.1299" + y="936" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL42" + serif:id="PTL"> + <rect + id="PTL43" + serif:id="PTL" + x="2217.76" + y="783.46899" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS42" + serif:id="OPS"> + <rect + id="OPS43" + serif:id="OPS" + x="2316.76" + y="686.93903" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG42" + serif:id="UG"> + <rect + id="UG43" + serif:id="UG" + x="2214.76" + y="581.93903" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK42" + serif:id="MK" + transform="translate(23.173328,14.909103)"> + <rect + id="MK43" + serif:id="MK" + x="2317.5" + y="516" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Setif"> - <g id="OC44" serif:id="OC"> - <rect id="OC45" serif:id="OC" x="2015.26" y="938" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL44" serif:id="PTL"> - <rect id="PTL45" serif:id="PTL" x="1843.26" y="904" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS44" serif:id="OPS"> - <rect id="OPS45" serif:id="OPS" x="2060.38" y="639.998" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG44" serif:id="UG"> - <rect id="UG45" serif:id="UG" x="1952.76" y="697.484" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK44" serif:id="MK"> - <rect id="MK45" serif:id="MK" x="2047.76" y="804" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Setif"> + <g + id="OC44" + serif:id="OC"> + <rect + id="OC45" + serif:id="OC" + x="2015.26" + y="938" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL44" + serif:id="PTL"> + <rect + id="PTL45" + serif:id="PTL" + x="1843.26" + y="904" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS44" + serif:id="OPS"> + <rect + id="OPS45" + serif:id="OPS" + x="2060.3799" + y="639.99799" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG44" + serif:id="UG"> + <rect + id="UG45" + serif:id="UG" + x="1952.76" + y="697.48401" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK44" + serif:id="MK"> + <rect + id="MK45" + serif:id="MK" + x="1975.0994" + y="812.76428" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Algiers"> - <g id="OC46" serif:id="OC"> - <rect id="OC47" serif:id="OC" x="1299.38" y="470.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL46" serif:id="PTL"> - <rect id="PTL47" serif:id="PTL" x="1196.76" y="470.472" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS46" serif:id="OPS"> - <rect id="OPS47" serif:id="OPS" x="1299.38" y="363.941" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG46" serif:id="UG"> - <rect id="UG47" serif:id="UG" x="1196.76" y="363.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK46" serif:id="MK"> - <rect id="MK47" serif:id="MK" x="1352.5" y="264" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Algiers"> + <g + id="OC46" + serif:id="OC"> + <rect + id="OC47" + serif:id="OC" + x="1299.38" + y="470.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL46" + serif:id="PTL"> + <rect + id="PTL47" + serif:id="PTL" + x="1196.76" + y="470.47198" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS46" + serif:id="OPS"> + <rect + id="OPS47" + serif:id="OPS" + x="1299.38" + y="363.94101" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG46" + serif:id="UG"> + <rect + id="UG47" + serif:id="UG" + x="1196.76" + y="363.94101" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK46" + serif:id="MK" + transform="translate(-102.82652,2.0087743)"> + <rect + id="MK47" + serif:id="MK" + x="1352.5" + y="264" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Oran"> - <g id="OC48" serif:id="OC"> - <rect id="OC49" serif:id="OC" x="537.627" y="710.472" width="77" height="77" style="fill:#ed2939;fill-opacity:0.5;"/> - </g> - <g id="PTL48" serif:id="PTL"> - <rect id="PTL49" serif:id="PTL" x="435" y="710.472" width="77" height="77" style="fill:#78ed29;fill-opacity:0.5;"/> - </g> - <g id="OPS48" serif:id="OPS"> - <rect id="OPS49" serif:id="OPS" x="537.627" y="603.941" width="77" height="77" style="fill:#a629ed;fill-opacity:0.5;"/> - </g> - <g id="UG48" serif:id="UG"> - <rect id="UG49" serif:id="UG" x="435" y="603.941" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK48" serif:id="MK"> - <rect id="MK49" serif:id="MK" x="579.5" y="503.396" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="Oran"> + <g + id="OC48" + serif:id="OC"> + <rect + id="OC49" + serif:id="OC" + x="537.62701" + y="710.47198" + width="77" + height="77" + style="fill:#ed2939;fill-opacity:0.5" /> + </g> + <g + id="PTL48" + serif:id="PTL"> + <rect + id="PTL49" + serif:id="PTL" + x="435" + y="710.47198" + width="77" + height="77" + style="fill:#78ed29;fill-opacity:0.5" /> + </g> + <g + id="OPS48" + serif:id="OPS"> + <rect + id="OPS49" + serif:id="OPS" + x="537.62701" + y="603.94098" + width="77" + height="77" + style="fill:#a629ed;fill-opacity:0.5" /> + </g> + <g + id="UG48" + serif:id="UG"> + <rect + id="UG49" + serif:id="UG" + x="435" + y="603.94098" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK48" + serif:id="MK" + transform="translate(-91.537866,4.9114136)"> + <rect + id="MK49" + serif:id="MK" + x="579.48608" + y="495.03915" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> - <g id="Morocco"> - <g id="UG50" serif:id="UG"> - <rect id="UG51" serif:id="UG" x="117.5" y="1773.55" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> + <g + id="Morocco"> + <g + id="UG50" + serif:id="UG"> + <rect + id="UG51" + serif:id="UG" + x="117.5" + y="1773.55" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> </g> </g> - <g id="Tunisia"> - <g id="UG52" serif:id="UG"> - <rect id="UG53" serif:id="UG" x="2508.5" y="1676.05" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> + <g + id="Tunisia"> + <g + id="UG52" + serif:id="UG"> + <rect + id="UG53" + serif:id="UG" + x="2508.5" + y="1676.05" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> </g> </g> - <g id="France"> - <g id="UG54" serif:id="UG"> - <rect id="UG55" serif:id="UG" x="1698.78" y="253.33" width="77" height="77" style="fill:#edb029;fill-opacity:0.5;"/> - </g> - <g id="MK50" serif:id="MK"> - <rect id="MK51" serif:id="MK" x="1787.44" y="192.298" width="77" height="77" style="fill:#2f29ed;fill-opacity:0.5;"/> + <g + id="France"> + <g + id="UG54" + serif:id="UG"> + <rect + id="UG55" + serif:id="UG" + x="1698.78" + y="253.33" + width="77" + height="77" + style="fill:#edb029;fill-opacity:0.5" /> + </g> + <g + id="MK50" + serif:id="MK"> + <rect + id="MK51" + serif:id="MK" + x="1787.4399" + y="192.298" + width="77" + height="77" + style="fill:#2f29ed;fill-opacity:0.5" /> </g> </g> </g> |