def get_prog_pulls(df, boss_name):
    if (type(df.iloc[0]['start_time']) != 'int'):
        df['start_time'] = [time.mktime(x.to_pydatetime().timetuple()) for x in df['start_time']]
        df['end_time'] = [time.mktime(x.to_pydatetime().timetuple()) for x in df['end_time']]
    kills_df = df.query((('name == "' + boss_name) + '"')).query('zoneDifficulty == 5').query('kill == True')
    first_kill_time = min(kills_df['start_time'])
    return df.query((('name == "' + boss_name) + '"')).query('zoneDifficulty == 5').query(('start_time <= ' + str(first_kill_time)))
def get_prog_pulls(df, boss_name):
    if (type(df.iloc[0]['start_time']) != 'int'):
        df['start_time'] = [time.mktime(x.to_pydatetime().timetuple()) for x in df['start_time']]
        df['end_time'] = [time.mktime(x.to_pydatetime().timetuple()) for x in df['end_time']]
    kills_df = df.query((('name == "' + boss_name) + '"')).query('zoneDifficulty == 5').query('kill == True')
    first_kill_time = min(kills_df['start_time'])
    return df.query((('name == "' + boss_name) + '"')).query('zoneDifficulty == 5').query(('start_time <= ' + str(first_kill_time)))