prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Spider superonefoods is broken
  During the global build at 2021-09-22-14-42-27, spider **superonefoods** failed with **0 features** and **1 errors**.
  
  Here's [the log](https://data.alltheplaces.xyz/runs/2021-09-22-14-42-27/logs/superonefoods.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-09-22-14-42-27/output/superonefoods.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-09-22-14-42-27/output/superonefoods.geojson))
  
  </issue>
  <code>
  [start of locations/spiders/superonefoods.py]
  1 # -*- coding: utf-8 -*-
  2 import json
  3 import scrapy
  4 
  5 from locations.items import GeojsonPointItem
  6 
  7 
  8 class SuperonefoodsSpider(scrapy.Spider):
  9     name = "superonefoods"
  10     item_attributes = { 'brand': "Super One Foods" }
  11     allowed_domains = ["www.superonefoods.com"]
  12     start_urls = (
  13         'https://www.superonefoods.com/store-finder',
  14     )
  15 
  16     def parse(self, response):
  17         # retrieve js data variable from script tag
  18         items = response.xpath('//script/text()')[3].re("var stores =(.+?);\n")
  19 
  20         # convert data variable from unicode to string
  21         items = [str(x) for x in items]
  22 
  23         # convert type string representation of list to type list
  24         data = [items[0]]
  25 
  26         # load list into json object for parsing
  27         jsondata = json.loads(data[0])
  28 
  29         # loop through json data object and retrieve values; yield the values to GeojsonPointItem
  30         for item in jsondata:
  31             yield GeojsonPointItem(
  32                 ref=item.get('_id'),
  33                 lat=float(item.get('latitude')),
  34                 lon=float(item.get('longitude')),
  35                 addr_full=item.get('address'),
  36                 city=item.get('city'),
  37                 state=item.get('state'),
  38                 postcode=item.get('zip'),
  39                 website='https://www.superonefoods.com/store-details/'+item.get('url'),
  40             )
  41
  [end of locations/spiders/superonefoods.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/locations/spiders/superonefoods.py b/locations/spiders/superonefoods.py
  --- a/locations/spiders/superonefoods.py
  +++ b/locations/spiders/superonefoods.py
  @@ -15,7 +15,7 @@
   
       def parse(self, response):
           # retrieve js data variable from script tag
  -        items = response.xpath('//script/text()')[3].re("var stores =(.+?);\n")
  +        items = response.xpath('//script/text()')[4].re("var stores =(.+?);\n")
   
           # convert data variable from unicode to string
           items = [str(x) for x in items]
  
verification_info: {"golden_diff": "diff --git a/locations/spiders/superonefoods.py b/locations/spiders/superonefoods.py\n--- a/locations/spiders/superonefoods.py\n+++ b/locations/spiders/superonefoods.py\n@@ -15,7 +15,7 @@\n \n     def parse(self, response):\n         # retrieve js data variable from script tag\n-        items = response.xpath('//script/text()')[3].re(\"var stores =(.+?);\\n\")\n+        items = response.xpath('//script/text()')[4].re(\"var stores =(.+?);\\n\")\n \n         # convert data variable from unicode to string\n         items = [str(x) for x in items]\n", "issue": "Spider superonefoods is broken\nDuring the global build at 2021-09-22-14-42-27, spider **superonefoods** failed with **0 features** and **1 errors**.\n\nHere's [the log](https://data.alltheplaces.xyz/runs/2021-09-22-14-42-27/logs/superonefoods.txt) and [the output](https://data.alltheplaces.xyz/runs/2021-09-22-14-42-27/output/superonefoods.geojson) ([on a map](https://data.alltheplaces.xyz/map.html?show=https://data.alltheplaces.xyz/runs/2021-09-22-14-42-27/output/superonefoods.geojson))\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\nimport json\nimport scrapy\n\nfrom locations.items import GeojsonPointItem\n\n\nclass SuperonefoodsSpider(scrapy.Spider):\n    name = \"superonefoods\"\n    item_attributes = { 'brand': \"Super One Foods\" }\n    allowed_domains = [\"www.superonefoods.com\"]\n    start_urls = (\n        'https://www.superonefoods.com/store-finder',\n    )\n\n    def parse(self, response):\n        # retrieve js data variable from script tag\n        items = response.xpath('//script/text()')[3].re(\"var stores =(.+?);\\n\")\n\n        # convert data variable from unicode to string\n        items = [str(x) for x in items]\n\n        # convert type string representation of list to type list\n        data = [items[0]]\n\n        # load list into json object for parsing\n        jsondata = json.loads(data[0])\n\n        # loop through json data object and retrieve values; yield the values to GeojsonPointItem\n        for item in jsondata:\n            yield GeojsonPointItem(\n                ref=item.get('_id'),\n                lat=float(item.get('latitude')),\n                lon=float(item.get('longitude')),\n                addr_full=item.get('address'),\n                city=item.get('city'),\n                state=item.get('state'),\n                postcode=item.get('zip'),\n                website='https://www.superonefoods.com/store-details/'+item.get('url'),\n            )\n", "path": "locations/spiders/superonefoods.py"}]}