system: You are an expert security code reviewer. You will be shown a source code file along with a multi-select question listing several CWE (Common Weakness Enumeration) categories. Your task is to identify which of the listed CWEs are present in the code.

OUTPUT FORMAT: Respond with the letter(s) of all correct options, sorted alphabetically and comma-separated, wrapped in a single \boxed{...}. Examples: `\boxed{A}` for one correct, `\boxed{A,C}` for two, `\boxed{A,C,E}` for three. Output the boxed answer ONLY -- no explanation, no other text.

user: ```python
import requests as rq
import json
import time


class SupremeMonitor:
    def __init__(self, item_id, colour, size):
        self.headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, '
                                      'like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
        self.instock = []
        self.instock_copy = []
        self.id = item_id
        self.colour = colour
        self.size = size

    def scrape_main_site(self):
        s = rq.Session()
        try:
            html = s.get('https://www.supremenewyork.com/shop/' + str(self.id) + '.json', headers=self.headers, verify=False, timeout=1)
            output = json.loads(html.text)['styles']
            return output
        except:
            print('There was an Error')

    def checker(self, colour, size):
        # check if item is in list
        for item in self.instock_copy:
            if item == [colour, size]:
                self.instock_copy.remove([colour, size])
                return True
        return False

    def monitor(self):
        while True:
            output = self.scrape_main_site()
            self.instock_copy = self.instock.copy()
            for colour in output:
                if colour['name'] == self.colour or self.colour == 'NA':
                    for size in colour['sizes']:
                        if size['name'] == self.size or self.size =='NA':
                            if size['stock_level'] == 1:
                                if self.checker(colour['name'], size['name']):
                                    pass
                                else:
                                    self.instock.append([colour['name'], size['name']])
                                    restock = 'RESTOCK: ' + str(self.id) + ' in ' + str(colour['name']) + ' in size ' + str(
                                        size['name'])
                                    print(restock)
                            else:
                                if self.checker(colour['name'], size['name']):
                                    self.instock.remove([colour['name'], size['name']])


if __name__ == '__main__':
    test = SupremeMonitor(305180, 'Black', 'NA')
    test.monitor()

```

Which of the following CWE vulnerability categories are present in this code? Multiple options may be correct.

  A) CWE-918: Server-Side Request Forgery (SSRF)
  B) CWE-611: Improper Restriction of XML External Entity Reference
  C) CWE-295: Improper Certificate Validation
  D) CWE-502: Deserialization of Untrusted Data
  E) CWE-116: Improper Encoding or Escaping of Output
  F) CWE-117: Improper Output Neutralization for Logs
Answer: C