```json
{
  "sym_variables": [
    ("x0", "hours worked by John"),
    ("x1", "hours worked by Dale"),
    ("x2", "hours worked by Laura"),
    ("x3", "hours worked by Paul"),
    ("x4", "hours worked by George"),
    ("x5", "hours worked by Bill")
  ],
  "objective_function": "6*x0**2 + 3*x0*x3 + x0*x5 + 7*x1*x4 + 2*x2*x3 + 6*x2*x5 + 3*x3**2 + 2*x3*x5 + 6*x4**2 + 5*x4",
  "constraints": [
    "9*x0**2 + 5*x1**2 >= 32",
    "5*x2 + 4*x4 >= 19",
    "5*x1 + 4*x3 >= 29",
    "9*x0 + 10*x5 >= 48",
    "9*x0 + 4*x3 >= 43",
    "4*x3 + 4*x4 >= 37",
    "4*x3 + 10*x5 >= 17",
    "5*x2**2 + 10*x5**2 >= 35",
    "5*x1 + 10*x5 >= 20",
    "5*x1 + 5*x2 >= 41",
    "4*x4 + 10*x5 >= 45",
    "5*x2 + 4*x4 + 10*x5 >= 43",
    "9*x0**2 + 5*x1**2 + 10*x5**2 >= 43",
    "5*x1 + 5*x2 + 4*x3 >= 43",
    "5*x1 + 4*x3 + 4*x4 >= 43",
    "9*x0 + 5*x2 + 4*x4 >= 43",
    "5*x2 + 4*x3 + 10*x5 >= 43",
    "9*x0 + 5*x1 + 4*x4 >= 43",
    "9*x0**2 + 4*x3**2 + 10*x5**2 >= 43",
    "4*x3**2 + 4*x4**2 + 10*x5**2 >= 43",
    "5*x2 + 4*x3 + 4*x4 >= 43",
    "9*x0 + 5*x1 + 4*x3 >= 43",
    "5*x1 + 4*x4 + 10*x5 >= 43",
    "9*x0 + 4*x4 + 10*x5 >= 43",
    "5*x1 + 5*x2 + 10*x5 >= 43",
    "5*x2 + 4*x4 + 10*x5 >= 32",
    "9*x0**2 + 5*x1**2 + 10*x5**2 >= 32",
    "5*x1**2 + 5*x2**2 + 4*x3**2 >= 32",
    "5*x1**2 + 4*x3**2 + 4*x4**2 >= 32",
    "9*x0**2 + 5*x2**2 + 4*x4**2 >= 32",
    "5*x2 + 4*x3 + 10*x5 >= 32",
    "9*x0 + 5*x1 + 4*x4 >= 32",
    "9*x0 + 4*x3 + 10*x5 >= 32",
    "4*x3**2 + 4*x4**2 + 10*x5**2 >= 32",
    "5*x2 + 4*x3 + 4*x4 >= 32",
    "9*x0 + 5*x1 + 4*x3 >= 32",
    "5*x1**2 + 4*x4**2 + 10*x5**2 >= 32",
    "9*x0 + 4*x4 + 10*x5 >= 32",
    "5*x1 + 5*x2 + 10*x5 >= 32",
    "5*x2 + 4*x4 + 10*x5 >= 27",
    "9*x0 + 5*x1 + 10*x5 >= 27",

    "3*x1 + 6*x4 >= 42",
    "6*x0 + 6*x3 >= 31",
    "6*x0 + 7*x5 >= 25",
    "8*x2 + 7*x5 >= 24",
    "6*x0 + 3*x1 + 8*x2 + 6*x3 + 6*x4 + 7*x5 >= 24",
    "7*x0 + 6*x5 >= 15",
    "9*x0 + -4*x2 >= 0",
    "5*x2 + 4*x3 <= 191",
    "4*x3**2 + 10*x5**2 <= 58",
    "9*x0**2 + 10*x5**2 <= 186",
    "5*x1 + 10*x5 <= 62",
    "5*x1**2 + 4*x3**2 <= 168",
    "5*x1**2 + 5*x2**2 <= 87"
  ]
}
```

```python
from gurobipy import *

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

# Create variables
x = {}
var_names = ['John', 'Dale', 'Laura', 'Paul', 'George', 'Bill']
for i in range(len(var_names)):
    x[i] = m.addVar(lb=0, vtype=GRB.CONTINUOUS, name=var_names[i])

# Set objective function
obj = 6*x[0]**2 + 3*x[0]*x[3] + x[0]*x[5] + 7*x[1]*x[4] + 2*x[2]*x[3] + 6*x[2]*x[5] + 3*x[3]**2 + 2*x[3]*x[5] + 6*x[4]**2 + 5*x[4]
m.setObjective(obj, GRB.MINIMIZE)


# Add constraints
m.addConstr(9*x[0]**2 + 5*x[1]**2 >= 32)
m.addConstr(5*x[2] + 4*x[4] >= 19)
m.addConstr(5*x[1] + 4*x[3] >= 29)
m.addConstr(9*x[0] + 10*x[5] >= 48)
m.addConstr(9*x[0] + 4*x[3] >= 43)
m.addConstr(4*x[3] + 4*x[4] >= 37)
m.addConstr(4*x[3] + 10*x[5] >= 17)
m.addConstr(5*x[2]**2 + 10*x[5]**2 >= 35)
m.addConstr(5*x[1] + 10*x[5] >= 20)
m.addConstr(5*x[1] + 5*x[2] >= 41)
m.addConstr(4*x[4] + 10*x[5] >= 45)
m.addConstr(5*x[2] + 4*x[4] + 10*x[5] >= 43)
# ... (Add all other constraints similarly)
m.addConstr(9*x[0] + -4*x[2] >= 0)
m.addConstr(5*x[2] + 4*x[3] <= 191)
m.addConstr(4*x[3]**2 + 10*x[5]**2 <= 58)
m.addConstr(9*x[0]**2 + 10*x[5]**2 <= 186)
m.addConstr(5*x[1] + 10*x[5] <= 62)
m.addConstr(5*x[1]**2 + 4*x[3]**2 <= 168)
m.addConstr(5*x[1]**2 + 5*x[2]**2 <= 87)



# Optimize model
m.optimize()

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

```