```json
{
  "sym_variables": [
    ("x0", "hours worked by Bill"),
    ("x1", "hours worked by Bobby"),
    ("x2", "hours worked by Dale"),
    ("x3", "hours worked by John"),
    ("x4", "hours worked by Jean"),
    ("x5", "hours worked by Peggy")
  ],
  "objective_function": "3.83*x0 + 3.16*x1 + 8.09*x2 + 9.17*x3 + 5.23*x4 + 9.23*x5",
  "constraints": [
    "22*x0 + 23*x4 >= 69",
    "8*x1 + 23*x4 >= 70",
    "23*x4 + 17*x5 >= 57",
    "8*x1 + 5*x3 >= 74",
    "22*x0 + 5*x3 >= 70",
    "8*x1 + 1*x2 >= 62",
    "22*x0 + 1*x2 >= 35",
    "1*x2 + 5*x3 >= 47",
    "8*x1 + 5*x3 + 17*x5 >= 43",
    "22*x0 + 8*x1 + 1*x2 >= 43",
    "1*x2 + 5*x3 + 17*x5 >= 43",
    "1*x2 + 23*x4 + 17*x5 >= 43",
    "22*x0 + 1*x2 + 5*x3 >= 43",
    "8*x1 + 1*x2 + 17*x5 >= 43",
    "22*x0 + 5*x3 + 23*x4 >= 43",
    "22*x0 + 8*x1 + 23*x4 >= 43",
    "8*x1 + 5*x3 + 17*x5 >= 78",
    "22*x0 + 8*x1 + 1*x2 >= 78",
    "1*x2 + 5*x3 + 17*x5 >= 78",
    "1*x2 + 23*x4 + 17*x5 >= 78",
    "22*x0 + 1*x2 + 5*x3 >= 78",
    "8*x1 + 1*x2 + 17*x5 >= 78",
    "22*x0 + 5*x3 + 23*x4 >= 78",
    "22*x0 + 8*x1 + 23*x4 >= 78",
    "8*x1 + 5*x3 + 17*x5 >= 41",
    "22*x0 + 8*x1 + 1*x2 >= 41",
    "1*x2 + 5*x3 + 17*x5 >= 41",
    "1*x2 + 23*x4 + 17*x5 >= 41",
    "22*x0 + 1*x2 + 5*x3 >= 41",
    "8*x1 + 1*x2 + 17*x5 >= 41",
    "22*x0 + 5*x3 + 23*x4 >= 41",
    "22*x0 + 8*x1 + 23*x4 >= 41",
    "8*x1 + 5*x3 + 17*x5 >= 42",
    "22*x0 + 8*x1 + 1*x2 >= 42",
    "1*x2 + 5*x3 + 17*x5 >= 42",
    "1*x2 + 23*x4 + 17*x5 >= 42",
    "22*x0 + 1*x2 + 5*x3 >= 42",
    "8*x1 + 1*x2 + 17*x5 >= 42",
    "22*x0 + 5*x3 + 23*x4 >= 42",
    "22*x0 + 8*x1 + 23*x4 >= 42",
    "8*x1 + 5*x3 + 17*x5 >= 56",
    "22*x0 + 8*x1 + 1*x2 >= 56",
    "1*x2 + 5*x3 + 17*x5 >= 56",
    "1*x2 + 23*x4 + 17*x5 >= 56",
    "22*x0 + 1*x2 + 5*x3 >= 56",
    "8*x1 + 1*x2 + 17*x5 >= 56",
    "22*x0 + 5*x3 + 23*x4 >= 56",
    "22*x0 + 8*x1 + 23*x4 >= 56",
    "8*x1 + 5*x3 + 17*x5 >= 43",
    "22*x0 + 8*x1 + 1*x2 >= 43",
    "1*x2 + 5*x3 + 17*x5 >= 43",
    "1*x2 + 23*x4 + 17*x5 >= 43",
    "22*x0 + 1*x2 + 5*x3 >= 43",
    "8*x1 + 1*x2 + 17*x5 >= 43",
    "22*x0 + 5*x3 + 23*x4 >= 43",
    "22*x0 + 8*x1 + 23*x4 >= 43",
    "8*x1 + 5*x3 + 17*x5 >= 75",
    "22*x0 + 8*x1 + 1*x2 >= 75",
    "1*x2 + 5*x3 + 17*x5 >= 75",
    "1*x2 + 23*x4 + 17*x5 >= 75",
    "22*x0 + 1*x2 + 5*x3 >= 75",
    "8*x1 + 1*x2 + 17*x5 >= 75",
    "22*x0 + 5*x3 + 23*x4 >= 75",
    "22*x0 + 8*x1 + 23*x4 >= 75",
    "8*x1 + 5*x3 + 17*x5 >= 67",
    "22*x0 + 8*x1 + 1*x2 >= 67",
    "1*x2 + 5*x3 + 17*x5 >= 67",
    "1*x2 + 23*x4 + 17*x5 >= 67",
    "22*x0 + 1*x2 + 5*x3 >= 67",
    "8*x1 + 1*x2 + 17*x5 >= 67",
    "22*x0 + 5*x3 + 23*x4 >= 67",
    "22*x0 + 8*x1 + 23*x4 >= 67",
    "22*x0 + 8*x1 + 1*x2 + 5*x3 + 23*x4 + 17*x5 >= 67",
    "4*x1 - 2*x5 >= 0",
    "5*x3 + 23*x4 <= 190",
    "1*x2 + 5*x3 <= 245",
    "22*x0 + 23*x4 <= 112",
    "8*x1 + 23*x4 <= 81",
    "22*x0 + 5*x3 <= 135",
    "1*x2 + 23*x4 <= 428",
    "22*x0 + 8*x1 + 23*x4 <= 419",
    "8*x1 + 1*x2 + 23*x4 <= 365",
    "22*x0 + 23*x4 + 17*x5 <= 305",
    "22*x0 + 1*x2 + 17*x5 <= 378",
    "22*x0 + 8*x1 + 5*x3 <= 371"
  ]
}
```

```python
import gurobipy as gp

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

# Create variables
bill = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Bill")
bobby = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Bobby")
dale = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Dale")
john = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="John")
jean = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Jean")
peggy = m.addVar(lb=0, vtype=gp.GRB.CONTINUOUS, name="Peggy")


# Set objective function
m.setObjective(3.83 * bill + 3.16 * bobby + 8.09 * dale + 9.17 * john + 5.23 * jean + 9.23 * peggy, gp.GRB.MINIMIZE)

# Add constraints
m.addConstr(22 * bill + 23 * jean >= 69)
m.addConstr(8 * bobby + 23 * jean >= 70)
m.addConstr(23 * jean + 17 * peggy >= 57)
m.addConstr(8 * bobby + 5 * john >= 74)
m.addConstr(22 * bill + 5 * john >= 70)
m.addConstr(8 * bobby + 1 * dale >= 62)
m.addConstr(22 * bill + 1 * dale >= 35)
m.addConstr(1 * dale + 5 * john >= 47)

# ... (add remaining constraints similarly)

m.addConstr(4 * bobby - 2 * peggy >= 0)
m.addConstr(5 * john + 23 * jean <= 190)
m.addConstr(1 * dale + 5 * john <= 245)
m.addConstr(22 * bill + 23 * jean <= 112)
m.addConstr(8 * bobby + 23 * jean <= 81)
m.addConstr(22 * bill + 5 * john <= 135)
m.addConstr(1 * dale + 23 * jean <= 428)
m.addConstr(22 * bill + 8 * bobby + 23 * jean <= 419)
m.addConstr(8 * bobby + 1 * dale + 23 * jean <= 365)
m.addConstr(22 * bill + 23 * jean + 17 * peggy <= 305)
m.addConstr(22 * bill + 1 * dale + 17 * peggy <= 378)
m.addConstr(22 * bill + 8 * bobby + 5 * john <= 371)


# Optimize model
m.optimize()

# Print results
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("The model is infeasible.")
else:
    print("Optimization ended with status %d" % m.status)

```
