def METHOD_NAME():
    # parse the command line, exit with UNKNOWN if it fails
    try:
        args = parse_args()
    except SystemExit:
        sys.exit(3)
    with open(args.INPUT_FILE, 'rb') as file:
        data = json.load(file)
    if args.AUTO:
        for row in data['panels']:
            if row['type'] == 'row':
                row_title = row['title']
                uid = row_title.lower().replace(' ', '-').replace('/', '').replace('---', '-').replace('_', '-')
                windows = bool('windows' in uid)
                if uid == 'default':
                    out_filename = 'assets/grafana/{}{}.json'.format(uid, args.FILENAME_POSTFIX)
                else:
                    out_filename = 'check-plugins/{}/{}{}.json'.format(uid.replace("-windows", ""), uid, args.FILENAME_POSTFIX)
                new_panels = get_panels(row['panels'])
                # re-read the json, as orig_data should not be a reference to data, and copy.deepcopy() is slower than json.load().
                with open(args.INPUT_FILE, 'rb') as file:
                    orig_data = json.load(file)
                    new_dashboard = generate_new_dashboards(orig_data, new_panels, row_title, uid)
                save_dashboard_to_file(new_dashboard, out_filename)
                if args.GENERATE_ICINGAWEB2_INI:
                    panel_ids = [str(panel['id']) for panel in new_dashboard['panels']]
                    repeatable = any([panel.get('repeat') for panel in new_dashboard['panels']])
                    if uid == 'default':
                        out_filename = 'assets/grafana/{}{}.json'.format(uid, args.FILENAME_POSTFIX)
                    else:
                        out_filename = 'check-plugins/{}/icingaweb2-module-grafana/{}.ini'.format(uid.replace("-windows", ""), uid)
                    generate_icingaweb_ini(out_filename, row_title, uid, panel_ids, repeatable, windows)
        sys.exit()
    all_panels = get_panels(data['panels'])
    all_panels_desc = [(panel['id'], '{} ({})'.format(panel['title'], panel['type'])) for panel in all_panels]
    print('Which panels(s) would you like to combine?')
    print('- ' * 40)
    all_panels_desc = sorted(all_panels_desc, key=lambda item: item[1])
    for index, text in enumerate(all_panels_desc):
        print('{}: {}'.format(index, text[1]))
    print('- ' * 40)
    try:
        selection = input('Select the appropriate numbers separated by commas: ').strip(',').split(',')
        selection = [int(item.strip()) for item in selection]
        new_title = input('Choose the title for the new dashboard: ').strip()
        new_uid = input('Choose the uid for the new dashboard: ').strip()
        out_filename = input('Choose the filename: ').strip()
    except KeyboardInterrupt:
        sys.exit()
    except ValueError:
        print('Failed to parse selection.')
        sys.exit(3)
    new_panel_ids = [all_panels_desc[index][0] for index in selection]
    new_panels = [panel for panel in get_panels(data['panels']) if panel['id'] in new_panel_ids]
    new_dashboard = generate_new_dashboards(data, new_panels, new_title, new_uid)
    save_dashboard_to_file(new_dashboard, out_filename)