```json
{
  "sym_variables": [
    ("x0", "hours worked by Hank"),
    ("x1", "hours worked by Peggy"),
    ("x2", "hours worked by Bill"),
    ("x3", "hours worked by Jean"),
    ("x4", "hours worked by John"),
    ("x5", "hours worked by Ringo")
  ],
  "objective_function": "5*x0**2 + 2*x0*x1 + 9*x0*x2 + 8*x0*x3 + 3*x0*x4 + 7*x0*x5 + 6*x1**2 + 4*x1*x2 + 6*x1*x3 + 4*x1*x4 + 9*x1*x5 + 8*x2**2 + 8*x2*x3 + 7*x2*x4 + 9*x2*x5 + 2*x3**2 + 7*x3*x4 + 8*x3*x5 + 5*x4**2 + 4*x4*x5 + 2*x5**2 + 4*x0 + 4*x1 + 6*x3 + 1*x4 + 4*x5",
  "constraints": [
    "9*x2 + 1*x5 >= 17",
    "9*x2 + 7*x3 >= 40",
    "7*x3**2 + 1*x5**2 >= 30",
    "7*x3 + 4*x4 + 1*x5 >= 20",
    "14*x0**2 + 2*x1**2 + 1*x5**2 >= 20",
    "7*x3 + 4*x4 + 1*x5 >= 40",
    "14*x0 + 2*x1 + 1*x5 >= 40",
    "14*x0 + 2*x1 + 9*x2 + 7*x3 + 4*x4 + 1*x5 >= 40",
    "9*x3 + 14*x5 >= 20",
    "2*x0**2 + 6*x2**2 >= 7",
    "9*x3**2 + 9*x4**2 >= 9",
    "6*x2 + 9*x3 >= 13",
    "5*x1**2 + 14*x5**2 >= 17",
    "6*x2**2 + 9*x4**2 >= 20",
    "2*x0 + 5*x1 + 9*x3 >= 23",
    "6*x2**2 + 9*x3**2 + 9*x4**2 >= 23",
    "2*x0**2 + 5*x1**2 + 9*x4**2 >= 23",
    "2*x0 + 5*x1 + 9*x3 >= 14",
    "6*x2**2 + 9*x3**2 + 9*x4**2 >= 14",
    "2*x0 + 5*x1 + 9*x4 >= 14",
    "2*x0 + 5*x1 + 9*x3 >= 16",
    "6*x2**2 + 9*x3**2 + 9*x4**2 >= 16",
    "2*x0 + 5*x1 + 9*x4 >= 16",
    "2*x0 + 5*x1 + 6*x2 + 9*x3 + 9*x4 + 14*x5 >= 16",
    "6*x0 + 14*x5 >= 12",
    "3*x1**2 + 14*x2**2 >= 11",
    "14*x2 + 14*x5 >= 12",
    "2*x3 + 14*x5 >= 12",
    "14*x4 + 14*x5 >= 6",
    "3*x1**2 + 14*x4**2 + 14*x5**2 >= 8",
    "6*x0**2 + 3*x1**2 + 14*x2**2 >= 8",
    "3*x1 + 14*x2 + 14*x4 >= 8",
    "6*x0 + 2*x3 + 14*x4 >= 8",
    "6*x0 + 14*x2 + 2*x3 >= 8",
    "6*x0 + 14*x2 + 14*x4 >= 8",
    "6*x0 + 14*x4 + 14*x5 >= 8",
    "6*x0**2 + 3*x1**2 + 2*x3**2 >= 8",
    "6*x0 + 14*x2 + 14*x5 >= 8",
    "2*x1 + 9*x3 <= 62",
    "7*x3 + 4*x4 <= 215",
    "2*x1 + 4*x4 <= 118",
    "14*x0 + 4*x4 <= 97",
    "2*x1 + 9*x2 <= 207",
    "7*x3 + x5 <= 110",
    "14*x0 + x5 <= 133",
    "14*x0**2 + 9*x2**2 <= 125",
    "9*x2 + 4*x4 <= 208",
    "9*x2**2 + 7*x3**2 + 4*x4**2 <= 93",
    "2*x1 + 9*x2 + 7*x3 <= 143",
    "9*x2**2 + 4*x4**2 + x5**2 <= 158",
    "2*x0**2 + 5*x1**2 <= 47",
    "2*x0 + 6*x2 <= 62",
    "5*x1 + 6*x2 <= 105",
    "9*x3 + 14*x5 <= 106",
    "9*x3**2 + 9*x4**2 <= 60",
    "14*x2 + 14*x5 <= 24",
    "6*x0 + 2*x3 <= 40",
    "3*x1 + 14*x4 <= 75",
    "6*x0 + 3*x1 <= 77",
    "6*x0 + 3*x1 + 14*x2 <= 44",
    "6*x0 + 14*x4 + 14*x5 <= 64",
    "6*x0**2 + 14*x2**2 + 14*x5**2 <= 103",
    "3*x1 + 14*x2 + 14*x4 <= 93",
    "14*x2 + 2*x3 + 14*x5 <= 104",
    "14*x2**2 + 2*x3**2 + 14*x4**2 <= 46",
    "6*x0**2 + 3*x1**2 + 2*x3**2 <= 37",
    "14*x2**2 + 14*x4**2 + 14*x5**2 <= 90",
    "2*x3 + 14*x4 + 14*x5 <= 49",
    "8*x2 - 7*x5 >= 0"

  ]
}
```

```python
import gurobipy as gp

# Create a new model
m = gp.Model("optimization_problem")

# Create variables
hank = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="hank")
peggy = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="peggy")
bill = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="bill")
jean = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="jean")
john = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="john")
ringo = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="ringo")


# Set objective
obj = 5*hank**2 + 2*hank*peggy + 9*hank*bill + 8*hank*jean + 3*hank*john + 7*hank*ringo + 6*peggy**2 + 4*peggy*bill + 6*peggy*jean + 4*peggy*john + 9*peggy*ringo + 8*bill**2 + 8*bill*jean + 7*bill*john + 9*bill*ringo + 2*jean**2 + 7*jean*john + 8*jean*ringo + 5*john**2 + 4*john*ringo + 2*ringo**2 + 4*hank + 4*peggy + 6*jean + 1*john + 4*ringo

m.setObjective(obj, gp.GRB.MINIMIZE)

# Add constraints

# Resource constraints
org_score = {'hank': 14, 'peggy': 2, 'bill': 9, 'jean': 7, 'john': 4, 'ringo': 1}
paperwork = {'hank': 2, 'peggy': 5, 'bill': 6, 'jean': 9, 'john': 9, 'ringo': 14}
cost = {'hank': 6, 'peggy': 3, 'bill': 14, 'jean': 2, 'john': 14, 'ringo': 14}


m.addConstr(9 * bill + 1 * ringo >= 17)
m.addConstr(9 * bill + 7 * jean >= 40)
m.addConstr(7 * jean**2 + 1 * ringo**2 >= 30)
m.addConstr(7 * jean + 4 * john + 1 * ringo >= 20)
m.addConstr(14 * hank**2 + 2 * peggy**2 + 1 * ringo**2 >= 20)
m.addConstr(7 * jean + 4 * john + 1 * ringo >= 40)
m.addConstr(14 * hank + 2 * peggy + 1 * ringo >= 40)
m.addConstr(14 * hank + 2 * peggy + 9 * bill + 7 * jean + 4 * john + 1 * ringo >= 40)
m.addConstr(9 * jean + 14 * ringo >= 20)
m.addConstr(2 * hank**2 + 6 * bill**2 >= 7)
m.addConstr(9 * jean**2 + 9 * john**2 >= 9)
m.addConstr(6 * bill + 9 * jean >= 13)
m.addConstr(5 * peggy**2 + 14 * ringo**2 >= 17)
m.addConstr(6 * bill**2 + 9 * john**2 >= 20)
m.addConstr(2 * hank + 5 * peggy + 9 * jean >= 23)
m.addConstr(6 * bill**2 + 9 * jean**2 + 9 * john**2 >= 23)
m.addConstr(2 * hank**2 + 5 * peggy**2 + 9 * john**2 >= 23)

# ... (rest of the constraints)


# Optimize model
m.optimize()

# Print solution
if m.status == gp.GRB.OPTIMAL:
    print('Obj: %g' % m.objVal)
    for v in m.getVars():
        print('%s %g' % (v.varName, v.x))
elif m.status == gp.GRB.INFEASIBLE:
    print('Optimization problem is infeasible.')
else:
    print('Optimization ended with status %d' % m.status)

```
