python3GUI--网络收音机By:PyQt5(附源码)


一.前言

本次使用PyQt5开发一款在线网络收音机,主要是用QT中的QMediaPlayer与一些基础QT GUI组件,支持电台推荐、电台筛选、电台添加、电台收藏,小巧方便。

二.预览

1.推荐

请添加图片描述
软件启动后,会自动推荐电台,鼠标点击电台图标即可开始播放。

2.城市电台

请添加图片描述

3.国家电台

请添加图片描述

4.网络电台

请添加图片描述

5.手动添加音频

请添加图片描述
可以输入一个音频地址,音频格式最好为.mp3或者.m4a格式

6.QSS

请添加图片描述
本次UI设计延续了音乐播放器的UI,没有详细去设计。

三.源代码

1.主界面(Radio_Engine.py)

import os
import sys
import json
import random
import threading
import qtawesome
import webbrowser
from PyQt5.uic import loadUi
from PyQt5.Qt import *
from PyQt5.QtGui import *
from Radio_Engine import Radio_Spider
from about_author import about_dialog
from radio import Ui_MainWindow

class about_author_window(QDialog,about_dialog):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("关于作者")
        self.setFixedSize(400,300)
        self.setupUi(self)

class My_Radio(QMainWindow):

    def __init__(self):
        super().__init__()
        # self.ui=loadUi("radio.ui",self)
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        # self.setFixedSize(self.width(),self.height())
        self.setWindowTitle("My_Radio")
        self.init()
        self.setWindowIcon(QIcon(qtawesome.icon('mdi.radio', color=self.theme_color)))

    def init(self):
        self.theme_color="brown"
        self.__isonline_flag=True
        self.__provence_item={
    
    '北京': '3', '天津': '5', '河北': '7', '上海': '83', '山西': '19', '内蒙古': '31', '辽宁': '44', '吉林': '59', '黑龙江': '69', '江苏': '85', '浙江': '99', '安徽': '111', '福建': '129', '江西': '139', '山东': '151', '河南': '169', '湖北': '187', '湖南': '202', '广东': '217', '广西': '239', '海南': '254', '重庆': '257', '四川': '259', '贵州': '281', '云南': '291', '陕西': '316', '甘肃': '327', '宁夏': '351', '新疆': '357', '西藏': '308', '青海': '342'}
        self.__current_radio_id=""
        self.__current_radio_name=""
        self.__collection_item={
    
    }
        self.__current_radio_station_items={
    
    }
        self.__current_radio_page_no=1
        self.__current_cate_id=0
        self.__max_page_num=0
        self.__random_recommend_list=[]
        self.__author_qq = "tencent://message/?uin=1397852386&Site=Senlon.Net&Menu=yes"
        self.e=Radio_Spider()
        self.ui_init()
        self.player_init()
        self.slot_init()
        self.checknetwork()

    def ui_init(self):
        # self.ui.tableWidget.setColumnHidden(3, True)  # 隐藏第3列,电台ID列
        self.about_ui=about_author_window()
        self.ui.collection_listWidget.hide()

    def slot_init(self):
        self.ui.country_cate_toolButton.clicked.connect(lambda :self.get_radios("country"))
        self.ui.network_cate_toolButton.clicked.connect(lambda :self.get_radios("network"))
        self.ui.city_cate_toolButton.clicked.connect(self.do_select_provence)
        self.ui.recommend_toolButton.clicked.connect(lambda :self.show_random_recommend_list(change=False))
        self.ui.about_sw_toolButton.clicked.connect(lambda :QMessageBox.information(self,"关于软件","本软件为一个在线收音机,依赖互联网。"))
        self.ui.toolButton_7.clicked.connect(self.about_ui.show)
        self.ui.connect_pushButton.clicked.connect(self.connect_to_author)
        self.ui.add_toolButton.clicked.connect(self.add_a_audio)
        self.ui.share_toolButton.clicked.connect(self.do_share_station)
        self.ui.toolButton_21.clicked.connect(lambda :self.do_turn_page("pre",max=True))
        self.ui.toolButton_19.clicked.connect(lambda :self.do_turn_page("pre"))
        self.ui.toolButton_20.clicked.connect(lambda :self.do_turn_page("next"))
        self.ui.toolButton_22.clicked.connect(lambda :self.do_turn_page("next",max=True))
        self.ui.abou_qt_pushButton.clicked.connect(lambda :QMessageBox.aboutQt(self,))
        self.ui.collection_toolButton.clicked.connect(self.show_collections)
        self.ui.do_collection_toolButton.clicked.connect(self.do_collect_radio)
        self.ui.control_toolButton.clicked.connect(self.do_process_pause_and_play)
        self.ui.change_toolButton.clicked.connect(lambda :self.show_random_recommend_list(change=True))
        self.ui.volum_Slider.valueChanged[int].connect(lambda v :self.do_change_player_volume(v))
        self.ui.collection_listWidget.itemDoubleClicked.connect(lambda i:self.do_play_collection(i))

    def player_init(self):
        self.__curPos = ''
        self.__dur = ''
        self.__isonline_flag=True
        self.player = QMediaPlayer(self)
        self.playlist = QMediaPlaylist(self)
        self.player.setPlaylist(self.playlist)
        self.player.durationChanged.connect(self.get_duration_func)#播放进度改变
        self.player.positionChanged.connect(self.get_position_func)#播放位置改版
        self.player.mediaStatusChanged.connect(self.on_mediaStatusChanged)
        self.player.bufferStatusChanged.connect(self.on_bufferStatusChanged)
        self.ui.progress_slider.sliderMoved.connect(self.update_position)

    def do_select_provence(self):
        """
        选择省份
        :return:
        """
        provences=self.__provence_item.keys()
        select,_=QInputDialog.getItem(self, "请选择","请选择一个省份", provences, 0, False)
        if _:
            selected_radio_id=self.__provence_item[select]
            radio_items=self.e.get_city_radio_item(int(selected_radio_id),self.__current_radio_page_no)
            self.__current_radio_page_no=1
            self.__current_cate_id=selected_radio_id
            mid_num=int(radio_items['count']/12)
            self.__max_page_num=mid_num
            self.ui.page_label.setText("""<html><head/><body><p>第<span style=" color:#55aaff;">{current_num}</span>页共<span style=" color:#55aaff;">{max_num}</span>页</p></body></html>""".replace("{current_num}",str(self.__current_radio_page_no)).replace("{max_num}",str(self.__max_page_num)))
            self.show_radio_stations(radio_items['items'])

    def do_collect_radio(self):
        """
        收藏音频
        :return:
        """
        if self.playlist.isEmpty():
            return
        else:
            if not self.new_id_is_in_all(self.__current_radio_id):
                #加入收藏
                self.__collection_item[self.__current_radio_id]=self.__current_radio_name
                if self.__current_radio_id==0:
                    return
                QMessageBox.information(self,"提示",'电台收藏成功!')
            else:
                QMessageBox.warning(self,"警告","此电台已收藏,请勿重复收藏!")
        if self.ui.frame_5.isVisible():
            self.show_collections()

    def show_collections(self):
        """
        我的收藏
        :return:
        """
        self.ui.scrollArea.hide()
        self.ui.collection_listWidget.clear()
        for i in self.__collection_item.values():
            self.ui.collection_listWidget.addItem(QListWidgetItem(i))
        self.ui.frame_5.show()
        self.ui.collection_listWidget.show()

    def new_id_is_in_all(self,new_id):
        """
        判断新ID是否在所有id中
        :param new_id:
        :return:
        """
        ids = self.__collection_item.keys()
        if new_id  in ids:
            return True
        else:
            return False

    @pyqtSlot()
    def do_play_collection(self,item):
        """
        播放收藏的电台
        :param item:
        :return:
        """
        radio_name=item.text()
        #列表反转
        item_reverse = {
    
    k: v for v, k in self.__collection_item.items()}
        radio_id=item_reverse[radio_name]
        self.ui.radio_name_label.setText(radio_name)
        self.play_online_audio(self.e.get_radio_play_mp3_link(radio_id))

    def add_a_audio(self):
        """
        添加一个mp3或者m4a格式音频到收藏
        :return:
        """
        audio_link,_=QInputDialog.getText(self,"请输入","请输入音频地址,最好为mp3或m4a格式")
        if _:
            if audio_link.startswith("http:") or audio_link.startswith("https:"):
                self.play_online_audio(audio_link)
                self.ui.radio_name_label.setText("手动添加音频")
            else:
                QMessageBox.critical(self,"错误","输入不合法,请检查!")

    def get_radios(self,type):
        """
        获取电台列表
        :return:
        """
        if type=="country":
            self.__current_cate_id=409
            item_=self.e.get_country_radio_item(self.__current_radio_page_no)
        elif type=="network":
            self.__current_cate_id=407
            item_=self.e.get_network_radio_item(self.__current_radio_page_no)
        if item_:
            items=item_['items']
            self.__current_radio_page_no=1
            self.ui.toolButton_20.setEnabled(True)
            self.ui.toolButton_19.setEnabled(False)
            mid_num = int(item_['count'] / 12)
            self.__max_page_num = mid_num
            self.ui.page_label.setText("""<html><head/><body><p>第<span style=" color:#55aaff;">{current_num}</span>页共<span style=" color:#55aaff;">{max_num}</span>页</p></body></html>""".replace("{current_num}",str(self.__current_radio_page_no)).replace("{max_num}",str(self.__max_page_num)))
            self.show_radio_stations(items)
        else:
            QMessageBox.critical(self,"错误","获取电台失败!")

    def show_radio_stations(self,items):
        """
        将电台展示到toolbutton中
        :param items:
        :return:
        """
        self.__current_radio_station_items=items
        item_num=len(items)
        for index, item in enumerate(items):
            radio_id = item.get("id")
            loca_file_path = self.e.get_radio_local_img(radio_id)
            if loca_file_path:
                pix = QPixmap(loca_file_path)
                exec("self.ui.toolButton_11{}.setIcon(QIcon(pix))".format(index + 1))
            else:
                # 加载网络上的图片,拉取到本地
                imgUrl = "https:"+item.get("imgUrl")
                self.show_radio_station_imgs(imgUrl, index)
                self.thread_it(self.e.download_imgs,radio_id,imgUrl)
            radio_title = item.get('title')
            radio_now = item.get('desc')
            exec("self.ui.toolButton_11{}.setText(radio_title)".format(index + 1))
            exec("self.ui.toolButton_11{}.setToolTip(radio_now)".format(index + 1))
            try:
                exec("self.ui.toolButton_11{}.clicked.disconnect()")
            except:
                pass
            symbols = {
    
    "self": self}
            exec("self.ui.toolButton_11{}.clicked.connect(lambda:self.on_toolButton_clicked({}))".format(index + 1,item),symbols)
            exec("self.ui.toolButton_11{}.show()".format(index + 1))#按钮显示
        if item_num!=12:
            #对于电台数量少于12个的进行隐藏
            for i in range(item_num,12):
                exec("self.ui.toolButton_11{}.hide()".format(i + 1))#按钮隐藏
        self.ui.scrollArea.show()
        self.ui.frame_5.hide()
        self.do_control_turn_page(hide=False)


    def show_radio_station_imgs(self,url,index):
        """
        加载网络上的图片到toolbutton
        :param url:
        :param index:
        :return:
        """
        img_bytes = self.e.do_get_img_bytes(url)
        # 这里最好设置一个默认值
        if img_bytes:
            pix = QPixmap()
            pix.loadFromData(img_bytes)
            exec("self.ui.toolButton_11{}.setIcon(QIcon(pix))".format(index + 1))
        else:
            #加载网络上的图片失败,则使用默认图片
            pass

    def do_turn_page(self,direction,max=False):
        """
        处理翻页
        :param direction:
        :param max:
        :return:
        """
        if max:
            if direction=="pre":
                self.__current_radio_page_no=1
                self.ui.toolButton_19.setEnabled(False)
                self.ui.toolButton_21.setEnabled(False)
            elif direction=="next":
                self.__current_radio_page_no=self.__max_page_num
                self.ui.toolButton_20.setEnabled(False)
                self.ui.toolButton_19.setEnabled(True)
                self.ui.toolButton_21.setEnabled(True)
        else:
            if direction=="pre":
                if self.__current_radio_page_no-1<=1:
                    self.ui.toolButton_19.setEnabled(False)
                self.__current_radio_page_no-=1
                self.ui.toolButton_19.setEnabled(True)
                self.ui.toolButton_21.setEnabled(True)
            elif direction=="next":
                if self.__current_radio_page_no+1>=self.__max_page_num:
                    self.ui.toolButton_20.setEnabled(False)
                    self.ui.toolButton_19.setEnabled(True)
                    self.ui.toolButton_21.setEnabled(True)
                self.__current_radio_page_no+=1
        radio_item=self.e.get_city_radio_item(self.__current_cate_id,self.__current_radio_page_no)
        if radio_item:
            self.ui.page_label.setText(
                """<html><head/><body><p>第<span style=" color:#55aaff;">{current_num}</span>页共<span style=" color:#55aaff;">{max_num}</span>页</p></body></html>""".replace(
                    "{current_num}", str(self.__current_radio_page_no)).replace("{max_num}",str(self.__max_page_num)))
            self.show_radio_stations(radio_item['items'])

    def get_duration_func(self, d):
        """
        :param d: 播放进度改变
        :return:
        """
        secs = d / 1000
        mins = secs / 60
        secs = secs % 60
        self.__dur = "%d:%d" % (mins, secs)
        self.ui.time_label.setText("{}/{}".format(self.__curPos, self.__dur))
        self.ui.progress_slider.setRange(0, d)
        self.ui.progress_slider.setEnabled(True)

    def do_share_station(self):
        """
        分享电台
        :return:
        """
        real_link=self.e.get_radio_play_mp3_link(self.__current_radio_id)
        clipboard = QApplication.clipboard()
        clipboard.setText(real_link)
        QMessageBox.information(self, '提示', '电台链接已复制到剪切板!')

    def connect_to_author(self):
        ret = QMessageBox.question(self, "联系作者", '是否要与作者进行QQ交谈?', QMessageBox.Yes | QMessageBox.No, QMessageBox.Yes)
        if ret == QMessageBox.Yes:
            webbrowser.open(self.__author_qq)

    def get_position_func(self, p):
        """
        播放位置改变,用此函数控制歌词显示
        :param p:
        :return:
        """
        if (self.ui.progress_slider.isSliderDown()):
            return
        self.ui.progress_slider.setValue(p)
        secs = p / 1000
        mins = secs / 60
        secs = secs % 60
        self.__curPos = "%d:%d" % (mins, secs)
        self.ui.time_label.setText("{}/{}".format(self.__curPos, self.__dur))

    def on_mediaStatusChanged(self,s):
        """
        媒体状态改变触发
        :param s:
        :return:
        """
        if s==QMediaPlayer.BufferingMedia:
            self.ui.radio_name_label.setText("正在缓冲~~~")
        elif s==QMediaPlayer.EndOfMedia:
            self.ui.radio_name_label.setText("播放完成~~~")
        elif s==QMediaPlayer.InvalidMedia:
            QMessageBox.warning(self,"警告","非法音频!")

    @pyqtSlot(int)
    def on_bufferStatusChanged(self,percent):
        """
        音频缓冲事件
        :param percent:
        :return:
        """
        self.ui.radio_name_label.setText(f"正在缓冲({
      
      percent}%)")

    def update_position(self, v):
        """
        播放进度条被改变
        :param v:
        :return:
        """
        self.player.setPosition(v)
        secs = v / 1000
        mins = secs / 60
        secs = secs % 60
        self.__curPos = "%d:%d" % (mins, secs)
        self.ui.time_label.setText("{}/{}".format(self.__curPos, self.__dur))

    def on_toolButton_clicked(self,item):
        """
        点击toolButton触发
        :return:
        """
        self.ui.control_toolButton.setText("暂停")
        radio_name=item.get('title')
        radio_play_now=item.get('desc').replace("正在直播: ","")
        radio_id=item.get('id')
        self.ui.radio_name_label.setText(radio_name+"-"+radio_play_now)
        self.ui.radio_name_label.setToolTip(radio_name+"-"+radio_play_now)
        real_mp3_link=self.e.get_radio_play_mp3_link(radio_id)
        self.__current_radio_id=int(radio_id)
        self.__current_radio_name=radio_name
        self.play_online_audio(real_mp3_link)

    def play_online_audio(self,link):
        """
        播放在线音频 不限于电台
        :param link:
        :return:
        """
        self.playlist.clear()
        song = QMediaContent(QUrl(link))
        self.playlist.addMedia(song)
        self.player.play()

    def get_recommend_radio_stations(self):
        """
        随即推荐电台
        :return:
        """
        rando_city_item=self.e.get_city_radio_item(int(random.choice(list(self.__provence_item.values()))),1)
        all_list=self.e.get_country_and_network_radio_statios()
        if rando_city_item:
            all_list.append(rando_city_item.get("count"))
        all_combine_list=[]
        try:
            for i in all_list:
                for j in i:
                    all_combine_list.append(j)
        except:
            pass
        self.all_combine_list=all_combine_list
        random_list=random.sample(self.all_combine_list,12)
        self.__random_recommend_list=random_list
        self.show_radio_stations(self.__random_recommend_list)
        self.do_control_turn_page()

    def show_random_recommend_list(self,change=False):
        """
        此函数加上get_recommend_radio_stations地返回值,可以刷新推荐
        :return:
        """
        if change:
            random_list=random.sample(self.all_combine_list,12)
            try:
                exec("self.ui.toolButton_11{}.clicked.disconnect()")
            except:
                pass
        else:
            random_list=self.__random_recommend_list
        self.__random_recommend_list=random_list
        self.show_radio_stations(self.__random_recommend_list)
        self.do_control_turn_page()

    def do_control_turn_page(self,hide=True):
        """
        控制是否显示分页
        :param hide:
        :return:
        """
        if hide:
            self.ui.toolButton_19.hide()
            self.ui.toolButton_20.hide()
            self.ui.toolButton_21.hide()
            self.ui.toolButton_22.hide()
            self.ui.page_label.hide()
            self.ui.label_3.show()
            self.ui.change_toolButton.show()
        else:
            self.ui.toolButton_19.show()
            self.ui.toolButton_20.show()
            self.ui.toolButton_21.show()
            self.ui.toolButton_22.show()
            self.ui.page_label.show()
            self.ui.label_3.hide()
            self.ui.toolButton_21.setEnabled(False)
            self.ui.toolButton_19.setEnabled(False)
            self.ui.toolButton_20.setEnabled(True)
            self.ui.toolButton_22.setEnabled(True)
            self.ui.change_toolButton.hide()

    def do_process_pause_and_play(self):
        """
        处理播放/暂停
        :return:
        """
        state=self.player.state()
        if state==1:
            self.player.pause()
            self.ui.control_toolButton.setText("播放")
        elif state==2:
            self.player.play()
            self.ui.control_toolButton.setText("暂停")

    def do_change_player_volume(self,v):
        """
        设置当前音量
        :param v:
        :return:
        """
        self.player.setVolume(v)
        self.ui.volume_label.setText(f"{
      
      v}%")

    def checknetwork(self):
        """
        检测当前网络状态
        :return:
        """
        if self.e.test_net_condition():
            self.__isonline_flag=True
            self.check_is_first_start()
            return
        else:
            box=QMessageBox(QMessageBox.Warning,"警告","您未接入互联网")
            box.setStandardButtons(QMessageBox.Retry|QMessageBox.Cancel)
            btnr=box.button(QMessageBox.Retry)
            btnr.setText("再次尝试一下")
            btnn=box.button(QMessageBox.Cancel)
            btnn.setText("使用离线版")
            box.exec_()
            if box.clickedButton()==btnr:
                self.checknetwork()
            else:
                self.__isonline_flag=False
                return

    def check_is_first_start(self):
        """
        如果第一次启动
        加载电台图片到本地
        :return:
        """
        aim_path="./radio_cache"
        if os.path.exists(aim_path):
            if len(os.listdir(aim_path))>0:
                #加载推荐
                self.do_control_turn_page()
                self.get_recommend_radio_stations()
                return
        all_list=self.e.get_country_and_network_radio_statios()
        all_item=self.e.parse_all_list(all_list)
        self.thread_it(self.e.pull_radio_station_imgs,all_item)

    def thread_it(self, func, *args):
        t = threading.Thread(target=func, args=args)
        t.setDaemon(True)
        t.start()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = My_Radio()
    ui.show()
    sys.exit(app.exec_())

2.电台引擎(Radio_Engine.py)

import json
import os
import random
from lxml import etree
import  requests

class Radio_Spider(object):

    def test_net_condition(self):
        """
        判断本机是否连接到互联网
        :return:
        """
        try:
            requests.get("http://www.baidu.com")
            return True
        except:
            return False

    def get_random_ua(self):
        """
        获取随机UA
        :return:
        """
        first_num = random.randint(55, 62)
        third_num = random.randint(0, 3200)
        fourth_num = random.randint(0, 140)
        os_type = [
            '(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)', '(X11; Linux x86_64)',
            '(Macintosh; Intel Mac OS X 10_12_6)'
        ]
        chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num)

        ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',
                       '(KHTML, like Gecko)', chrome_version, 'Safari/537.36']
                      )
        return ua

    def get_radio_local_img(self,radio_id):
        """
        根据id获取本地缓存电台图片
        提高程序运行速度
        :param radio_id:
        :return:
        """
        aim_path="./radio_cache"
        if os.path.exists(aim_path):
            for file in os.listdir(aim_path) :
                file_abs=os.path.abspath(os.path.join(aim_path,file))
                if os.path.basename(file_abs).split(".")[0]==str(radio_id):
                    return file_abs
        return False

    def do_get_request(self,url,):
        """
        发送Get请求
        :param url:
        :return:
        """
        headers={
    
    
            "host":"www.qingting.fm",
            "User-Agent":self.get_random_ua()}
        try:
            r=requests.get(url,headers=headers)
            if r.status_code==200:
                r.encoding="utf-8"
                return r.text

            else:
                return False
        except:
            return False

    def do_get_img_bytes(self,url):
        headers={
    
    
            "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36",
                 }
        try:
            r=requests.get(url,headers=headers)
            if r.status_code==200:
                return r.content
            else:
                return  False
        except:
            return False

    def do_post_request(self,url,data):
        """
        发送Post请求
        :param url:
        :param data:
        :return:
        """
        headers={
    
    
            "host":"webbff.qingting.fm",
            "User-Agent":self.get_random_ua(),
        "Referer": "https://www.qingting.fm/",
            "Origin": "https://www.qingting.fm"
        }
        try:
            r=requests.post(url,data=data,headers=headers)
            if r.status_code==200:
                r.encoding="utf-8"
                return r.text
            else:
                return False
        except:
            return False

    def get_radio_big_cates(self):
        """
        根据城市获取电台大分类信息
        :return:
        """
        base_url="https://www.qingting.fm/radiopage"
        text=self.do_get_request(base_url)
        res=etree.HTML(text)
        if res is not None:
            selector=res.xpath('//div[@class="catSec"]//div[@class="regionsSec regionsSecHide"]/a')
            radio_city_item={
    
    }
            for i in selector:
                radio_id=i.xpath('./@id')
                radio_name=i.xpath('./text()')
                radio_city_item[radio_name[0]]=radio_id[0]
            return radio_city_item
        else:
            return False

    def get_city_radio_item(self,cid,page):
        """
        根据城市Id获取指定页数的电台信息
        :param cid:
        :param page:
        :return:
        """
        cid=int(cid)
        base_url="https://webbff.qingting.fm/www"
        data={
    
    "query":"{\n    radioPage(cid:%d, page:%d){\n      contents\n    }\n  }"%(cid,page)}
        res=self.do_post_request(base_url,(data))
        if res:
            radio_item={
    
    }
            _json=json.loads(res)
            contents=_json.get("data").get("radioPage").get("contents")
            count=contents.get("count")
            items=contents.get("items")
            radio_item["count"]=count
            radio_item["items"]=items
            return radio_item
        else:
            return False

    def get_country_radio_item(self,page):
        """
        获取国家电台节目。
        一共两页
        :return:
        """
        radio_item=self.get_city_radio_item(409,page)
        return radio_item

    def get_network_radio_item(self,page):
        """
        获取网络电台节目。
        一共两页
        :return:
        """
        radio_item = self.get_city_radio_item(407, page)
        return radio_item

    def get_radio_play_mp3_link(self,radio_id):
        """
        根据电台id获取电台mp3播放地址
        :param radio_id:
        :return:
        """
        full_url="https://lhttp.qtfm.cn/live/%d/64k.mp3"%int(radio_id)
        return full_url

    def get_country_and_network_radio_statios(self):
        """
        获取所有国家、网络电台的id和图片
        :return:
        """
        all_list=[]
        country_radios=self.get_country_radio_item(1)
        if country_radios:
            count=int(country_radios.get("count"))
            all_list.append(country_radios['items'])
            if count>12:
                max_num=int(count/12)+1
                for i in range(2,max_num+1):
                    radio_item = self.get_country_radio_item(i)
                    all_list.append(radio_item['items'])
        network_radios=self.get_network_radio_item(1)
        if network_radios:
            count2=int(network_radios.get("count"))
            all_list.append(network_radios['items'])
            if count2>12:
                max_num2=int(count2/12)+1
                for j in range(2,max_num2+1):
                    radio_item = self.get_network_radio_item(j)
                    all_list.append(radio_item['items'])
        return all_list

    def parse_all_list(self,all_list):
        """
        处理all_list中的图片
        :return:
        """
        aim_item={
    
    }
        if len(all_list)!=0:
            for data in all_list:
                for j in data:
                    aim_item[j["id"]]=j["imgUrl"]
        return aim_item

    def pull_radio_station_imgs(self,aim_item):
        """
        将网络电台图片拉取到本地
        :param aim_item:
        :return:
        """
        for k,v in aim_item.items():
            self.download_imgs(k,"https:"+v)

    def download_imgs(self,radio_id,img_url):
        """
        下载图片到本地
        :param file_name:
        :param img_url:
        :return:
        """
        img_bin=self.do_get_img_bytes(img_url)
        if img_bin:
            file_type=img_url.split(".")[-1]
            os.makedirs("./radio_cache",exist_ok=True)
            full_path=f'./radio_cache/{
      
      str(radio_id)}.{
      
      file_type}'
            with open(full_path,'wb')as f:
                f.write(img_bin)

3.关于作者(about_author.py)

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'about_author.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class about_dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.setWindowModality(QtCore.Qt.ApplicationModal)
        Dialog.resize(398, 293)
        Dialog.setStyleSheet("QPushButton {\n"
"    border: 1px solid ;\n"
"    border-radius: 4px;\n"
"    padding: 1px 4px;\n"
"    min-width: 80px;\n"
"    min-height: 20px;\n"
"}\n"
"\n"
"QPushButton:hover{\n"
"    background-color:rgb(255, 255, 255);\n"
"    border-color:rgb(255, 170, 127);\n"
"\n"
"}\n"
"\n"
"\n"
"\n"
"QLineEdit{\n"
"    border: 1px solid ;\n"
"    border-radius: 4px;\n"
"    selection-background-color:rgb(255, 170, 127);\n"
"    border: 1px solid;\n"
"    border-style: inset;\n"
"}\n"
"QLineEdit:hover{\n"
"    border-color:rgb(0, 170, 255);\n"
"}\n"
"QLineEdit:focus{\n"
"    border-color: rgb(0, 170, 255);\n"
"}\n"
"\n"
"QLabel {\n"
"    background: transparent;\n"
"    border: 1px solid transparent;\n"
"    padding: 1px;\n"
"}\n"
"QComboBox{\n"
"    margin:2px;\n"
"    border: 1px solid ;\n"
"    border-radius: 4px;\n"
"    background-color:rgb(255, 255, 255);\n"
"    border-color: rgb(0, 0, 0);\n"
"    min-width: 60px;\n"
"    min-height: 23px;\n"
"    max-width: 200px;\n"
"    max-height: 23px;\n"
"}\n"
"QComboBox:hover{\n"
"    background-color:rgb(255, 255, 255);\n"
"    border-color: rgb(85, 0, 255);\n"
"\n"
"}\n"
"QToolBar{\n"
"    margin:2px;\n"
"    border: 1px solid ;\n"
"    border-radius: 4px;\n"
"    background-color:rgb(255, 255, 255);\n"
"    border-color: rgb(0, 0, 0);\n"
"\n"
"}\n"
"QToolBar:hover{\n"
"    background-color:rgb(255, 255, 255);\n"
"    border-color: rgb(85, 0, 255);\n"
"\n"
"}\n"
"")
        self.verticalLayout = QtWidgets.QVBoxLayout(Dialog)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setContentsMargins(20, -1, -1, -1)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label_2 = QtWidgets.QLabel(Dialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
        self.label_2.setSizePolicy(sizePolicy)
        self.label_2.setMinimumSize(QtCore.QSize(200, 200))
        self.label_2.setMaximumSize(QtCore.QSize(200, 200))
        self.label_2.setText("")
        self.label_2.setPixmap(QtGui.QPixmap(":/head/imgs/my_head_img.jpg"))
        self.label_2.setScaledContents(True)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout.addWidget(self.label_2)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.label = QtWidgets.QLabel(Dialog)
        self.label.setStyleSheet("QLabel{\n"
"    \n"
"    font: 16pt \"Arial\";\n"
"}")
        self.label.setTextFormat(QtCore.Qt.MarkdownText)
        self.label.setOpenExternalLinks(True)
        self.label.setObjectName("label")
        self.horizontalLayout.addWidget(self.label)
        self.horizontalLayout.setStretch(0, 5)
        self.horizontalLayout.setStretch(2, 1)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.pushButton = QtWidgets.QPushButton(Dialog)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
        self.pushButton.setSizePolicy(sizePolicy)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton, 0, QtCore.Qt.AlignHCenter)

        self.retranslateUi(Dialog)
        self.pushButton.clicked.connect(Dialog.close)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "关于作者"))
        self.label_2.setToolTip(_translate("Dialog", "<html><head/><body><p>我是作者<span style=\" color:#55aaff;\">懷淰メ </span>欢迎你访问我的主页!</p></body></html>"))
        self.label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:12pt;\">作者:懷淰メ</span></p><p><span style=\" font-size:12pt;\">By:PyQt5</span></p><p><a href=\"tencent://message/?uin=1397852386&amp;Site=Senlon.Net&amp;Menu=yes\"><span style=\" font-size:12pt; text-decoration: underline; color:#5555ff;\">作者QQ</span></a></p><p><a href=\"https://blog.csdn.net/a1397852386\"><span style=\" font-size:12pt; text-decoration: underline; color:#55aaff;\">作者主页</span></a></p></body></html>"))
        self.pushButton.setText(_translate("Dialog", "好的"))
import rcc_rc

4.资源文件(rcc_rc.py)

# -*- coding: utf-8 -*-

# Resource object code
#
# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2)
#
# WARNING! All changes made in this file will be lost!

from PyQt5 import QtCore

qt_resource_data = b"\
\x00\x00\x45\x54\
\xff\
\xd8\xff\xe0\x00\x10\x4a\x46\x49\x46\x00\x01\x01\x00\x00\x01\x00\
\x01\x00\x00\xff\xdb\x00\x43\x00\x06\x04\x05\x06\x05\x04\x06\x06\
\x05\x06\x07\x07\x06\x08\x0a\x10\x0a\x0a\x09\x09\x0a\x14\x0e\x0f\
\x0c\x10\x17\x14\x18\x18\x17\x14\x16\x16\x1a\x1d\x25\x1f\x1a\x1b\
\x23\x1c\x16\x16\x20\x2c\x20\x23\x26\x27\x29\x2a\x29\x19\x1f\x2d\
\x30\x2d\x28\x30\x25\x28\x29\x28\xff\xdb\x00\x43\x01\x07\x07\x07\
\x0a\x08\x0a\x13\x0a\x0a\x13\x28\x1a\x16\x1a\x28\x28\x28\x28\x28\
\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\
\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\
\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\x28\xff\xc0\x00\
\x11\x08\x01\x40\x01\x40\x03\x01\x22\x00\x02\x11\x01\x03\x11\x01\
\xff\xc4\x00\x1f\x00\x00\x01\x05\x01\x01\x01\x01\x01\x01\x00\x00\
\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\
\x0b\xff\xc4\x00\xb5\x10\x00\x02\x01\x03\x03\x02\x04\x03\x05\x05\
\x04\x04\x00\x00\x01\x7d\x01\x02\x03\x00\x04\x11\x05\x12\x21\x31\
\x41\x06\x13\x51\x61\x07\x22\x71\x14\x32\x81\x91\xa1\x08\x23\x42\
\xb1\xc1\x15\x52\xd1\xf0\x24\x33\x62\x72\x82\x09\x0a\x16\x17\x18\
\x19\x1a\x25\x26\x27\x28\x29\x2a\x34\x35\x36\x37\x38\x39\x3a\x43\
\x44\x45\x46\x47\x48\x49\x4a\x53\x54\x55\x56\x57\x58\x59\x5a\x63\
\x64\x65\x66\x67\x68\x69\x6a\x73\x74\x75\x76\x77\x78\x79\x7a\x83\
\x84\x85\x86\x87\x88\x89\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\
\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\
\xb9\xba\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\
\xd7\xd8\xd9\xda\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf1\xf2\
\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xff\xc4\x00\x1f\x01\x00\x03\x01\
\x01\x01\x01\x01\x01\x01\x01\x01\x00\x00\x00\x00\x00\x00\x01\x02\
\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\xff\xc4\x00\xb5\x11\x00\x02\
\x01\x02\x04\x04\x03\x04\x07\x05\x04\x04\x00\x01\x02\x77\x00\x01\
\x02\x03\x11\x04\x05\x21\x31\x06\x12\x41\x51\x07\x61\x71\x13\x22\
\x32\x81\x08\x14\x42\x91\xa1\xb1\xc1\x09\x23\x33\x52\xf0\x15\x62\
\x72\xd1\x0a\x16\x24\x34\xe1\x25\xf1\x17\x18\x19\x1a\x26\x27\x28\
\x29\x2a\x35\x36\x37\x38\x39\x3a\x43\x44\x45\x46\x47\x48\x49\x4a\
\x53\x54\x55\x56\x57\x58\x59\x5a\x63\x64\x65\x66\x67\x68\x69\x6a\
\x73\x74\x75\x76\x77\x78\x79\x7a\x82\x83\x84\x85\x86\x87\x88\x89\
\x8a\x92\x93\x94\x95\x96\x97\x98\x99\x9a\xa2\xa3\xa4\xa5\xa6\xa7\
\xa8\xa9\xaa\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xc2\xc3\xc4\xc5\
\xc6\xc7\xc8\xc9\xca\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xe2\xe3\
\xe4\xe5\xe6\xe7\xe8\xe9\xea\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\
\xff\xda\x00\x0c\x03\x01\x00\x02\x11\x03\x11\x00\x3f\x00\xfa\x3f\
\x34\xd3\x55\x6e\xec\x56\x66\x59\x15\xde\x29\xd4\x63\x7a\x1c\x7e\
\x63\xa1\xaa\x23\x54\x96\xce\x51\x06\xa7\x1e\xd0\x78\x59\xd3\xee\
\x37\xd4\x76\xae\x73\xa6\xc3\xfc\x43\xa9\xb6\x9b\x62\x1e\x3e\x5d\
\xce\x05\x3f\x42\xb2\x92\x0b\x73\x73\x79\xf3\x5e\xcf\x83\x23\x1e\
\xaa\x3b\x2f\xd0\x54\x97\x76\x11\xde\x5d\x5b\x5c\x4a\x72\xb0\x82\
\x55\x31\xc1\x27\x1c\xfe\x95\xa1\x40\xef\x61\xf9\xcd\x19\xa4\x1d\
\x29\x68\x24\x50\x7d\x69\x69\x94\x67\x8a\x00\xa9\xa8\x48\x3c\xcb\
\x78\x4a\x96\x32\xbf\x1e\xd8\x19\x26\xad\xe3\x1c\x54\x72\x05\x2e\
\x8e\xdd\x53\xa1\xf4\xf5\xaf\x3a\xf1\xe7\x8f\x60\xd3\xa2\x92\x3b\
\x59\xd6\x34\x43\x86\x9b\x3d\xfd\x17\xd6\x9a\x57\x2d\x46\xe7\x7b\
\x79\xa8\x5a\x59\xe1\xae\x67\x8e\x31\xfe\xd1\xc5\x71\xfe\x23\xf8\
\xa5\xe1\x8d\x10\x30\xb8\xbc\x33\x48\x3a\x47\x08\xdc\x4d\x7c\xd7\
\xe2\xcf\x1b\x5f\x6a\x73\x38\xb7\xb8\x96\x28\x49\xfb\xdb\xbe\x67\
\xf7\x63\x5c\x64\xee\x64\x9f\x11\x93\x29\x27\x1e\xb9\x35\xb4\x28\
\xf3\x6e\x12\x69\x1d\x57\x8e\xfc\x77\x7d\xe2\x4f\x11\xcd\xaa\x85\
\x5b\x72\x46\xc8\x57\x39\x31\xa0\xe9\xf8\xfb\xd7\x3b\xa3\x69\x93\
\x6b\xf7\xed\x24\xd2\xb3\x44\xbf\xeb\x24\x27\x24\xfb\x66\xad\x69\
\x7e\x1b\xb9\xbe\xb8\x64\xba\x26\xde\x35\x19\x63\x8c\x93\x9e\x80\
\x0a\xea\x7c\x3b\x69\x6e\x9a\x34\x10\xc2\x3e\xf8\xc9\x5e\xe7\xd6\
\xba\x5c\x54\x11\x9a\x77\x21\xb7\xb2\x0b\x01\xb4\xd3\x07\xd9\x6d\
\x07\xfa\xc9\xc7\xde\x7f\xf7\x4f\xf5\xaa\x36\x76\x76\x90\x16\x5d\
\x2e\xdd\x5d\xfa\x19\xe4\xe4\x03\xf5\xea\x4f\xb0\xae\xa6\x7d\x29\
\xe5\xe6\xed\xc2\x5b\x01\xc4\x63\xbf\xd7\xd6\xa3\x94\x44\x8b\xb2\
\x08\xf6\x81\xc6\x4f\x7a\x82\xac\x63\x7d\x81\x18\x83\x75\x21\x9c\
\xfa\x1e\x17\xf2\xab\x1e\x58\x44\x0b\x1e\x14\x7a\x74\xab\x01\x72\
\x79\x00\x53\x24\xc2\x1e\x7f\x3a\x40\x55\x94\x88\xc1\x2e\xc1\x54\
\x77\xcd\x53\x92\xf6\x01\xdc\xb7\xd1\x49\xad\x32\x33\x93\xc9\xcf\
\xb7\x15\x0b\xed\x1f\x7c\x85\x1e\xa4\x81\x40\x18\xf7\x17\xb6\x05\
\x4a\xdc\x64\x2f\xfb\x68\x47\xf4\xa5\xb7\xbd\xb4\x65\x02\x2b\xb8\
\xdf\xdb\x7e\x4d\x58\xb8\xd4\xf4\xf8\x89\x59\x6e\x6d\xc8\xf4\x2c\
\x0d\x73\x1a\xd5\xbe\x91\x74\xac\xf6\x97\x10\x47\x29\xe7\x8e\x03\
\x53\x15\xce\xa1\xe3\x59\x14\x86\x19\x06\xa8\x4f\x6e\xb1\xb2\xf9\
\xd1\x79\xb0\xff\x00\x7b\xf8\x93\xfc\x7f\xcf\x5a\xe1\x6d\xef\x6e\
\xed\x9b\xf7\x33\x3a\xe3\xb0\x6a\xe8\xb4\x8f\x12\xee\xc4\x5a\x82\
\x80\x7a\x09\x07\xf5\xa5\x70\xb9\xb2\x11\xe3\xfd\xed\xbb\x09\xe3\
\x61\xf7\x58\xf2\x47\xd7\xfc\x69\xbe\x4c\x73\x96\x96\x25\x09\x2f\
\xf1\xab\x8f\xe7\xfe\x35\x60\x2f\x92\x4c\x96\xfc\xc4\xc3\x2c\x8b\
\xfc\xc7\xbd\x4b\x11\x0e\x8b\x22\x10\x7d\xc7\x7a\x63\x21\xd8\xb0\
\x43\x88\x60\x52\x7b\xa2\x1c\x55\x69\x6e\xa4\x47\xc1\x25\x01\xe0\
\x24\x8b\x80\x7d\x83\x54\xab\x70\xd0\xbe\xd9\xd0\x28\xee\x41\xfe\
\x5f\xe7\x8a\x94\x08\xe6\x8c\xed\x2a\xe0\xd3\x11\x54\x46\xb3\x93\
\x2c\x04\x45\x30\xe1\x81\x18\xc9\xf4\x6a\x9a\xd2\x59\x22\x6f\x39\
\x63\x2b\x2f\x49\x10\xff\x00\x18\xfe\xbe\xc6\x99\x25\xb7\x94\xde\
\x64\x1c\x3a\xf1\x82\x78\x23\xd2\x9c\xb7\x2a\xd2\x2a\x0c\xe1\x81\
\x07\x3d\x41\x1d\x8d\x52\x76\x06\xae\x74\x70\x5c\x43\x73\x1e\xe8\
\x1c\x38\xef\x8e\xa3\xea\x29\xf5\xcc\x79\xc6\x2b\x88\xe4\xb7\x3e\
\x5c\x8f\x95\xde\x3a\x67\xd0\xfa\xd6\xee\x9f\x76\x2e\x94\xab\x80\
\x93\x2f\xdf\x5f\xea\x3d\xab\xb6\x9d\x64\xdd\x99\x93\x45\x9c\xd1\
\x50\x43\x2e\x2e\x25\x81\xbf\xdf\x4f\xeb\x53\x1a\xdc\xcc\x69\x3c\
\xd2\x1e\x94\xa4\x73\x49\x9e\xc6\x98\x8e\x63\x5f\xd2\x25\x47\x37\
\xba\x6f\xcb\x28\xfb\xe8\xbf\xc5\xef\x59\x56\x1a\xc2\x5c\x37\x97\
\x70\x3c\xb9\x47\x19\x3d\x0d\x77\x47\xd0\x57\x25\xe2\x8d\x01\x5d\
\x5a\xee\xcd\x70\xe3\x99\x14\x77\xf7\x15\xc9\x52\x1d\x50\xd3\x2e\
\xd9\x40\xf7\x57\x31\xc3\x0a\xb4\x8e\xe7\xe5\x0a\x33\x9a\xf6\x6f\
\x04\xf8\x32\x0d\x2a\x34\xba\xbe\x55\x96\xf8\x80\x54\x1e\x55\x3f\
\x0e\xe6\xbc\x3b\xe1\xcf\x8c\x07\x85\xf5\x61\x2d\xd5\xb2\xdc\xdb\
\xb8\xd8\xc4\x8f\x9e\x31\xea\xb5\xf4\xa6\x87\xab\xd8\xeb\x96\x51\
\xdd\xe9\xd7\x09\x34\x2c\x3a\x8e\xab\xec\x47\x6a\xc4\x96\x7a\x86\
\xa5\xa8\x5b\xe9\x96\xc6\x7b\xb7\x08\xbd\x97\xbb\x1f\x40\x3d\x6b\
\x3b\x4a\xd6\xad\x75\xdf\x32\xd6\x68\x36\x48\x06\x4c\x4f\xce\x57\
\xd4\x53\x60\xd0\x05\xc4\xff\x00\x6a\xd6\x65\xfb\x55\xcf\xa0\xe1\
\x53\xd8\x56\xcc\x36\xd0\x42\xa3\xc8\x86\x34\x1f\xec\x8e\x6b\xca\
\xd0\xee\xd9\x15\x34\xf9\x04\x37\x0d\x60\xec\x4b\xa0\x2d\x1e\xee\
\xac\x99\xed\xeb\x8e\x9f\x95\x68\xd7\x07\xf1\x2e\x57\x8a\xe7\x4f\
\x92\xd6\x43\x1c\xf1\x06\x75\x71\xd4\x72\x3f\xc2\xad\xdb\xf8\xe6\
\xc5\x2d\x11\xae\x56\x4f\xb4\x60\x06\x55\x1c\x67\xd8\xd3\x1f\x21\
\xd9\x64\x8a\x37\x57\x9f\x5e\xf8\xfd\x8a\xe2\xd2\xd4\x2f\xfb\x4e\
\xd9\xfd\x31\x59\x52\x78\xe7\x52\x39\xc1\x89\x7e\x8b\x45\x99\x5e\
\xcc\xf5\x6c\xd3\x64\x91\x63\x5d\xce\x76\x8f\x53\x5e\x46\x7c\x6f\
\xab\x7f\xcf\x68\xff\x00\xef\x91\x58\x9e\x26\xf8\x91\x27\xf6\x7b\
\xdb\xea\x17\x91\x85\x6e\x0a\xc5\xf7\xcf\xb5\x3e\x56\xf6\x17\x21\
\xb3\xf1\x2b\xe2\x1c\x56\xb6\xb3\x25\xbb\x6d\x84\xe5\x41\x07\xe6\
\x94\xfa\x7d\x2b\xe7\x2d\x77\x5b\xba\xd5\x6e\x4c\xb7\x0e\x76\xff\
\x00\x0a\x8f\xba\xa3\xda\xab\xeb\xda\xdc\xda\x9d\xd1\x92\x66\x2c\
\xaa\x36\xc7\x9e\xc3\xfc\x6b\x3f\x4d\x8e\x3b\xdb\xd5\x8e\x69\x7c\
\xb8\xc7\xde\x3d\xf1\xe8\x2b\xae\x9d\x2b\x6a\xcc\xaa\x4d\x2d\x22\
\x59\xd3\x34\xbb\x9d\x62\x73\x1c\x00\xec\x5f\xbc\xe7\xa2\x8a\xee\
\xf4\xdd\x2f\x4f\xd0\xed\x44\xaf\xb7\x70\x18\x33\x3f\x5f\xc2\xa8\
\xc3\xa8\x47\x0c\x22\xd7\x4b\x8c\x47\x12\x70\x5b\x1b\x8f\xe4\x3f\
\xa9\xa7\x68\xea\xf7\x97\x5f\x6a\xb8\x89\x9a\x15\xfb\x8f\x33\x65\
\x98\xff\x00\xb2\x3a\x01\x5d\x2b\x96\x0b\x44\x64\xaf\x2d\xc7\xc1\
\x6b\xa9\xeb\x37\x13\x25\xae\x6d\x2c\x64\x6c\xb4\xae\x3e\x77\x18\
\x03\x00\x76\xfa\xd7\x63\xa6\x69\x56\xda\x6c\x24\x42\xb9\x72\x30\
\xce\x7a\x91\xfe\x15\x9d\xf6\xd9\x52\x3d\x88\x42\x2f\xb5\x55\xfe\
\xdc\x99\x5d\xa2\xb6\x53\x71\x20\xfb\xc0\x9f\x95\x7e\xa7\xb5\x61\
\x3b\xc8\xd5\x68\x74\xb2\x20\x2a\x43\x8c\x83\x5c\x6d\xd5\xf4\x4b\
\x70\xf1\x5b\x07\xba\x75\x3f\xf2\xc8\x0c\x7e\x7d\x2b\x6a\xde\x35\
\xbf\xe6\xfe\xe4\xc8\xff\x00\xf3\xc5\x7e\x58\xc7\xf8\xfe\x35\xa9\
\x25\xa4\x2f\x02\xc6\xa8\x15\x54\x70\x54\x63\x14\xa3\xa1\x7e\x87\
\x14\xc9\xa8\x5c\x9f\x99\xa2\xb5\x5f\x45\xf9\xdb\xf3\x38\x14\xa9\
\x6e\x6d\xc1\x63\x24\xd3\x37\xa1\x35\xb5\x75\xa7\xcf\x0b\x92\xaa\
\x59\x7d\xb9\xac\x9b\xbb\xb8\xe1\x7f\x2f\x05\xe5\xfe\xe2\x72\xdf\
\x8f\xa5\x32\x4a\x72\x45\x77\x71\xcf\x98\xb6\xeb\xfe\xc8\xdc\xdf\
\x9f\x4a\xa3\x71\xa1\xda\xca\xdb\xee\xe5\x96\x52\x39\x2c\xf2\x56\
\x98\x17\x77\x07\xe6\xd9\x6d\x1f\xa0\xf9\x9b\xf3\xe8\x3f\x5a\x8a\
\x6b\x2b\x48\x86\xfb\xb7\x59\x3d\xe6\x7c\xfe\x87\x8a\x5a\x01\x84\
\x34\xdd\x08\xb6\xd8\xff\x00\x7a\x7f\xd8\x62\xdf\xca\x95\x74\x4d\
\x22\x46\xda\x90\x4c\x0f\x6e\x18\x56\xd2\x5d\xc5\x80\x2d\x62\x92\
\x41\xff\x00\x4c\xd3\x03\xf5\xe2\xa1\xbb\x7b\xf9\x50\xfd\x9e\x08\
\xd1\xbf\xbd\x2b\xff\x00\x41\x4a\xe2\xd8\xcb\x7f\x0b\x69\xec\x7e\
\xe4\x8a\x7f\xde\xaa\x17\x9e\x1b\xb0\x8d\xf6\x8b\xdf\x29\xfd\x1f\
\x15\xa8\xda\x56\xab\x26\x0b\xea\xbb\x33\xfd\xc8\xeb\x42\xda\xda\
\x58\xa0\x11\xdd\xcb\xf6\x97\x1f\xc6\x50\x0c\xd1\x70\xdc\xc7\xd1\
\x6c\xee\xec\x5f\xc8\x77\x59\xed\x5b\xee\xb8\x3f\x74\xff\x00\x85\
\x68\x32\xb5\xa4\x85\x87\x30\xb1\xf9\xc7\xf7\x4f\xad\x4a\xda\x7c\
\x05\x8b\x46\x0c\x6c\x7b\xa1\x22\x9a\x3e\xd1\x07\xde\x02\x78\xbf\
\x26\x1f\xe3\x40\xc6\xcd\x10\x9a\x30\x3f\x10\x47\x6a\xe6\x35\x08\
\x2e\xb4\xe9\x1a\x7b\x37\xc3\x29\xcc\xb1\x0f\xba\x7f\xda\x02\xba\
\x8c\x24\xc9\xba\xda\x52\x8c\xbc\x61\x87\x03\xea\x2a\xa5\xd3\x1c\
\x06\x9d\x04\x72\x2e\x76\xb8\xfb\xa7\xd8\xfa\x50\x21\x9a\x36\xa5\
\x16\xa1\x0e\xe1\xc4\x83\xef\xa7\x71\x45\xf4\x40\x5c\x43\x30\xe1\
\xb7\x81\xf5\x15\x4d\xac\xd7\x4f\xb9\x8e\xf6\xd1\x48\x8d\x86\x64\
\x44\xe4\x60\xf7\x1f\x4a\xd7\x9e\x35\xb8\x8c\x7c\xde\xe0\x8a\x68\
\x2e\x66\x4c\x77\x69\x97\x6d\xd0\xa1\x77\x5f\xc0\xff\x00\xf5\xaa\
\xbf\x87\xf5\xb3\x3d\xfd\xaa\x3a\x62\x6d\xdb\x32\x3a\x30\x3e\xb5\
\x26\xbf\x3c\x76\x5a\x43\xc4\xa7\xe7\x71\xb5\x46\x79\xfa\xd7\x2b\
\xa3\x5d\x1b\x5b\xe8\xe5\x58\xbc\xc7\x5c\xec\x19\xe0\xb7\x63\x5a\
\x41\xfb\xc8\xcd\x9e\xab\x1f\xcf\xab\x1f\x44\x8b\x9f\xc5\xbf\xfa\
\xd5\x6d\xba\x9a\xc1\xd1\xec\x35\x58\xc1\x9e\x6b\xb8\xcb\xca\x77\
\xbc\x2c\x9f\xa6\xee\xdf\x91\xad\x88\x66\x12\x31\x47\x52\x92\xaf\
\x55\x3d\x47\xbf\xb8\xaf\x46\x2c\xce\xe3\xdb\x24\xfb\x53\x0f\x5a\
\x44\x94\x19\x59\x3b\xa7\x3f\x85\x29\xeb\x54\xc9\x12\x83\xcf\x5e\
\x68\x3d\x68\xa9\x19\xc4\xf8\xaf\x45\x30\xcc\x6e\xed\x57\xf7\x2e\
\x7e\x75\x1f\xc2\x7d\x7e\x95\x4f\xc3\x9a\xfe\xa1\xe1\xeb\xe5\xba\
\xd2\xee\x1e\x19\x07\xde\x03\x95\x61\xe8\x47\x71\x5d\xf4\xa8\x8e\
\x8c\x92\x0c\xa3\x0c\x11\x5e\x7f\xaf\x69\x8f\xa6\xdd\x65\x06\x6d\
\xdf\x95\x3e\x9e\xd5\xcf\x56\x9f\x54\x08\xfd\x0a\xc7\x38\xed\x4c\
\x77\x58\xe3\x2e\xc4\x2a\xae\x49\x27\xd2\x9c\xc7\x24\x7a\x9a\xe3\
\x7e\x20\x6b\x62\xd2\xd4\x58\xc0\xdf\xbf\x94\x65\xf1\xd9\x7d\x3f\
\x1a\xf1\x2c\x77\x45\x6a\x72\x3e\x31\xd6\x46\xa7\xa9\x3c\x91\xe4\
\x44\x83\x62\x7d\x3d\x6b\x92\xbf\xd4\x61\xb3\x85\xe5\xba\x90\x22\
\x2f\x7e\xe7\xe9\xeb\x4d\xd5\x2f\xe3\xb4\xb7\x79\xa6\x6c\x2a\xd7\
\x91\x78\x83\x58\x9b\x56\xb8\x69\x24\x24\x44\x38\x8d\x3d\x05\x6f\
\x4e\x97\x39\x73\xa9\xec\xf6\x3a\xcb\xff\x00\x1f\xaa\x16\x5b\x3b\
\x4d\xf9\x38\x0d\x23\xe3\xf4\x02\xb2\x7f\xe1\x2f\xd6\x6f\x66\x11\
\x5a\x04\x0c\x7a\x2a\x2e\x4d\x73\x9a\x55\x84\xba\x95\xe2\xdb\xc7\
\xc0\xfe\x26\xc6\x76\x8f\x5a\xf4\x9d\x2f\x4c\xb5\xd3\x2d\xca\x5b\
\xa0\x2e\x7e\xf3\x9e\xad\x5d\x90\xc3\xc5\x9c\xce\xbc\xbb\x99\x11\
\xe9\xba\xd5\xfc\x5b\xb5\x0d\x49\xe2\x07\xfe\x59\xaf\x24\x7d\x70\
\x6a\xbc\xde\x0e\x57\xe5\x6f\x5c\xb7\xba\x7f\xf5\xeb\xaa\x2f\xe9\
\x46\xe3\x5d\x2a\x8c\x62\x8c\xfd\xa5\xcf\x38\xd6\x7c\x31\x79\x65\
\x01\x99\x18\x4f\x18\xeb\xb4\x10\x47\xe1\x58\x96\x9a\x9d\xcd\x86\
\xd5\x8c\xa7\x96\x09\x3b\x19\x01\x15\xeb\xef\xf3\x7d\xee\x47\xbd\
\x72\x6d\xa2\xd9\x49\xad\x49\x72\x91\xe2\x08\xcf\xdd\xc7\x05\xfb\
\xe3\xd8\x7f\x3f\xa5\x45\x45\xcb\xaa\x27\x72\x78\x2e\x5a\xf3\x4e\
\x49\xef\xe2\x4b\x5b\x60\xbb\x8c\x3d\x9c\xfa\x9f\x6f\x6a\xbb\x1d\
\xd8\x36\xe2\x69\x17\xca\x8f\xa8\xdd\xfd\xdf\x53\xe9\x5c\xe4\xf7\
\x7f\xda\xfa\xea\x5a\x2f\xfc\x79\xc3\xf3\x30\x1c\x86\xc5\x6d\xdc\
\x4b\xe6\x4d\xb6\x15\xf3\x5d\x3a\x0f\xe0\x53\xea\x7d\x6b\x96\x52\
\x35\x42\xdc\x5c\x48\xff\x00\x34\x8c\xd0\x5b\x7f\xe3\xf2\x1f\x4f\
\x6f\xe7\xf4\xab\xd6\xeb\x0c\x30\x2a\x41\x1f\x96\xa7\xf8\x7a\x55\
\x48\xe0\x0a\xfe\x6c\xee\x65\x98\xf4\x63\xd0\x7d\x07\x6a\xb0\x0e\
\x4e\x69\x14\x58\x07\x1c\x8e\x0d\x5c\xb7\xd4\x65\x83\xa9\xdc\xa3\
\xb1\xac\xe0\x4e\x6a\xad\xfe\xa7\x6d\x66\x15\x64\x2c\xf2\x37\x0a\
\x88\x32\xc7\xf0\xa0\x7b\x1b\x89\xa9\x1d\x48\xe0\xca\x6c\xe0\xef\
\xfd\xf7\xff\x00\x01\xfa\xfd\x2a\x5c\x69\xec\x4c\x76\x36\xa2\xe5\
\xc1\xf9\x8c\x7f\xde\xff\x00\x69\xff\x00\xfd\x75\xcf\x43\x14\xb7\
\x1f\x3d\xe2\x81\x19\x1c\x42\xa7\xa7\xfb\xc7\xbf\xf2\xad\x18\xae\
\xe4\x48\x84\x51\x37\x95\x18\xe8\xb1\xf0\x07\xe1\x40\x7a\x8b\x71\
\xa2\x5f\xcf\xf3\x0d\x90\x27\xfc\xf3\x85\xb2\x7f\x33\xfd\x05\x53\
\x3a\x20\x81\xbc\xc9\x2d\xb7\x3f\x77\x6c\xb1\xfc\xcd\x5a\xfb\x44\
\xa0\xe5\x65\x7c\xfd\x6b\x52\xc3\x54\x0d\x88\xee\xba\xf4\x0d\xfe\
\x34\xc6\x73\xef\xb9\x4f\x7c\x7a\x53\x59\x4e\x32\x47\xe1\x5d\x2e\
\xa5\xa5\xa4\xc0\xc9\x01\xc3\xfa\x57\x3f\x2a\x3c\x4c\x55\xc6\x18\
\x7a\xd1\x61\x32\x02\x06\x3a\x54\x6e\xa0\xe3\x3f\x85\x0d\x77\x0b\
\x4a\x23\x0e\xad\x27\x70\xa7\x38\xfa\xd5\x6b\x8b\x7b\x99\x89\xdd\
\x77\xe5\xc6\x7a\x08\xd3\x9f\xce\x90\x0b\x3c\xf0\x5b\xae\xe9\x9d\
\x63\x1e\xe6\xb1\x35\x0f\x13\x58\xdb\xf1\x18\x79\xcf\xfb\x23\x03\
\xf3\xa9\x9f\x4b\xd2\x15\xb1\x70\xe6\x79\xbd\x19\xcb\x31\xfc\x05\
\x4f\x0d\x9c\x30\xff\x00\xc7\x9e\x9a\x88\x7f\xbc\xe3\x6f\xff\x00\
\x5e\x80\x2a\x69\x1a\x9c\x7a\x8d\xc0\x22\xd2\x68\x98\xf4\x72\x32\
\xa4\x7b\x9a\xd4\x90\x8e\x01\xef\xda\x9a\xd0\xcb\x1c\x7b\xee\x6e\
\x56\x30\x3f\xba\x36\x81\xf9\xd4\x16\x51\x06\xb8\x6b\x9d\xac\x62\
\x08\x11\x4b\xe7\x2c\x7b\x9f\xa7\x4a\x2c\x04\x32\xc1\xe4\x93\x25\
\xb6\x76\xff\x00\x14\x7d\x8f\xd3\xd0\xd3\xbc\xaf\x2e\xd3\x09\x21\
\x44\x20\x90\xc0\x72\x82\xb9\xdb\xed\x56\xea\x4f\x10\x88\xec\x9b\
\x72\x06\x09\xb7\x3f\x2b\x7a\xd7\x42\x15\x2e\x57\x91\x24\x52\x8f\
\x95\xbe\x63\xf2\x9a\x04\x8e\x62\xff\x00\x44\x92\xe4\x3c\xf6\xb7\
\x42\xef\x27\x92\x7a\xd6\x76\x99\x7b\x36\x8d\xa8\x79\x9e\x42\x34\
\x8b\xc1\x59\x17\x91\xf4\xf4\x35\xa5\xae\xd9\xdc\xe9\xf3\x0b\xa8\
\x1c\xaa\xb1\xc1\x64\x38\xe6\xb2\xef\x75\x13\x79\x02\xad\xd4\x40\
\xcc\xbf\x76\x55\xe0\xe3\xdc\x51\xb3\xb9\x2c\xf4\xcd\x0f\x5a\xb7\
\xd5\x61\xf3\x22\x60\x24\x03\xe6\x8c\x9f\x98\x55\xcb\x88\x77\xbc\
\x2e\x9c\x32\x1f\xbd\xdc\x0e\xf5\xe3\x96\xd7\x13\x5a\xcc\x25\xb7\
\x91\x91\xc7\x70\x6b\x69\x7c\x59\xaa\xaa\x60\xce\xa7\xfe\x02\x2b\
\xa6\x38\x8e\xe6\x4d\x5c\xee\x35\x0b\x88\xed\xf5\x4b\x05\xdd\xfb\
\xc9\xb7\x47\x8f\x5e\x84\x7e\xb8\xab\xee\x70\x39\x20\x7d\x6b\xca\
\xe1\xbf\xbc\x9e\xfe\x2b\xa9\x77\x4f\x24\x6d\x91\x9e\x9f\x4a\xbf\
\x76\xda\xc6\xa2\x4b\xcf\x0d\xc3\xa9\x39\x00\x29\xc0\xfa\x56\xaa\
\xb5\xf5\x48\x2c\x7a\x0c\x13\xc3\x38\xfd\xcc\xd1\xc9\xf4\x34\xf3\
\xc5\x79\x82\xa5\xf5\x8c\xeb\x28\x8a\x68\xd9\x4f\x52\xa4\x57\x79\
\xa1\xea\x6b\xa9\xda\x06\x04\x09\x97\x87\x5f\xeb\x57\x09\xdf\x71\
\x1a\x2c\x6a\x9e\xa1\x6a\x97\x96\xed\x14\xa3\xe8\x7d\x2a\xd3\x03\
\x4d\xad\x1e\xa2\x3e\x92\xf1\x27\x8d\x56\x3c\xc3\xa6\x72\x7b\xca\
\x7f\xa5\x79\xa6\xb5\xaa\xa4\x41\xae\x6f\xa7\x03\x71\x39\x66\x3c\
\x9f\xf1\xae\x47\x5e\xf1\x7e\xc2\x60\xd3\x7e\x62\x3e\xf4\xd9\xe0\
\x7d\x3d\x6b\x86\xbb\xb9\xb9\xbe\x97\x74\x8e\xf2\xc8\x4f\x52\x72\
\x6b\xc8\x86\x1d\xb5\xa9\xdb\x2a\xb1\x5a\x22\xf7\x8a\xb5\xd9\x75\
\x5b\xad\xa8\x0a\xda\xa9\xc2\xaf\xaf\xb9\xac\x4b\x5b\x39\xef\xa7\
\xf2\x6d\xa3\x2e\xfe\x83\xa0\xfa\xd7\x49\xa3\xf8\x5a\x69\xc8\x93\
\x50\x6f\x2e\x3e\xbe\x5f\x76\xae\xc2\xca\xd2\x0b\x38\x84\x50\x46\
\xb1\xa7\xb0\xe4\xfd\x6b\xb6\x14\x94\x76\x39\x65\x37\x27\x76\x67\
\x78\x7b\x47\x8b\x4a\xb5\xe7\x0d\x3b\x7d\xf6\xfe\x82\xb4\xd8\xfc\
\xbd\x31\x52\x11\xda\x90\x2d\x6e\x95\x8c\x88\x99\x68\xa7\xb7\x4a\
\x86\x69\x52\x01\xba\x43\x81\x54\x34\x56\xd4\xe6\x68\xa0\x09\x16\
\x3c\xe9\x4e\xc4\xf6\xf7\xac\xa6\x1b\x2d\xfc\x98\x18\x09\x31\xf2\
\xef\x3f\xad\x26\xa0\x66\xbf\xb8\x49\x37\xbc\x11\x46\x0e\xd5\x00\
\x6e\x39\xee\x7d\x3a\x56\x3e\xa1\xab\x59\x69\x61\x85\xb2\x89\x67\
\x3d\x79\xcf\x3e\xe6\xb9\x2b\x49\x36\x6d\x1d\x0b\xf6\x56\xb6\x9a\
\x4d\xb9\x2b\x85\xfe\xfc\x8d\xd5\xaa\xf2\xcc\xaf\x0e\xf0\x70\x87\
\x9c\x9e\x2b\x9e\xd1\x61\xb9\xd4\x24\x17\xba\x93\x13\x18\x3b\xa3\
\x8f\xb7\xd7\x15\xaa\xb9\xbf\x1b\x9b\x8b\x4e\xc3\xfe\x7a\x7f\xf5\
\xab\x0b\x16\x99\x76\x17\x0e\x81\x87\xdd\x3d\x0f\xad\x3c\x10\x05\
\x30\xb0\x54\xc9\xc0\x02\xb8\x7f\x12\xf8\x81\xae\x0b\x5b\x59\x31\
\x58\x47\xde\x7e\xef\xff\x00\xd6\xa8\x1b\xd0\xd4\xd7\x7c\x4f\xe5\
\x49\xf6\x5d\x34\x79\x93\x37\x05\xc7\x41\xf4\xf5\x35\xa3\xe1\xdd\
\x19\xad\x73\x7b\x7c\x7c\xcb\xd9\x07\x25\xbf\x84\x7a\x0a\xc9\xf0\
\x76\x8b\xe5\x05\xbf\xbb\x19\x91\x87\xee\xd4\x8e\x83\xd6\xbb\x12\
\x73\xd6\x9a\x60\x84\x27\x34\x94\x50\x78\x1c\xd5\x0c\x70\xa6\xcb\
\x34\x71\xae\xe9\x0a\xa8\x1d\x4d\x67\x5d\x5e\x5c\xba\x01\xa7\xdb\
\x33\x03\xff\x00\x2d\x1b\xee\xfe\x15\x9a\xb6\xfa\x8c\x92\x79\x97\
\x4b\x27\x1d\x3f\x78\x3f\x42\x7a\x7e\x02\x90\x5c\xe9\xad\xbc\x49\
\x25\xbc\x5f\x24\x61\xa1\x3c\x09\x66\x6d\x8a\xbe\xfe\xa6\xa7\x92\
\x28\x75\x70\x0c\xcf\x73\xa8\x37\xfd\x30\x5f\x2e\x21\xed\x93\xd7\
\xf5\xae\x3f\x50\xbe\x8f\x4a\x22\x5b\x8b\x48\x9e\xe0\xfd\xdd\xf3\
\xef\x73\xf4\xe2\xb4\x74\x0d\x67\x55\xb8\x3e\x74\x36\x89\x6f\x1f\
\xab\xb9\x39\xfc\x31\x48\x2f\xd0\xbd\x26\x8b\xa8\x5b\x8c\xa8\x82\
\xda\x01\xda\x15\xde\xdf\xe0\x3f\x2a\xaa\xda\x74\x6d\x9f\x3d\xe5\
\x94\x9e\xce\xe7\x07\xf0\x15\xd0\x5b\x6a\x17\xd7\x03\x17\x17\x90\
\xc1\xfe\xe4\x25\xbf\x52\x7f\xa5\x45\x75\xa3\xc7\x7b\x27\x97\x0d\
\xcd\xc3\xb1\xe2\x49\x83\x00\xa9\x9f\x40\x31\xcd\x50\xda\x30\xbc\
\xdb\x4b\x4c\xc5\x18\x45\x6e\xa6\x38\xd7\x91\xf8\x0a\x49\x27\xb9\
\x97\x88\x20\x11\x8e\xef\x37\xff\x00\x13\x5b\x2f\xa0\x9d\x36\x02\
\x90\x47\xba\x3f\xef\x2f\x7f\xad\x53\x23\x1c\x73\xf8\xd2\x11\x45\
\x2c\x57\x70\x96\xe2\x43\x3c\x9f\xed\x74\x1f\x41\x59\x9e\x23\xbd\
\x68\xa3\x5b\x6b\x7f\x9a\xea\x5e\x02\x8e\xa0\x7a\xfb\x56\xe5\xc0\
\x7f\x2d\xbc\xac\x17\xed\x9a\xa9\x6d\xa6\xc5\x03\x49\x2b\x7e\xf2\
\xe1\xfe\xf4\x87\xa9\xa1\x30\x30\x74\xed\x11\x34\xeb\x51\x71\x2f\
\xcf\x73\x95\x3e\xc9\xcf\x41\x5b\xde\x56\x32\x40\xf9\x8d\x25\xff\
\x00\x16\xae\x3a\x67\x03\xf5\xa9\xe4\xe2\x90\x19\xb2\xc6\x97\xb6\
\x8f\x1c\x83\x2a\xd9\x42\x3e\x95\xe7\xfa\xa5\x94\x96\x37\x2d\x14\
\x9d\x07\x2a\xdf\xde\x1e\xb5\xdd\x0b\x85\xb5\xd4\xde\xdd\xfe\x54\
\x98\x6e\x8c\xfb\xf7\x15\x43\xc5\xd6\x9e\x7d\x80\x9b\x19\x78\x8e\
\x7f\x03\xd6\x81\x34\x70\xf4\x0e\x28\xeb\x45\x23\x07\xb9\xd0\xf8\
\x7f\xc4\x12\x69\xc7\xca\x71\xe6\x5b\x37\x6e\xeb\xee\x2b\xb7\xf0\
\xe3\x3b\xe9\x89\x24\xb2\xf9\xbb\x89\x2a\x49\xc9\x55\xec\xa4\xfb\
\x57\x95\xaf\x03\x8a\xe9\x3c\x29\xac\x9b\x1b\x81\x0c\xce\x7e\xcc\
\xe7\x9f\xf6\x4f\xad\x74\xd1\x9f\x46\x1b\x9e\x82\x4e\x4f\x22\xab\
\xc7\x69\x04\x53\xb4\xb1\xc2\x8a\xec\x39\x20\x63\x35\x64\xe3\x34\
\x8d\xd2\xba\x90\x58\x88\xd2\x62\x95\xba\xd2\x56\xa8\x0e\x5a\x49\
\x71\xc1\xe2\xb5\xbc\x3b\xab\xc7\xa6\xce\xcb\x34\x41\xe3\x7c\x65\
\xb1\xca\xfd\x2a\xf5\x97\x84\xae\x6e\x10\x34\xf2\x08\x72\x33\xc8\
\xdc\x7f\x2a\xa1\xac\x78\x72\xe7\x4d\x4f\x30\x7e\xf6\x2e\x85\x94\
\x74\xfa\x8a\xe5\xd4\x47\x75\x6d\x75\x05\xec\x62\x4b\x69\x43\xa1\
\xee\x2a\x42\xbb\xb8\xaf\x2d\xd3\xee\x66\xb1\xb8\x59\x63\x2e\x3b\
\x30\x53\x8c\x8a\xef\xb4\xdd\x4a\x4b\x88\x04\x91\x85\xb8\x8c\x75\
\xdb\xc3\xaf\xd4\x56\x8a\x5a\x09\x9a\xa6\x92\xa3\x86\xe6\x19\xf2\
\xab\x20\x12\xff\x00\x71\xb8\x3f\x95\x32\xf2\xe1\x2d\xa0\x69\x18\
\xe7\xfb\xa3\xbb\x1a\xa1\x58\x87\x50\xbb\x16\x80\x28\x5d\xf2\xbf\
\xdc\x4c\xfe\xa7\xd0\x57\x3d\xa8\xde\xc1\x6a\xa6\xe2\xf6\x41\x24\
\xfd\x94\x76\x1e\x80\x76\x15\x61\x20\xbe\xbe\x12\x3c\x0d\x1a\xc8\
\xdf\x7a\x66\x3f\x28\xf6\x51\xe8\x2b\x93\x86\xc9\xae\x3c\x40\x61\
\x79\xfe\xd0\xb1\x9c\xbb\x8e\x86\xb0\xa9\x26\xcb\x8a\x37\xf6\xc9\
\x7b\x01\x92\xe8\xbc\x30\xe3\x22\x34\x38\x38\xf7\x35\xca\xe8\x5a\
\x6a\x6a\xba\xa4\xb2\x84\x29\x6a\xad\x92\xbe\xbe\x82\xba\xcd\x6c\
\x95\xd3\x27\xf2\xc1\xde\xc3\x62\x81\xea\x78\xa8\xec\xad\xc6\x95\
\xa6\xc7\x14\x43\xf7\xcd\xd4\xfa\xb7\xff\x00\x5a\xb9\xda\x34\x25\
\x90\x7d\xaa\x53\x6e\x9f\xea\x13\x89\x31\xdf\xd1\x47\xf5\xab\xea\
\xaa\x8a\x30\x06\x2a\xbd\x82\xa9\xb7\xf9\x07\x07\xf8\x8f\xf1\x7b\
\xd5\x0d\x67\x53\x16\xba\x4c\x97\x09\xf7\x8f\xc8\x9e\x99\xf5\xa8\
\x93\x1a\x5a\x5c\xc4\xf1\x76\xb3\x96\x6b\x2b\x56\xf9\x3a\x4a\xc3\
\xff\x00\x41\xac\xff\x00\x0b\x68\xed\x7f\x73\xe7\x4c\xb8\xb6\x8c\
\xf3\x9f\xe2\x3e\x95\x57\x49\xd3\xe5\xd5\x2f\x04\x48\x0e\x33\x97\
\x73\x5e\x91\x67\x6b\x1d\xa5\xba\x43\x0a\xe1\x14\x54\xa7\x62\x89\
\x63\x5f\x6c\x01\xd0\x54\x86\x81\xc0\xf6\xac\x71\x7e\x35\x2b\xe3\
\x69\x64\xd8\x85\x39\x9a\x7f\x41\xe8\x3e\xbe\xb4\xd0\xcb\x57\x37\
\xdb\x4b\x25\xba\x89\x19\x3e\xf3\x13\x84\x4f\xa9\xa8\x2d\x82\x4d\
\x0f\xda\xaf\xa4\xde\xa3\x95\x2c\x70\xbf\x5c\x76\xae\x7f\x59\xd6\
\xa1\xf3\xd6\xd6\x15\xdd\x65\x09\xf9\x95\x4e\x3c\xd3\xe9\x9f\x4a\
\xca\x9e\xef\x51\xd7\x6e\x44\x31\x86\x71\xda\x28\xc6\x00\x1d\xa9\
\x81\xbf\xaa\x78\xb6\x18\x73\x1d\x82\x79\xaf\xd3\x79\xe8\x2a\x94\
\x3f\x6f\xbc\xdb\x25\xd0\x69\xee\xa4\x39\x86\x03\xf7\x22\x1f\xde\
\x6a\x4d\x1b\xc3\xb2\x41\x33\x4d\x39\x49\x27\xc7\xee\x63\x1c\xae\
\xef\xef\x1f\x60\x6b\xaf\xb5\xb7\x8e\xce\x23\x93\x96\x3c\xbc\x8d\
\xd5\x8f\x73\x4b\x98\x56\x32\xb4\xdd\x01\x22\xb8\xfb\x55\xfb\xfd\
\xa6\xec\xf5\x66\x19\x00\xfb\x55\xfb\x9d\x41\x63\xba\x5b\x48\x7f\
\x79\x72\xdd\x54\x74\x41\xea\xd5\xcf\x6b\x7e\x27\x77\x97\xec\x9a\
\x4f\xcc\x58\xed\x32\x0e\xe7\xfd\x9f\xf1\xad\x7f\x0f\x69\x9f\xd9\
\xd6\xc4\xca\x77\x5d\x4d\xf3\x48\xe7\x93\xf4\xa0\x0b\x97\x2e\xe4\
\x88\x21\x3b\x65\x61\x92\xe3\xf8\x07\xad\x5c\xb4\xba\x3a\x74\x40\
\x24\x9b\x63\x5e\x49\x27\xaf\xb9\xf7\xaa\x17\xd7\x76\xda\x7c\x4f\
\x34\xe7\x1b\xbf\x36\x3d\x80\xaa\xd6\x11\xcf\x7a\xcb\x75\x7e\xa5\
\x63\xeb\x15\xbf\x65\xf7\x6f\x53\x40\x1d\x9d\xae\xb4\x8e\xa3\xcf\
\x5d\xa3\xd4\x74\xab\x26\x0b\x2b\xd1\xb9\x36\x33\x1e\xeb\xc1\xae\
\x5c\x1f\x4a\x55\x6d\x8d\x95\x62\xbe\xe2\x81\xdc\xd8\xb8\xd0\xba\
\x98\x65\xfc\x18\x56\x74\xfa\x5d\xcc\x79\xfd\xde\xff\x00\x71\xcd\
\x3e\x2d\x4e\xea\x3e\x92\xee\x1f\xed\x0c\xd2\xde\xf8\xa7\xec\x49\
\x10\x9a\x25\x79\x25\x6d\x88\x81\xb0\x58\xd2\xd4\xad\x0c\x4d\x4e\
\x07\x54\x89\x18\x75\x91\x7a\xfd\x7f\xfa\xd5\x24\x95\xbc\xbe\x21\
\xb2\x91\x9e\x39\xa1\x6f\x93\x00\xe4\x02\x09\x3f\xfe\xba\x8e\x4b\
\xad\x2e\x4f\xf9\x62\xe3\x3e\x83\x02\x98\x8e\x23\xc5\x16\x0d\x75\
\x61\xbe\x33\x89\x21\x3b\xd7\x1d\x7d\xeb\x1e\xcb\x57\x5b\xbd\x2e\
\xe6\xd6\xe4\xfe\xfc\x21\xda\xc7\xf8\xbf\xfa\xf5\xe8\xae\x9a\x5b\
\x7d\xd7\x9d\x7e\x82\xbc\xbf\x5c\xb0\xb1\xb0\xd4\x64\x43\xf6\x82\
\x84\xee\x4d\xb8\x03\x69\xed\x9f\xce\x81\x33\x26\xca\x38\xa4\x98\
\x24\xef\xb1\x5b\x80\xff\x00\xdd\x3e\xa6\xa2\xb9\x81\xed\xa6\x68\
\xa6\x5d\xae\xa7\x04\x55\xaf\x32\xc5\x0f\xcb\x6f\x3b\x7f\xbf\x28\
\xc1\x1f\x40\xb5\x73\x58\xb9\x87\x55\xb3\x8e\xe2\x28\x3c\x89\xad\
\x95\x62\x75\x07\x21\xd7\xa0\x6f\xc3\x18\x3f\x85\x2d\xcc\xda\xba\
\x32\x14\xe4\x53\xd4\xe0\xe4\x54\x48\x70\x6a\x41\x56\x99\x91\xe9\
\x3e\x13\xbd\xfb\x6e\x92\x81\x8e\x64\x8b\xf7\x67\xfa\x7e\x95\xb5\
\x5c\x2f\x81\x2e\x76\x5f\x4b\x01\x3c\x3a\xe4\x7d\x45\x77\x26\xbd\
\x0a\x52\xba\x25\xbb\x11\xb7\x5a\x4a\x71\x19\x34\x98\xad\x4a\xb9\
\xdc\x9c\xe0\x7b\x54\x4e\xbb\xb8\x6e\x47\xbd\x59\x2b\xc5\x46\x47\
\x35\x99\x05\x09\xb4\xdb\x49\x7f\xd6\xdb\x44\xc4\xfa\xa8\xaa\x91\
\xe8\xd6\xb0\x4a\x5e\xdb\xcc\xb7\x63\xde\x36\xc5\x6c\xb7\x5a\x63\
\x8e\x7a\x53\xb2\x0b\x9c\xe6\xab\xfd\xa7\x0a\x66\x28\x6d\xaf\x23\
\xff\x00\x69\x7e\x61\xf8\x77\xfc\x2b\x88\xd5\x7c\x45\x77\x7a\xca\
\x8e\x8b\x0e\xdf\x94\x28\x27\x8f\x5f\xa5\x7a\x7e\xa2\x0f\xd9\xf6\
\xa9\x20\xb1\x0b\xb8\x76\xcd\x73\xfa\xaf\x86\xa0\xd5\x1a\x52\xb8\
\x82\x48\x82\xa4\x4c\x3d\x00\xef\xf9\xd4\xca\x23\xb9\xcb\x4d\xe2\
\x9b\xf6\xb7\x30\xc2\x91\x42\xa4\x6d\x1b\x06\x08\x1e\xd5\x3f\x84\
\x21\x26\xda\x6b\x86\x5f\x99\xdb\x6d\x61\x6a\x16\x77\x16\x17\x2f\
\x05\xca\x15\x75\xfd\x7e\x95\xd3\x68\x52\x7d\x9f\x43\x87\x67\xfa\
\xd9\x18\xec\x1e\xa7\x35\xcd\x36\x69\x12\xd4\xa5\x65\xba\x2c\xc7\
\xf7\x16\xfc\x9f\x46\x6f\xfe\xb7\xf5\xa8\x67\x3f\x69\x63\x22\x93\
\xfb\xc3\xe5\x44\x7d\x07\xf1\x1f\xf3\xe9\x55\xef\x24\x51\x32\xd8\
\x40\xdb\xbc\xb5\x2f\x23\x1f\xe2\x72\x46\x3f\x53\x9a\xd2\x8a\x1d\
\xb7\x51\xa0\xfb\x96\xf1\xfe\x64\xff\x00\xf5\x87\xeb\x59\x32\xd1\
\x57\x59\x9c\xdb\xdb\x43\x69\x6c\x76\xcd\x33\x08\xd0\xfa\x0e\xe6\
\xb9\xcf\x16\x3f\x9b\x7b\x6f\x63\x02\x92\xb1\x28\x55\x51\xdd\x8f\
\xf9\x15\x7e\xc2\xed\x75\x1f\x11\xcd\x74\xe7\x16\xf0\x29\xd9\x9e\
\x80\x0e\xf5\xa5\xa3\xe9\x45\xaf\x25\xd4\xae\xd7\xf7\xce\x49\x8d\
\x0f\xf0\x8f\x5f\xad\x66\x51\x63\xc3\xba\x6a\xe9\xda\x7a\xa1\x03\
\xcd\x61\xb9\xdb\x1f\xa5\x5f\x92\x48\xe2\x96\x34\x91\xb0\xf2\x9c\
\x28\xa9\x27\x91\x6d\x6d\x5a\x79\x4e\x11\x06\x4e\x6b\x9c\xb7\xbf\
\x75\x8a\xe7\x56\x9b\x3e\x63\x7e\xea\xd9\x7d\x05\x20\x42\xf8\xa3\
\x55\x65\x61\x61\x65\xcc\x8d\xc3\x90\x79\x1e\xc3\xde\xab\xea\x21\
\x74\x2d\x22\x3d\x3e\x16\xff\x00\x49\x9c\x16\x9d\x87\x51\xed\xfe\
\x7d\x29\xde\x0d\xb0\x6b\xdd\x54\xdd\x4d\x96\x48\x7f\x78\xc4\xf7\
\x27\xa5\x7b\x6f\x82\x3e\x13\x49\x7f\x72\x75\x5f\x10\x29\x8e\x49\
\x48\x74\x89\xd7\xe6\x45\xed\xc7\x40\x68\x72\xb1\x69\x1e\x21\xe1\
\xbf\x04\xdd\xea\x8c\xb3\x5d\xee\xb7\xb6\x3c\xe0\x8f\x9d\xfe\x83\
\xb5\x75\x5a\x8d\xad\xb6\x91\x0c\x5a\x66\x95\x08\x13\xcc\x3e\x7f\
\x5d\xbe\xac\x7f\xcf\x7a\xfa\x46\x7f\x0f\x68\x1e\x1e\xd3\xe4\xbd\
\xba\x83\x7a\x44\x39\x32\x72\x49\xf4\x03\xd4\x9e\xd5\xe1\x9e\x28\
\xd4\x23\xfb\x5d\xd6\xab\x77\x0a\x47\x2c\x83\x0b\x14\x63\xee\xa8\
\xe8\xa3\xe9\xdc\xfa\x9a\xc9\x4b\x98\xa5\x64\xac\x8e\x6e\x44\x87\
\x4c\xb5\x69\x67\x94\x6e\xc6\x5d\xfa\x67\xfc\xfa\x57\x11\xe2\x0d\
\x52\xfb\x57\x86\x53\x69\x0c\xb1\xd8\xc5\xf7\xd8\x0e\xbf\x53\xfd\
\x2b\xd0\x74\xff\x00\x0b\xdd\x6b\xf3\xc7\x75\xab\xc6\xfb\x7a\xc3\
\x66\x9e\x9e\xf5\x93\xf1\x12\x39\x12\xe6\xcb\xc3\xd6\xb1\x88\x5c\
\x37\xcf\x1e\x31\xb3\x1d\x06\x3f\x33\x57\xcc\xba\x12\xe2\xed\x76\
\x73\x7e\x08\xd2\x46\x7e\xdf\x70\xbc\x0e\x23\x04\x7e\xb5\xd2\xea\
\x77\xf0\xd8\xdb\x3d\xc4\xff\x00\x82\x8e\xac\x7d\x29\xf3\xac\x76\
\x76\xc9\x69\x01\xd8\x91\xa7\xce\xff\x00\xdc\x5f\x5a\xe5\xed\xa1\
\x7f\x11\xea\x9e\x7c\xca\x56\xc2\x13\x85\x5f\x5a\xb4\x49\x67\x46\
\xb7\x9b\x55\xb9\xfe\xd3\xd4\x87\xee\xc7\xfa\x88\xbb\x0f\x7a\xe9\
\x32\x70\x00\xa7\x2a\xaa\xa8\x18\x01\x40\xc0\x02\x9b\x9c\xd0\x02\
\xe3\x8c\x0e\x94\x84\x63\xde\x94\x12\x0f\x02\xb3\x35\xcd\x52\x2d\
\x2e\x0d\xef\xf3\xcc\xdc\x47\x18\xea\x4d\x00\x2e\xb3\xab\x5b\xe9\
\x56\xfb\xa6\x3b\xa5\x6f\xb9\x18\xea\xdf\xfd\x6a\xe5\xb4\x19\x64\
\xbf\xd4\xa6\xd4\xef\xce\x52\xdd\x32\x7d\x01\xf4\x1f\xad\x73\xf7\
\x97\x53\xea\x17\x7b\xe6\x62\xd2\xbf\xa7\xf2\xad\xdd\x54\x8d\x27\
\x47\x87\x4e\x8f\xfd\x74\xdf\x3c\xde\xc3\xd2\x99\x31\x95\xcd\x9b\
\x19\xcd\xc6\x94\x6e\x0f\xde\x9e\x70\x47\xfd\xf4\x07\xf4\xad\x48\
\x9f\x17\x13\x2f\x71\x83\xf9\x8f\xfe\xb5\x67\x58\x43\xb3\x4c\xd2\
\xe3\xe9\x92\x09\xfe\x75\x65\x5f\xfe\x26\xf2\xa7\x76\x85\x5b\xf2\
\x26\x91\x65\xb7\xf4\x1d\xeb\x96\xf1\xb5\xbe\xeb\x58\x66\x03\xee\
\x36\x0f\xd0\xff\x00\xfa\xab\xa8\x63\x92\x4f\x61\x59\xda\xdc\x02\
\xe7\x4d\xb8\x8f\x19\x21\x72\x3e\xa2\x96\xec\x0f\x37\xe7\x15\x3d\
\xb4\xfe\x43\x92\xc3\x72\x38\xda\xc2\xab\xf3\xce\x4f\x4a\x43\xf3\
\x0a\x93\x36\x18\xcf\x4e\xb5\x32\xf4\xcd\x44\x9c\x1a\x97\xa7\x35\
\xa2\x33\x66\xf7\x83\xa4\xd9\xad\xc7\xfe\xd0\x2b\xfa\x57\xa1\x93\
\x8e\xb5\xe4\x90\x4e\xf6\xf2\xac\x90\xb9\x56\x1d\x08\xa5\x9a\xf2\
\xe2\xe0\x9f\x3e\x69\x24\xff\x00\x79\xb3\x5b\xc2\xaf\x2a\xb1\x2c\
\xf4\xc9\xb5\x4b\x28\x73\xe6\x5c\x46\xa7\xd3\x35\x46\x5f\x12\xe9\
\xd1\x9e\x66\x2d\xfe\xe8\xaf\x3a\x2d\xcf\x27\xf3\xa1\x8d\x5b\xaf\
\xd8\x34\x3e\x9f\xc5\x46\xeb\x53\x62\x90\x8a\xe8\x24\xac\x45\x25\
\x4c\xeb\x51\x11\x8a\x60\x45\x2c\x4b\x22\xed\x61\x91\x55\x67\xb8\
\xf2\x4e\x3c\xa9\x5f\xfd\xc5\xab\xec\x38\x04\x73\x9a\x8c\xe3\x20\
\x01\xcd\x0f\x50\x39\x9f\x10\x69\xf2\x6b\x50\x88\xd2\xd4\xc4\xeb\
\xf7\x64\x95\x80\xc7\xe0\x33\x9f\xc7\x15\xcb\x69\xa8\x74\xbd\x29\
\xef\xae\xff\x00\xd6\x28\xd9\x08\x27\x8f\xa8\xff\x00\x3d\xab\xb7\
\xd6\xee\xd2\x35\x16\xc8\xcd\xe6\x3f\x0d\xb7\x92\x07\xb7\xb9\xed\
\x5c\x17\x8d\x12\xe9\x66\xb5\x86\x75\x58\xa2\xd9\xb9\x23\x1c\xf1\
\xef\x5c\xd5\x4d\x20\xc6\xf8\x49\x24\xbb\xbf\x9e\x67\x3b\xb1\x86\
\x27\xb9\xeb\x5a\x1a\xe5\xf1\xb5\xd2\xdb\x67\xfa\xcb\xa6\x3b\x4f\
\x7d\xbe\xb5\x93\xe1\xdb\xc8\xec\xed\xef\xb7\xb6\xd9\x1d\x55\x50\
\x77\x27\x9a\xb3\x75\xaa\xda\xac\xc9\x71\x1c\x22\x69\xd0\x01\x1a\
\xff\x00\xcb\x38\xc7\xf5\x35\xce\xcd\x62\x3b\xc3\xba\x44\xd1\x4a\
\x8d\x29\x2b\x2c\x98\x6f\x2b\x1d\x17\xd4\x8f\x73\xd0\x57\x68\x91\
\x11\xe9\x55\x74\x5b\x39\x21\xb7\xf3\x6e\xb9\xb9\x97\xe7\x73\xfc\
\x87\xe1\x56\x35\x7b\xb4\xb0\xd3\x5e\x76\xeb\xd1\x47\xbf\x6a\xcc\
\x69\x59\x1c\xaf\x8b\x2f\x4d\xcd\xcc\x7a\x74\x0d\x90\x0f\xcf\x8e\
\xac\x7d\x3f\xcf\xad\x2d\x96\x8d\x73\xac\x5f\x45\x63\x64\x0f\xd9\
\xad\x80\x05\xcf\xdd\x07\xbf\xe7\x54\xf4\x1b\x2b\x9b\xfb\xd2\xf6\
\xd1\xbc\xd7\x2e\xc1\x63\x03\xa9\x72\x78\xaf\xaa\x7e\x1b\x7c\x3e\
\xb6\xf0\xfe\x99\x03\x5e\xa8\x92\xe0\x0d\xc4\x63\x80\xde\xa7\xd4\
\xd4\xca\x56\x2a\x2b\xa9\xe6\x5f\x09\xb4\x98\x63\xd6\x22\x8e\x7b\
\x37\x5b\x38\x58\xdc\x48\xc3\xf7\x8b\x81\xc2\x92\x47\x6c\x8a\xfa\
\x36\x39\x23\x99\x04\x90\xb2\xba\xb0\xc8\x65\x39\x06\xbc\xf7\xe0\
\xdc\x70\x26\x99\x7b\x2c\x6c\xbe\x63\x48\xa9\xc7\x5c\x01\xff\x00\
\xd9\x56\x97\xc4\x21\xfd\x95\xa3\x49\x71\xa5\xdc\x7d\x8a\xfa\xe1\
\xb6\x06\x8f\x80\x47\x72\x47\x7e\x3b\xf5\xac\x5c\xae\x3e\xa7\x3f\
\xe3\x4d\x52\xe3\x5f\xd5\xd3\x4d\xd3\x94\xc9\x14\x2d\x84\x45\x3f\
\xeb\x64\xee\x4f\xb0\xa5\xb1\xf8\x64\xcf\x2d\xb3\x6a\xb2\x24\x81\
\x9b\x74\xe1\x07\x40\x39\x51\x9f\x4c\xf6\xf6\xaa\xde\x06\xd5\xa1\
\xf0\xcd\xc1\x87\xc5\x36\x6f\xa7\xdf\xcf\x81\x0c\xf2\x7f\xab\xf2\
\xfd\x33\xd8\xfa\xd7\xad\x45\x22\xcc\x8a\xf1\xb0\x68\x98\x64\x11\
\xd0\x8a\x4d\xd9\x58\x36\x33\xf4\xdd\x1e\xc7\x4d\x4d\xb6\x70\x22\
\x1f\xef\x9e\x4f\xe7\x5f\x26\x6a\x73\x47\xa9\x78\xef\x5f\xd6\xe4\
\x3b\xa0\x49\x59\x63\x3d\x73\xce\x06\x3f\x2f\xd6\xbe\x96\xf8\xab\
\xe2\x25\xf0\xe7\x83\x6f\x6e\xa3\x6d\xb7\x12\x2f\x93\x00\x07\x9d\
\xed\xc6\x7f\x01\x93\x5f\x35\x68\xb6\x9b\x2d\xa1\x42\x3e\x50\x7c\
\xd9\x49\xfe\x26\x3d\x07\xe1\xd7\xf1\x15\x54\x97\x50\x7b\x18\xda\
\xf2\x5c\x4c\x91\x58\xc7\xff\x00\x1f\x17\x8d\xba\x6c\x73\xb1\x3d\
\x3f\xcf\xf5\xad\x5b\x3b\x58\xec\xed\xd2\x18\x57\x6a\xa8\xab\x10\
\x5a\x18\xe6\x9a\xe2\x62\x0d\xcc\xc7\x92\x3f\x84\x76\x02\xa5\x2b\
\xc7\x4a\xe9\x11\x5c\xae\x6b\x3d\x2e\x0d\xc5\xfb\x43\x06\x0c\x51\
\x7f\xac\x7f\x53\xfd\xd1\x50\xea\xfa\x8b\xc9\x30\xd3\x74\xef\x9a\
\xee\x4f\xbc\xc3\xf8\x05\x67\xea\x3a\xa5\xbe\x8b\x66\x2c\xac\x36\
\xc9\x70\x3e\xf3\x9e\x80\xfa\x9f\x7f\x6a\x00\xb9\xaf\x6b\x51\x69\
\x70\xed\x18\x7b\x86\x1f\x2a\x7a\x0f\x53\x5e\x75\x7b\x75\x2d\xe4\
\xed\x34\xec\x59\xcf\xad\x3e\xe5\xa5\xb8\x95\xa5\x99\xd9\xd9\x8f\
\x24\xf2\x49\xad\x0d\x0f\x44\x9b\x51\xbe\x8e\x36\x46\x48\x08\xde\
\xed\xfe\xcd\x4b\x77\x22\x4a\xe5\xaf\x0a\xd8\xc7\x1a\x49\xaa\x5e\
\x0c\x41\x08\x3b\x7d\xda\xb1\xee\xe6\x97\x55\xd5\x3c\xe7\x07\x32\
\x36\x00\xf6\xcf\x4a\xe9\x3c\x43\x21\xba\x9e\x2d\x1f\x4c\x5c\xc3\
\x19\x0a\x42\x7f\x13\x7f\xf5\xaa\x7b\x8d\x21\x2c\xfc\x45\xa7\x59\
\xa0\xca\xc1\x08\x77\x3f\xde\x6e\x49\x35\x37\xe8\x54\x61\x64\x6c\
\xca\x00\xbd\xb5\x84\x7f\x04\x6c\xdf\xc8\x56\x73\xcb\xb7\xc5\x2a\
\x9f\xf4\xef\xfd\x6a\x54\x9f\x7f\x89\x9e\x2c\xfd\xd8\x71\x8f\xc7\
\x35\x9b\x70\xd8\xf1\x7c\x5f\xf5\xcf\x6f\xe9\x4c\x66\xf2\xf3\x18\
\xdb\xd3\xad\x57\x89\xb7\x2c\xea\xc7\x24\x36\x0f\xd2\x9d\x64\xff\
\x00\xe8\xea\x09\xe7\x9f\xe7\x55\xa1\x38\xd4\x6e\x22\x27\x92\xaa\
\xf8\xfc\xc7\xf4\xaa\x4c\x0f\x3a\xb8\x1b\x26\x91\x4f\x50\x4d\x46\
\xa7\x8a\xb5\xab\x26\xcd\x4e\x75\xed\xbc\xd5\x62\x31\x9a\x9e\xa6\
\x4c\x7c\x7d\x69\xed\x4c\x8f\xad\x39\xaa\xd1\x9b\x10\x0a\x08\xa5\
\x06\x83\x4c\x06\x9e\x68\xa5\xa2\x80\x3e\xa7\xdb\x4c\x22\xa6\xc5\
\x31\xab\xd1\x20\x85\x85\x44\xeb\x53\x35\x34\xd0\x04\x04\x55\x3b\
\xff\x00\xb4\x98\xf6\xd9\xa2\x99\x18\x7d\xe6\x38\x0b\xfe\x26\xaf\
\xb0\xa6\x50\x06\x6d\x86\x99\x1d\xab\x97\x63\xe7\x4e\xc7\x2d\x23\
\x0e\xa7\xfa\x57\x01\xf1\x05\x8b\xeb\xdb\x07\x21\x23\x01\x6b\xd4\
\x6b\xcd\x7c\x7d\x6e\xc9\xae\x2b\xe3\x89\x10\x6d\xfe\x55\x95\x5f\
\x84\xb8\x2d\x4c\x2d\x30\xb5\xbc\x13\x4e\xa1\x7a\x6d\x53\x8c\x9d\
\xc4\x1f\xf1\xaf\x5b\xd3\xfe\x1f\xdb\xf8\x7f\xc0\x10\x6a\x9a\xbd\
\xba\xbe\xab\xa8\x49\x18\x8e\x39\x07\xfa\x88\xfe\xf7\x03\xd4\x81\
\x55\xfe\x12\x78\x41\x35\x2d\x7a\xc4\x6a\x11\x6e\x86\xd9\x0d\xd4\
\x91\xb7\x45\x03\x18\xcf\xb9\x38\xfc\x05\x74\x7e\x39\xd4\x6e\x35\
\x9f\x10\xc1\x3c\xce\xfe\x42\x97\x10\xc5\x9e\x11\x40\x1d\xbd\x4f\
\x5a\xf3\xe5\x2b\x3b\x1d\x30\x8b\x67\x3a\x89\x96\x02\xb8\xcf\x18\
\x5c\x7d\xab\x51\x4b\x44\x3f\xba\x83\xef\x63\xbb\x57\x6d\xa9\x4e\
\xb6\x36\x33\xdc\x37\xce\xc8\x38\x1e\xa7\xb5\x72\x3e\x1f\xd2\x67\
\xd6\xf5\x09\x08\xfe\x1f\xdf\x4a\xd8\xce\x06\x47\x3f\x99\xa0\x47\
\xaf\x7c\x14\xf0\xf4\x16\x11\x49\xab\x5f\x2c\x71\xc1\x67\x1e\xe3\
\x21\x1f\xc6\xdc\x93\xff\x00\x01\x5f\xfd\x0a\xbd\x16\x5f\x88\x9e\
\x14\x45\xda\x75\x9b\x66\xcf\x60\x09\xa9\x7e\x1b\xda\x24\x1e\x16\
\x8c\x6d\x04\x4c\xee\xec\x0f\x43\x92\x46\x3f\x20\x2b\x36\x1f\x85\
\xfe\x1f\x3a\xbd\xec\xf2\xd9\xc6\xf6\xf7\x20\x30\x8f\xa7\x94\xd9\
\x39\xdb\xec\x73\xfa\x56\x4d\xdd\x8c\xe6\xfc\x1d\xae\xf8\x36\x3d\
\x4b\x58\xb6\x96\x7b\x01\x0b\xce\x25\xb7\x96\x44\xc6\x55\xba\x80\
\x71\xd8\xf1\x5b\xb7\x3a\x3d\x97\x88\xbc\x55\x6c\xd6\x33\x86\xd3\
\x6c\x61\xde\xcd\x04\xf9\x56\x91\xcf\xca\x38\xe3\xf8\x73\xf9\x57\
\x29\xf1\x4b\xe1\x6e\x9f\x6b\x6f\x69\x2e\x8a\xf6\xd6\x41\xd9\x96\
\x56\xb8\x94\x81\x9c\x0d\xb8\xcf\xe3\x5e\x29\x73\xfd\xa9\xe1\x6d\
\x4d\x85\xae\xa1\xb2\x61\x8f\xde\x5a\x4f\x90\x7f\x11\x4b\x90\x16\
\xa7\xd6\x7e\x26\xf0\xfc\xba\xae\x98\xd6\xfe\x74\x53\x0c\x65\x52\
\xe9\x37\x0c\xfb\x15\xc1\x1f\x5a\xf2\x6d\x16\xfb\xc5\x9e\x09\xd5\
\xe4\xb2\x8e\xd1\xae\x6d\x73\x91\x60\x65\xdc\xd8\xf5\x46\xc7\xf2\
\xae\x13\x4c\xf8\xbd\xe2\x6b\x39\x93\xed\x12\xad\xf6\x38\xc3\xe5\
\x58\x8f\xa8\xff\x00\xeb\xd7\xa0\x2f\xc4\x58\x35\xef\x09\x6a\x3a\
\x95\xca\x25\xbe\xa1\xa7\x11\xe4\xc1\x23\x0f\x35\x64\x6f\xba\xc8\
\xd8\xe4\x64\x72\x08\xed\xd6\x86\x86\x71\xff\x00\x17\x3e\x20\x41\
\xe2\xdd\x5a\xc6\xd2\x04\x9e\xd6\xca\xdb\x89\x23\x99\x76\xb0\x90\
\xfd\xec\x8f\x60\x3f\x9d\x51\xd3\x65\x37\x51\x99\xe3\x56\x8a\xd4\
\x9f\xdd\x2e\x7f\xd6\x7f\xb4\x7d\xbd\x2b\x1a\xcf\xc3\xd7\x3a\xdd\
\xf4\xfa\xa6\xae\x59\x3c\xe7\x69\x00\x23\x99\x09\x39\x24\x8f\x4c\
\xd7\x47\x69\xa7\x35\xa1\x39\x99\x98\x63\x01\x71\x85\x51\xec\x39\
\xfe\x75\xa4\x36\x13\xdc\x8a\x55\x25\xf9\xef\x5c\xdf\x88\x75\xb1\
\x6e\x4d\xa5\x96\x1a\xe4\xf0\x4f\xf7\x3f\xfa\xf5\x37\x89\x75\xe1\
\x09\x6b\x5d\x3d\xb7\x4a\x78\x69\x07\x45\xfa\x57\x16\x61\x2c\xc4\
\xb1\xe4\xf5\x27\xbd\x69\x71\x13\xfd\xb0\x58\x5b\x34\x76\x8f\x9b\
\xa9\x79\x9a\x7c\xe4\xfd\x07\xf8\xd6\x6d\xbd\xa4\xd7\x57\x09\x1c\
\x31\xbc\xb3\x37\x45\x41\x9a\xeb\xbc\x21\xe1\x78\xf5\xdd\x5a\x1b\
\x7d\x42\xf6\x1d\x2a\xd4\x8d\xc2\x7b\x91\xb4\x30\xce\x3e\x5c\xe3\
\x3f\x9d\x7d\x0f\xa6\x68\xdf\x0f\xbc\x23\xa5\x7d\xa6\xcf\xec\x77\
\xd3\x2a\xf1\x89\x56\x59\x25\x6f\x40\x33\xde\xb3\x94\xec\x08\xf9\
\xf6\xc7\xc1\xa3\x4c\xb5\x4b\xbd\x5a\x26\x9a\x59\x4e\xd8\x6d\xd4\
\x61\x59\xbd\x0b\x7f\x3f\x4a\xd0\xd4\x04\x9a\x7d\xaf\xd9\xe2\xdb\
\x26\xa3\x71\xe9\xc6\xdf\x7f\x60\x2b\xb4\xf1\x0e\xad\x77\xab\xdf\
\x0b\xab\x88\xd3\xed\x18\xdb\x0c\x0a\x72\x96\xe9\xe9\x9c\x0f\xc4\
\xe3\x9c\x52\x78\x57\xc0\xd7\x9a\xdd\xc9\x95\x63\x69\x63\x6e\x24\
\x9d\xb8\x57\xf6\xf6\x5f\x6e\xf5\x3c\xf6\x57\x2e\xc9\x9c\xcf\x81\
\xbc\x28\x51\x96\x44\x43\x35\xc4\xa4\x08\xce\xdc\x96\x27\xf8\xbf\
\xcf\xd6\xa0\xd7\x34\xb9\x6c\x7c\x75\xa9\xc5\x3e\x0c\x96\xd1\x24\
\x64\x8e\x46\x48\xcd\x7d\x45\xe1\x6f\x0c\x59\xe8\x51\x29\x55\x12\
\x5c\xe3\x06\x42\x3a\x0f\x41\xe9\x5e\x0b\xf1\x54\x01\xe2\x5d\x7e\
\x6b\x71\xfb\xe9\x24\xd8\x3f\xde\x0a\x17\xfa\x1a\x88\x3b\xbd\x4a\
\x93\x49\x59\x1e\x3d\xa7\x5c\xf9\xfe\x2d\x79\x41\xf9\x64\x62\x05\
\x2d\xc3\x06\xf1\x92\xfa\x2f\xcb\xff\x00\x8e\xd6\x4e\x91\x21\x87\
\x54\xb5\x72\x78\x0c\x33\xf8\xd5\x8d\x42\x7d\x9e\x2a\x91\xd7\xfe\
\x7a\x7f\x21\x5b\x98\x1d\x06\x9c\x77\x49\x17\xfd\x73\x66\x3f\x8b\
\x55\x3d\x46\x61\x6f\xe2\x6b\x66\xcf\xcb\x2c\x7b\x0f\xe7\x56\x34\
\x93\xfe\x92\xd1\xf7\x48\x23\x1f\x89\xc9\xac\x2f\x17\x4c\x53\x57\
\x84\x8f\xf9\x66\xa0\xfe\x39\xa6\x53\x33\xfc\x4d\x1e\xcd\x5a\x5c\
\x74\x3c\xd6\x58\xeb\xf5\xad\xff\x00\x15\xa8\x69\x6d\xa7\x5e\x93\
\x46\x0d\x60\x00\x71\xf4\xa4\xf7\x33\x77\x44\xa9\xd2\x9d\x4d\x4f\
\xbb\x4e\xab\x46\x6c\x28\xa2\x8a\x60\x27\x7a\xb3\xa7\xc1\xf6\x8b\
\xb8\x62\xfe\xfb\x62\xab\x74\x35\xb9\xe1\x08\xbc\xcd\x62\x33\x8f\
\xb8\x0b\x55\x46\x3c\xce\xc0\x7d\x24\xea\x07\x4a\x85\xd4\x0a\xb0\
\xeb\x8e\x45\x46\xe3\x22\xbb\xcc\x7a\x15\x59\x6a\x36\x5e\xf5\x63\
\x6f\x38\xa8\xd8\x60\xd3\x1f\x42\x12\x29\x84\x54\xe4\x54\x6c\x29\
\x0c\x8e\xb0\x35\xd8\xad\xae\xaf\xa1\x92\x65\x18\xb2\xcb\x31\x3d\
\xd8\xe3\x03\xf0\xc6\x7f\x1a\xdd\x95\xc4\x71\xb3\xb1\x00\x28\xc9\
\x26\xb9\xfb\x3b\x77\xbb\xb0\xb8\xba\x97\x8f\x91\xd8\x0f\xef\x39\
\x1f\xd3\xa5\x67\x51\x5d\x58\xb8\xb3\xd2\xbe\x03\xdf\x47\xaa\x59\
\xf8\x92\x44\x40\x92\x7e\xed\x07\xae\xcc\x3e\x29\x9e\x36\xf0\xdc\
\x9a\x56\x87\x67\xab\x09\x56\x46\x04\x03\x18\x1f\xdf\x1c\x60\xd6\
\x67\xc1\x30\x9e\x1d\xbf\xb7\x12\x92\x17\x50\x8c\x24\xa4\xf4\x0d\
\xd5\x3f\x9b\x0f\xc6\xbb\x7f\x88\x4c\xfa\x7e\x95\x67\xa6\x3c\x65\
\xed\xe4\x9c\x79\x73\x0e\x81\x53\x27\x69\x1d\x88\xaf\x36\x71\x71\
\x9e\xa7\x54\x65\xa1\xe1\x7e\x28\x2c\xa9\x6b\x62\x5f\x71\x50\x64\
\x98\xfa\x93\xd3\xfa\xf1\xf4\xaf\x42\xf8\x59\xa0\x95\xf0\x5e\xbb\
\xa8\xb2\xfc\xf2\xed\x89\x38\xe8\x13\xe6\x6f\xe9\xf9\x57\x0b\x7f\
\xa3\x5e\xcd\x6c\x75\xa9\x90\x2d\xa4\xf7\x06\x28\xcb\x1e\x58\x81\
\xd8\x7a\x71\x8c\xd7\xd0\x1f\x08\x2d\xe3\x1e\x06\xb7\x05\x41\x12\
\x3c\x99\x07\x9e\xa7\x1f\xd2\x95\x49\x58\x46\xdf\x81\x71\xff\x00\
\x08\xcd\x97\xae\xd3\xff\x00\xa1\x1a\xe8\x71\x8e\x95\x89\xe1\x9b\
\x6f\xec\xc4\x9b\x4d\x39\xdb\x13\x19\x22\x62\x7a\xc6\xc7\x81\xf8\
\x1e\x2b\x70\xe7\x35\xcd\x26\x2b\x99\x9a\xe6\x91\x67\xad\x5a\x0b\
\x6d\x42\x3f\x36\x2c\xe7\x04\x91\x83\x5c\x2e\xa3\xf0\x7b\xc3\x97\
\x7b\x8a\x1b\x98\x89\xff\x00\x68\x30\xfd\x45\x7a\x2d\xc5\x98\x9b\
\x12\x09\x24\x8d\xfd\x50\xe2\xb2\x6f\xf4\x09\xaf\x33\xe6\xea\xd7\
\xc2\x33\xfc\x08\x55\x73\xf9\x0a\x77\x65\x44\xf1\x88\xbe\x1c\x68\
\x9e\x16\xf1\x25\xb5\xdd\xc5\xf2\xea\x89\x03\x6f\x16\xb1\xc7\xb5\
\x83\x0e\x9b\x8e\x48\xfc\x0e\x2b\x37\xc5\xb6\x7a\x75\xfe\xb8\x9a\
\x99\x82\x2b\x7b\x9e\x36\x41\x02\xef\xdc\xbe\xe3\xb9\xf7\xed\x5e\
\xd9\x07\x82\xb4\xd8\x86\x1c\xcf\x20\x1f\xde\x7d\xbf\xca\xa8\x78\
\x97\x4f\xd3\xbc\x3b\xa4\xcb\x26\x99\x67\x0c\x57\x93\x91\x12\x4b\
\xb7\x2c\x09\xfe\x2c\x9f\x41\x93\x55\xce\x33\xc5\xad\xa4\xb8\xbb\
\x96\x59\x64\x41\x05\xa4\x7f\x28\x24\xf2\xe4\x77\x3e\x80\x7a\x57\
\x29\xe2\x3d\x75\xa7\x66\xb6\xd3\xf8\x8f\xa3\x48\x3a\xb0\xf6\xf6\
\xae\xa7\xc4\x91\xcf\x79\x3c\x7a\x46\x94\x8c\x5b\x18\x70\x3f\x95\
\x71\x37\x1a\x48\xb6\xbf\x90\x6e\x66\x31\x7c\xac\xc7\x81\xbb\xb9\
\x1e\x83\xfc\x2b\x58\xb0\x68\xc6\x82\xcc\xbb\x63\x6b\x13\xd2\xbd\
\xa7\xe1\xcf\xc1\x91\x76\xab\xa8\x78\xaa\x37\x8e\x16\x5f\xdc\xda\
\xfd\xd6\x39\xee\xde\x9f\x4a\xdb\xf8\x53\xe1\x3d\x2f\x4e\x82\x1d\
\x57\x54\x64\x9a\xfd\xb0\xf6\xf6\xc9\xf3\xb2\x7a\x31\x51\xdf\xf9\
\x57\xa8\x5e\x7f\x6b\x5f\xa1\x4b\x13\x1e\x9f\x19\xe3\xce\x99\x77\
\xbf\xe0\xa3\x81\xf8\x9f\xc2\xb3\x94\xaf\xb0\x8e\x77\xc5\xfa\x6f\
\x85\xad\x74\xfb\x6b\x7d\x5a\xc2\x1b\xa7\x89\x4a\xdb\x43\x8f\x9d\
\x47\x4e\x08\xfb\xab\xfe\x15\xe0\x3a\xa5\x96\x9c\xb7\xf2\xff\x00\
\x67\xc0\x4d\xcc\x84\x8f\x2a\x05\xf3\x56\x3f\xf6\x57\x3f\xcf\x8e\
\x79\xf6\xaf\xa2\x5f\xc1\x9a\x54\x30\x4d\x75\xaa\x4d\x35\xd4\xb8\
\x2c\xf2\xdc\xc9\xc3\x1f\x53\xdb\xf3\xcd\x70\x10\xf8\xe3\xc3\x9a\
\x6e\xaa\xe1\x55\x61\x92\x06\x2a\xa4\xdb\x09\x22\x3f\xee\xb2\x11\
\x8f\xae\x28\xb8\x1c\xe6\x97\xe0\xbd\x6e\xc9\x2d\x2e\xe2\x9a\xd1\
\x99\xbe\x76\xb1\xbe\x47\x8c\x39\xec\x0b\x1e\x09\xc7\xb8\xaf\x50\
\xd2\xfc\x67\x73\xa6\xc0\xb1\x6b\xfe\x1a\xbd\xd3\x63\x51\xb7\xce\
\xb7\x5f\x36\x1f\xd0\x64\x0f\xce\xae\xe8\x5e\x3d\xf0\xee\xb3\x13\
\x47\x35\xfd\x8c\x6d\xd0\x23\xcb\x90\xdf\xf7\xd0\x15\xd0\x8b\x2d\
\x91\x09\x74\x8b\x85\x8d\x58\x64\x2e\x77\x44\xc3\xe9\xdb\xf0\xa9\
\xbd\xf7\x1d\xfb\x89\xa4\x6b\xfa\x66\xb3\x19\x7d\x3a\xf6\x1b\x8d\
\xa3\x2c\xa8\xdf\x32\xfd\x47\x5a\xf9\xc7\x54\x66\xd6\x35\x7b\xcb\
\xa0\x99\x5f\xde\x4d\xee\x59\xb3\xb7\x1f\x41\x5e\xbb\xf1\x06\x7d\
\x29\x7c\x39\x7a\xd7\xfa\x6c\x70\x6a\x86\x32\xb1\x80\x98\x66\x62\
\x71\x94\x60\x06\x7f\x9d\x73\xde\x02\xf0\x15\xc5\xae\x89\x2d\xf5\
\xd5\xdc\xb6\x72\xb4\x6c\xc1\x18\x09\x00\xca\x91\x92\x0f\xa0\xe3\
\xa8\xa6\x95\x8a\x8b\xba\xb9\xf2\x61\x52\xac\xa5\x7f\x87\xa5\x30\
\x96\xbd\xd4\xc1\xcf\xcd\x34\x83\xa7\xb9\xa9\xee\x46\x25\x29\x9c\
\x8a\x93\x40\x45\x5d\x4e\x39\x1c\x7c\xb1\x2b\x48\x7f\x01\x5b\x98\
\x4b\x73\x7b\x47\x93\xce\xd5\xf5\x37\xec\x18\x28\xfa\x73\xfe\x15\
\xcd\xf8\x8d\xfe\xd1\xab\xcf\xce\x42\x9d\xa3\xf0\xad\x4f\x0c\xdc\
\x79\x36\xfa\x8d\xd4\x9c\xed\x0a\xc7\xdf\xad\x72\xf3\x33\x4b\x23\
\x3b\x13\x92\x72\x69\xf4\x1b\x66\xf5\xf0\xfb\x4f\x87\x2c\xe6\xea\
\xd0\x9d\x8c\x6b\x9f\xea\x4f\x63\x5b\x56\x12\xf9\xbe\x1c\xbd\x87\
\xbc\x6c\x1c\x7e\x35\x89\xd7\x04\x55\x32\x64\xec\x3e\x33\xc5\x3a\
\xa3\x8c\xf5\xa9\x45\x34\x66\xc4\xa2\x8a\x29\x80\x0e\x09\x1e\xb5\
\xd7\xf8\x12\xdc\x62\xe2\xe0\x8e\x98\x51\x5c\x86\x72\xd5\xdd\xf8\
\x25\x0f\xf6\x5c\x9e\xef\x5b\x51\x5e\xf0\x1e\xee\xc4\x62\xa1\x24\
\x13\x4f\x95\xc4\x5c\x37\x4a\x8c\x90\xc3\x2b\x5d\x66\x04\x72\xaf\
\x3c\x54\x4e\x32\x2a\x66\xa8\x88\x39\xa6\x51\x19\xa6\x39\xe2\x9e\
\xd5\x14\x94\x86\x8a\x7a\x9a\x79\x96\x13\x46\x3a\xc8\x36\x0f\xa9\
\xe3\xfa\xd3\xfe\xce\x13\x4f\x36\xc9\xd0\x46\x55\x7f\x2a\x74\xc0\
\x98\xfe\x51\x96\x04\x1c\x7a\xf3\x4f\x56\xdc\xa0\xe3\x1e\xc7\xad\
\x05\x26\x49\x6a\x4b\xda\xa2\xb8\x2a\x70\x33\xea\x2b\x75\x7c\x4a\
\x3c\x5d\xe1\x38\x2d\xa4\x61\xfd\xaf\x61\x74\xb1\x48\x3f\xbe\xad\
\x94\x0f\xf9\xe3\x35\x85\x9c\x0a\xe0\x7c\x3b\xac\x8d\x3b\xc4\x4d\
\x73\xf3\x79\x26\x53\xbb\x6f\x05\x97\x76\x78\xf7\x1c\x57\x26\x26\
\x1c\xca\xe6\xd0\xd1\x9e\xdd\xf1\x4f\x47\x83\x49\xd0\xb4\x7d\x3e\
\xc1\xc2\x42\xf3\x6d\x11\x1e\x9b\x80\xfb\xc3\xd3\xaf\x35\xe8\xfe\
\x07\xd3\x86\x95\xe1\xcb\x6b\x35\x70\xe2\x2d\xc3\x70\xee\x72\x79\
\xfc\xea\x94\x2b\xa6\x6b\x13\x41\xe2\x09\x6e\x60\x9a\xd5\x21\x2b\
\x01\x3f\x71\x14\xfd\xf6\x3e\xfd\xbd\xb1\x5a\x5e\x13\xb8\x8e\xe7\
\x44\xb7\x9a\x2f\xf5\x72\x02\xeb\xf4\xdc\x6b\xcd\x95\xec\x6a\x68\
\xdc\x5a\x09\xf0\xca\xc5\x24\x5f\xba\xde\x9f\xfd\x6a\x9a\xdc\xca\
\x14\x2c\xea\x03\x8f\xee\x9c\x83\x4f\xcf\xe5\x4f\xf7\x3d\x6b\x2b\
\x92\x19\xe2\x8a\x28\xaa\x28\x63\x0a\xe2\xfc\x7b\x04\xb7\x37\x5a\
\x54\x11\x2e\xe6\x91\xa4\x54\x07\x85\x0d\x85\xe4\x9f\x60\x4f\xeb\
\x5d\xaf\x5e\xb5\x5e\xe6\xde\x39\x9a\x26\x61\xcc\x6d\xb9\x7d\x8d\
\x01\x73\xca\x46\x93\x17\x86\x7c\x2d\xa8\x6a\x47\x26\xed\xf3\x1c\
\x72\xe3\x07\x2d\xc6\xef\xaf\x5c\x7a\x56\x3f\xc3\x2f\x03\x1b\x9d\
\x6e\x6b\xad\x66\x31\xe4\x5b\xaa\x3a\xc0\xc3\xef\x33\x0c\x8c\xfd\
\x06\x0e\x3e\x95\xea\xba\xe6\x8a\x35\x3b\x4b\x3b\x57\xc7\x93\x1c\
\xeb\x2c\x83\x1c\x10\x32\x71\xf9\xd3\xed\xad\xfe\xc5\xa8\xdc\xdc\
\xb3\x73\x76\xe1\x02\x13\xfd\xde\x01\x1f\x51\x4f\x9a\xc8\x39\x8d\
\x4b\x7b\x78\xad\xd7\x6c\x11\x24\x6b\xe8\xa3\x15\x2a\xab\x03\xcf\
\x7a\x70\x03\x8e\x29\xe0\x71\x93\x53\x76\xc5\x71\xa5\x41\xc1\xef\
\xef\x5c\x0f\xc4\xef\x0b\xe8\xb7\xfa\x31\x5b\x8b\x1b\xa0\xc5\xb3\
\xe6\xd8\xc2\x1e\x41\xf5\xf6\xae\xff\x00\x18\xcd\x21\x19\xcf\x14\
\xe3\x2b\x01\xf1\x27\x89\x74\x68\x6c\x75\x07\x8f\x4c\xb8\x96\xe6\
\xd8\x74\x79\x21\xf2\xdb\x3e\x98\xc9\xa9\xbc\x2f\xe2\x4f\x11\x78\
\x76\x75\xfe\xc9\xbc\xb8\x40\xe4\x0f\x2b\x25\x91\xcf\x61\xb6\xbe\
\xb8\xd6\x7c\x29\xa3\x6b\x41\xbf\xb4\x2c\xa2\x66\x3d\x5c\x0d\xad\
\xf9\xd7\x27\xa7\x7c\x3e\xd1\xfc\x37\xaa\x8b\xfb\x75\xfb\x64\xe7\
\xfe\x3d\xed\xe6\x1f\x71\xfd\x41\xf4\xf7\x23\x8a\xbe\x6b\x8e\xe8\
\xe3\xe0\xf8\x8c\x26\xd5\x2c\x74\xff\x00\x88\x3a\x69\xb0\x6b\x56\
\x32\x99\x31\xb9\x1a\x4c\x0d\xb9\x1d\xb0\x09\x3d\xfb\x7a\x57\xa6\
\x6b\xda\xcd\x9d\xd7\x84\x2e\xef\x34\xdb\x98\x6e\x21\x92\x3d\x8a\
\xf1\x3e\x47\x3c\x63\x8a\xa7\xe3\xaf\x07\x3f\x88\xf4\x26\xd3\xe3\
\x16\x69\x2c\x8d\xbe\x6b\x99\x63\x25\xb7\x7a\xa8\x07\xf2\xe7\x8a\
\xe1\x4f\x84\x6f\x3c\x13\xe1\xb7\xd3\xe4\xd5\xd2\xf2\x0b\xa9\x01\
\x11\x8b\x71\x19\x52\x33\x9f\x9b\x24\x9e\xa3\xaf\x4c\x50\xda\x1c\
\x13\x91\xf2\xfd\xfd\xab\xc6\x89\x70\xdf\x72\x56\x65\x1f\x55\xc7\
\xf8\xd4\x76\xd9\x83\x4d\xba\x9c\x9c\x17\xc4\x51\xfb\xf7\x6f\xe9\
\xf9\xd7\x61\xae\x69\xff\x00\xf1\x47\x5b\x48\xaa\x03\xc7\x70\xd9\
\x3f\x52\x41\xfe\x42\xb8\x8d\x52\x65\x2e\xb0\xc4\xdf\xba\x84\x6d\
\x5e\x31\x93\xdc\xd6\xd1\x77\x09\xc6\xc5\x35\xb9\x78\xed\xa4\x84\
\x1e\x24\x20\x9a\xaa\x78\x21\x47\xd2\xa4\x65\xef\x4c\x65\xc8\x53\
\xde\xa8\xc6\x46\x8e\x92\x40\x86\xf6\x22\x7e\xf4\x24\xfe\x55\x9d\
\x1f\x70\x6a\xc5\x8b\x15\x92\x53\xff\x00\x4c\xd8\x53\x30\x3a\xfa\
\xd5\x21\x49\x5d\x09\xb6\x8d\xb8\xa3\xa5\x1d\x6a\x88\x16\x8a\x2a\
\xde\x9f\x61\x3d\xfc\xde\x5c\x0a\x4f\xab\x76\x1f\x5a\xa8\xc7\x98\
\x0a\xd0\x44\xd3\xcc\xb1\xa0\xcb\x31\xc0\xaf\x4e\xd2\x2c\x57\x4f\
\xb2\x8a\x15\x39\x60\x32\xc7\xd4\xd5\x6d\x0f\x40\x83\x4d\x02\x46\
\x02\x59\xcf\xf1\x1e\x83\xe9\x5a\xe4\x57\x55\x38\x72\x81\xea\xcc\
\x01\xea\x32\x2b\x3e\x4b\x6f\x27\xfe\x3d\x3e\x41\xfd\xcf\xe1\xfc\
\xbb\x56\x96\xdf\x4a\x85\x81\x07\xde\xb4\x57\x32\x33\x92\xe5\x5d\
\xfc\xa9\x3f\x77\x37\x65\x3f\xc5\xf4\xa9\x39\x19\xa9\x2e\xa0\x8e\
\xe1\x36\xc8\xa0\xff\x00\x31\x54\x58\xc9\x68\x71\x29\x32\x45\xd9\
\xfb\xaf\xd7\xd7\xeb\x4c\x09\x9b\xad\x45\x20\xa9\x5b\x04\x64\x1c\
\x8a\x63\x0c\x8a\x06\x88\x68\xc5\x2d\x19\xa0\x46\x6e\xa5\x24\xd7\
\x11\xcb\x67\x67\xb9\x24\x75\x20\xca\x57\x84\x07\xb8\xf5\x3e\x95\
\xcd\xf8\x9e\xce\x1d\x32\xcf\x4d\x8e\x25\xe1\x77\xe4\x9e\xa4\xfc\
\xbc\xd7\x6d\x5c\xcf\x88\x2c\x1f\x5a\xd5\xad\x6d\x94\x11\x6f\x02\
\xb1\x96\x4e\x98\x27\x1f\x28\xf7\xe2\xb3\xa9\x1b\xa3\x48\xcb\x53\
\x37\x46\xbb\x94\x06\xb6\x12\xb8\x84\x90\xfb\x03\x1d\xa4\xfd\x2b\
\xea\xaf\x87\x67\x3e\x0b\xd2\x7f\xeb\x80\xfe\x75\xf2\x06\x9c\xc6\
\xda\xed\x61\x6e\x1d\x49\x51\x5f\x5b\x7c\x2e\xb9\x5b\xaf\x03\xe9\
\x4c\x3b\x47\xb4\xfd\x72\x6b\xca\xac\x8e\x94\x76\x0b\xd0\x51\x4a\
\xbd\x05\x25\x72\xa2\x47\xe2\x92\x96\x83\x56\x21\xb4\x10\x29\x69\
\x0d\x05\x94\xef\x2e\xa1\xb6\x31\xac\xac\x01\x91\xb6\xa8\xf5\x35\
\xcc\x9b\xff\x00\xed\x0f\x11\xdb\xe3\xfd\x5c\x6d\x85\xac\xef\x1a\
\x99\x7f\xe1\x2e\xb0\x28\xc4\x24\x56\xce\x7f\xef\xa2\x05\x3f\xc3\
\x51\xb1\xd5\x61\x38\xc8\x07\x26\x93\x34\x51\xd2\xe7\x7e\x46\x0d\
\x14\x51\x41\x90\x51\x45\x14\x00\x76\xaa\xc9\x6b\x0c\x77\x12\x4e\
\x88\x3c\xe9\x00\x0c\xfd\xc8\x1d\xaa\xcd\x34\xd0\x86\x46\xdc\xe6\
\xbc\xaf\xe2\x86\xa0\x92\x6a\x30\xdb\xc7\xff\x00\x2c\x10\xe7\xea\
\x7f\xfd\x55\xe8\x1e\x21\xd5\x63\xd2\x6c\x1e\x67\x39\x90\xf0\x8b\
\xea\x6b\xc1\xbc\x4d\xaa\xac\x31\x5c\xdf\xde\xbf\x4c\xb3\x1f\x53\
\x4e\x47\x45\x18\xdf\x56\x79\xa7\xc4\x4b\xc8\xec\xf4\xf8\xf4\xb8\
\xc8\xde\xee\x64\x7d\xbf\xc2\xb9\xc8\x1f\xad\x79\x94\xc4\x79\x8e\
\x7b\x66\xb5\xb5\xbd\x42\x4d\x46\xfa\x6b\xa9\x4f\xcd\x23\x64\x0f\
\x41\xd8\x52\x78\x7f\x47\x97\x55\xbb\x20\x87\xfb\x34\x78\x69\x59\
\x06\x4e\x3d\x07\xbd\x74\x47\x44\x65\x37\xcd\x2d\x0c\xe9\x74\xfb\
\x98\xb4\xd4\xbd\x78\xc8\xb7\x77\xd8\xa7\xd4\xd5\x4e\xd5\xe8\x5e\
\x30\xb6\x5b\x5f\x0a\x18\x50\x14\x81\x66\x53\x10\x27\xa0\x23\xff\
\x00\xd7\x5e\x76\x29\xc6\x57\x22\x6b\x94\x95\x3e\x55\x60\x3b\xd2\
\x51\xd0\x0a\x07\x4a\xdc\xe7\x10\xd1\x45\x5b\xd2\xef\x05\x8d\xda\
\xcf\xe4\xc7\x29\x5e\x81\xc7\x4f\x71\xef\x40\xcd\xcd\x07\xc2\xf3\
\x5c\xed\x9a\xf7\x31\x43\xd9\x48\xe5\xbf\xc2\xbb\x6b\x6b\x58\xad\
\x20\x58\xad\xd1\x63\x41\xe9\xde\xb1\x74\xef\x15\x59\xdc\x95\x59\
\x81\xb7\x73\xc7\xcc\x72\x0f\xe3\x5d\x02\xb2\xc8\x03\x27\x20\xf4\
\xc5\x76\xc2\x30\xfb\x24\xea\x25\x25\x29\xeb\x49\x54\x23\xd3\xcd\
\xf7\x92\xb8\xbd\x84\xc1\xfe\xd7\x55\x3f\x8d\x39\x6e\x20\x9d\x7f\
\x75\x2a\x31\xf4\x06\xbd\x57\xc4\x1e\x0e\xb4\xbe\x85\xda\xc5\x12\
\x19\x88\xfb\x87\xfd\x5b\x7d\x47\x6f\xad\x78\xee\xbb\xe1\x4f\x2a\
\xe2\x48\xe3\x32\x59\x5d\xa1\xe5\x4f\x20\x7f\x9f\x5a\xc6\x15\x94\
\x89\x2c\xb2\xe3\xb0\xaa\xd2\x00\x49\x0d\xf9\xd7\x27\x7f\xfd\xb9\
\xa4\x82\xcf\x24\x8f\x1f\xf7\xc7\xcc\x3f\xfa\xd5\x56\x0f\x17\xdc\
\xc5\x81\x73\x0a\x4a\x3d\x57\xe5\xff\x00\x1a\xdb\x98\x47\x47\x73\
\x0b\xd9\xe6\x4b\x38\xf7\x2f\x56\x87\xb1\xf7\x5f\x43\x4f\xb3\xbd\
\x82\xfa\xdf\xcd\xb6\x7d\xcb\xd1\x87\x75\x3e\x86\xb3\x2d\xbc\x53\
\xa7\xdc\x6d\x0e\xcd\x03\xff\x00\xb6\x38\xfc\xea\x96\xa9\x6c\xe9\
\x33\x6a\x7a\x0c\xaa\xd2\x75\x96\x24\x39\x0f\xef\x8f\x5a\x63\x67\
\x44\xc6\x90\x9e\x3d\xab\x27\x45\xd7\xed\x75\x25\xd8\xc7\xca\xba\
\x1c\x34\x6d\xeb\xed\x5a\x8d\x91\xd3\x8a\xa8\x80\x66\x95\x40\xe9\
\x8e\x0d\x34\x50\xce\x23\x8c\xb3\x1c\x2a\x8c\x92\x7b\x0a\x25\xa3\
\x19\xc2\x78\xba\xd8\xda\xeb\x26\x45\x18\x59\x7f\x78\xbf\x5e\xf5\
\xf4\x17\xc0\x4d\x4c\x4d\xa0\x5c\x69\xcc\xd9\x92\xd1\xc3\x0f\xf7\
\x58\x71\xfa\x83\x5e\x11\xe2\xdb\xd1\x78\x22\xfb\x3c\x12\xba\x5b\
\x64\xb4\xa5\x48\x5e\x71\xc6\x6b\x73\xe0\xef\x89\x0e\x8f\xe2\x78\
\xe6\x95\xf6\xc0\xe4\x47\x28\x27\x8d\xad\xdf\xf0\x38\x35\xe5\xe2\
\x63\xa9\xd1\x0d\x8f\xac\xd7\xee\x8a\x4a\x48\xd8\x14\x06\x9d\x5e\
\x7a\xdc\x63\xa8\x34\x51\x54\x21\x28\xa2\x8a\x0b\x31\x75\x4d\x0e\
\x3b\xfb\xaf\x3d\x9b\x12\x60\x29\x38\xfe\x10\x49\xe3\xf3\xad\x1b\
\x2b\x48\x6d\x22\x09\x0a\x01\xef\x56\x07\x14\x13\x48\x2e\x25\x14\
\x51\x40\x82\x8a\x28\xa0\x04\x3d\x33\xda\xa1\x96\x55\x8d\x19\xdc\
\x85\x45\x19\x24\xf6\x15\x23\x90\x07\x35\xc2\xfc\x42\xd7\x52\xde\
\xdc\xd9\xc2\xdf\x37\x59\x48\x3d\x07\xa5\x05\xc2\x37\x39\x1f\x19\
\x6b\x47\x51\xd4\x1e\x45\x23\xc9\x4c\xac\x63\xdb\xd6\xbe\x7d\xf8\
\x83\xe2\x26\xd4\xef\x3e\xcb\x6c\xc7\xec\x31\x93\xc8\xe9\x21\xf5\
\xfa\x57\xa1\xeb\x6c\x75\x44\x75\x9e\x53\x16\x9a\x33\xbf\x1c\x34\
\xbf\xe0\x3f\x9f\xb5\x79\x4f\x8a\xa4\x17\xda\xf0\xb5\xb0\x88\x85\
\x8f\x10\xc7\x1a\xae\x31\xf8\x55\xd3\x46\xf5\x3d\xd8\xd8\xc2\xb2\
\xb4\x97\x51\xbf\x86\xda\x2f\xbd\x21\xc6\x7d\x3d\xcd\x7a\x96\x8f\
\x61\x16\x91\x38\xb1\xb6\x62\x50\x44\x1e\x4c\xf3\xf3\x93\xd7\xf1\
\xc1\xfc\xaa\x8e\x81\xa3\x4d\xa4\xc4\xaa\x2c\xad\xda\xe4\x8c\xb4\
\xad\x37\xcd\xcf\x6f\xbb\xc0\xad\x07\x94\xd9\x3b\x5d\x6a\x32\x5b\
\xdb\x44\x79\x60\xad\xb8\xb1\xfa\xf1\xd0\x67\x03\xde\xae\x4f\x9b\
\x44\x2a\x70\xb2\xbb\x39\x9f\x8a\x17\x41\x60\xb3\xb5\x07\x96\x63\
\x23\x0f\xa0\xc0\xfe\x66\xbc\xe8\x56\xcf\x8b\x75\x51\xab\x6a\x92\
\x4e\x80\x88\xc7\xca\x80\xf6\x51\x58\xe0\x56\xd4\xe3\x6d\xce\x6a\
\xb2\xe6\x90\xea\x28\xa2\xb5\x31\x0c\x51\x5b\x9e\x19\xd1\x1b\x57\
\xba\x21\xcb\x2d\xba\x0f\x99\x80\xfd\x2b\xa1\xb9\xf0\x4d\xb1\x52\
\x61\xb8\x75\xf4\xdc\x33\x5a\xaa\x32\x96\xc0\x70\x55\xa9\xa4\x6b\
\x77\x5a\x73\x8f\x2d\xf7\x46\x3a\xc6\xdd\x2b\x4e\xe3\xc2\x17\xc0\
\x9f\x2a\x48\x5d\x47\x4c\x1c\x1a\xaf\xff\x00\x08\xae\xa1\x9e\x7c\
\x90\x7f\xdf\xa3\x92\x71\x60\x76\x5a\x4e\xad\x6f\xa9\xc2\x1a\x16\
\x0a\xe3\xef\x21\xea\x2b\x46\xb8\x48\x3c\x35\x7f\x6c\xeb\x24\x57\
\x10\xc6\xe0\xf0\x77\x57\x57\xa7\xcb\x31\x45\x4b\xc6\x88\x4a\x3b\
\xa3\x64\x35\x74\xc6\x57\xdc\x4d\x1f\x72\x74\x06\xb8\x6f\x1e\x35\
\x8d\xe6\x9e\x67\x81\x91\xae\xa1\x70\xa4\x8e\xb8\xcf\x4f\x71\x57\
\xfc\x57\xab\x30\x3f\x64\xb6\x6c\x7f\xcf\x47\x1f\xc8\x57\x1e\x22\
\x69\xb7\x44\x0e\x7c\xc1\xb5\x7f\xde\xed\xfa\xd7\x04\x16\xb7\x1c\
\x92\x39\xb9\x17\x39\xdc\x01\x1e\xf5\xcc\xeb\xbe\x1d\xb3\xbf\x8d\
\x8a\xa0\x86\x63\xce\xf4\x18\xfc\xc5\x75\xd2\x2e\xe0\x72\x30\x47\
\x63\x54\xe7\x8f\x9a\xec\x4e\xe8\xca\xc7\x89\x6a\xfa\x75\xe6\x9d\
\x3b\x47\x70\x87\xd9\x87\x42\x2b\x35\x2e\x25\x85\xb3\x1b\xba\x1f\
\x63\x8a\xf6\xdb\xcb\x48\x6e\xa3\x29\x71\x1a\xba\x9f\x51\x5c\x7e\
\xaf\xe0\xb8\x5c\x96\xb0\x90\xa3\x73\xf2\x38\xc8\x3f\x8d\x3b\x31\
\xad\x4f\x3c\x69\xa4\xf3\xfc\xf1\x23\x19\x49\xc8\x6c\xf3\x5d\x97\
\x86\xfc\x54\x24\x22\xd7\x54\x21\x5f\xa2\xcd\x9e\x0f\xb1\xff\x00\
\x1a\xe4\xb5\x1b\x09\xac\x6e\x1a\x1b\x84\x64\x71\xfa\xfd\x2a\x83\
\x67\xb7\x6f\x5a\x5a\xa6\x3e\x53\xdb\x78\xa0\xd7\x93\xe8\xfe\x25\
\xbf\xd3\x5d\x54\x93\x3d\xbf\x4f\x2d\x8f\x4f\xa1\xed\x5d\xbd\x9f\
\x8b\x74\xab\x88\x43\xb4\xc6\x26\xc7\x2a\xe3\xa5\x5a\x92\x63\x34\
\x3c\x49\xff\x00\x22\xfd\xe7\xfb\xbf\xd4\x57\x9f\x69\xf7\x3e\x59\
\x38\xe3\x23\x1c\x57\x45\xe2\x7f\x12\xd8\xcd\xa5\x3d\xbd\xa4\xbe\
\x74\x92\x1c\x7c\xa3\x80\x3d\xeb\x8f\xb5\x72\x30\x4d\x73\xd5\xd4\
\xd6\x07\xd7\xff\x00\x09\xbc\x4a\x75\x9d\x05\x2d\x6e\x5f\x75\xed\
\x9a\xaa\xb6\x4f\x2e\xbd\x9a\xbd\x01\x4e\xe5\x06\xbe\x65\xf8\x57\
\x75\x25\xbd\xd3\xdf\xda\xff\x00\xad\x8d\x50\x6d\xfe\xf0\x24\xe5\
\x4f\xd4\x0f\xe5\x5f\x47\xe9\xb7\xd1\x5e\xda\xc5\x71\x09\x26\x39\
\x06\x40\x3d\xbd\x8d\x79\x53\x56\x77\x46\x92\x8d\xb5\x2e\x83\x4b\
\x4d\xa8\xee\x65\x68\xa0\x69\x12\x37\x95\x87\xf0\x28\xe4\xd4\xa6\
\x41\x2f\x7a\x4e\xf5\xcd\x8f\x11\x5c\x34\xad\x18\xb1\x4d\xc3\xb1\
\x9b\x07\xf2\xdb\x53\xc3\xaf\xe5\xb6\xdc\xda\xc9\x10\xfe\xf2\x36\
\xf1\x4c\xd1\x42\x46\xf1\xa4\xa8\x6d\xee\x23\xb8\x8c\x3c\x4c\x19\
\x4d\x4b\x48\x4f\x41\x68\xa2\x83\x4c\x03\xea\x69\x8d\x48\xc7\xd2\
\xab\xde\x5d\x45\x69\x03\x4b\x3c\x81\x11\x7b\x9e\xf4\xba\x85\x8a\
\x5e\x22\xd5\x23\xd2\x6c\x1a\x79\x30\x5c\xf0\x8a\x7f\x88\xd7\x89\
\xeb\x37\xcd\x3c\xb3\x4b\x3b\x16\xc9\xc9\x2d\xeb\x5a\xfe\x29\xd7\
\x24\xd5\x6f\x5a\x47\x24\x44\x38\x45\xf4\x1f\xe3\x5e\x25\xe3\xff\
\x00\x14\x8b\x82\xda\x7d\x83\x9f\x2d\x4f\xef\x64\x07\xef\x7b\x0f\
\x6a\x76\xe6\x76\x3a\x62\xb9\x15\xd9\xd4\x5b\x5c\xa6\xa7\x27\xda\
\x62\x70\xd6\xe8\xc5\x62\x00\x70\x48\xea\xc7\xfa\x57\x03\x6f\xa9\
\xe9\xfa\x5e\xa5\xa8\x6a\x57\x3f\xbf\xbc\x69\x9d\x60\x88\x75\x03\
\x38\x24\x9e\xc6\xb9\x66\xd5\x6e\xed\xed\xda\x1b\x7b\x99\xa3\x46\
\x3c\xaa\x39\x00\xd6\x5f\x27\x93\xd7\xd6\xba\x23\x4c\xca\x55\xb9\
\x8e\x8f\x50\xf1\xa6\xaf\x75\x23\x08\xe4\x58\x13\xd1\x07\x4f\x6c\
\xd6\x15\xd5\xf5\xd5\xe3\xe6\xee\x69\x25\x7e\xc5\xce\x71\x51\x62\
\x8e\x82\xb5\x8c\x54\x4c\x1c\xe4\xfa\x91\xe2\x8c\x52\x9a\x4a\xa3\
\x20\x3e\xd5\x6b\x4c\xb1\x97\x50\xbc\x8e\x0b\x75\xcb\x31\xe7\xd8\
\x53\x2c\x6d\x26\xbd\xb9\x48\x2d\xd0\xbc\x8c\x70\x00\x15\xe9\xfe\
\x1f\xd1\xa1\xd2\x6d\x80\x00\x34\xcc\x3e\x77\xfe\x95\xb5\x2a\x7c\
\xc1\x72\xc6\x93\x63\x0e\x99\x68\xb0\xc2\x06\x71\xf3\x37\xa9\xab\
\x2d\x93\xc7\x6a\x79\x5a\x4e\x95\xda\x95\x89\x22\x07\xde\xaa\xdd\
\x69\xb6\xb7\x7c\xcd\x10\x26\xae\x30\xe7\x34\xce\x87\xad\x36\xae\
\x09\x98\x57\x1e\x1a\xd3\xe4\xe1\x51\xd3\xe8\xd5\x99\x3f\x83\xd3\
\x39\xb6\xbb\x65\xff\x00\x7d\x73\x5d\x6b\x1c\x9a\x63\x01\xde\xa3\
\x95\x14\x7d\x53\xa0\x68\xc2\xf3\xfd\x2a\xf4\x6e\x8f\x3f\x22\x1f\
\xe2\xf7\x3f\xd3\xf3\xae\x83\xfb\x22\xc7\x20\xfd\x96\x2c\x8f\x6a\
\xbe\x88\xb1\xa0\x48\xc0\x00\x70\x3d\x85\x20\x1c\xd7\x92\x98\xec\
\x62\x6a\xfe\x16\xd3\xf5\x2c\xbb\x46\x62\x9c\x8f\xf5\x91\xf5\x3f\
\x5f\x5a\xf3\xdf\x12\x78\x7a\xe7\x45\x64\x32\x91\x35\xbc\x87\x6a\
\xca\x06\x08\x3e\x84\x76\xaf\x61\x07\x15\x9a\x96\xf1\xde\xcb\x73\
\xf6\x94\x12\x44\x48\x40\x8c\x32\x30\x3a\xff\x00\x9f\xa5\x5c\x6a\
\x4a\x2c\x1a\x3c\x42\x4b\x52\x3b\x55\x39\x61\xc6\x71\x5d\xef\x89\
\xfc\x3a\xd1\xea\xbe\x5e\x91\x6b\x34\x91\xf9\x61\x99\x17\x90\xa7\
\x27\xd7\xe9\x59\xbf\xf0\x89\xeb\x32\x0f\xf8\xf0\x61\xfe\xf3\x28\
\xfe\xb5\xd7\x1a\xd1\x6b\x56\x45\x8f\x3b\xd6\xb4\x7b\x6d\x4e\xdf\
\xcb\xb8\x4f\x98\x7d\xd7\x1d\x56\xbc\xab\xc4\x1a\x3c\xfa\x55\xc6\
\xc9\x57\x31\x93\xf2\x38\x1c\x1a\xfa\x1f\x50\xf0\xbe\xb1\x6e\x8f\
\x23\xe9\xf2\x95\x51\xc9\x52\xa7\xf9\x1a\xe3\x35\x0b\x5b\x5d\x4e\
\x09\x6d\xa5\x50\xd8\xe0\xa9\xe0\xa9\xad\x13\x8c\x86\x9d\x8f\x11\
\x75\x27\x95\xed\x50\x48\xb9\xe5\x78\x61\xd7\xde\xb7\xf5\xfd\x1a\
\x7d\x26\xe4\xc7\x20\x25\x0f\xdd\x7e\xc4\x56\x3e\xcd\xde\xc6\xb1\
\x65\x34\x47\x03\x0c\xfb\xd6\x8d\xb8\x27\xad\x54\x58\x86\x46\x47\
\x35\xa5\x67\x11\xdd\x8c\x54\x49\x95\x13\xe8\xcf\xd9\xd7\x4e\xb7\
\x9f\xc3\xba\x94\xb7\x30\xab\x93\x32\xc6\x0b\x0c\xf0\x06\x71\xfa\
\xd7\xa7\x5a\x5a\x1d\x16\xed\xbc\xaf\x9a\xc6\x76\xe4\x7f\xcf\x26\
\xf5\x1e\xc6\xb8\xcf\x80\x10\x79\x7e\x0b\x91\xbf\xe7\xa5\xcb\x1f\
\xc8\x0a\xf4\xe9\x62\x12\x46\x55\xc6\x54\x8c\x11\xeb\x5c\x12\xdc\
\xd5\xea\x89\x14\xe4\xfa\x8a\x5e\x87\x1d\xc5\x50\xb1\x91\xa1\x73\
\x6d\x29\xe4\x72\x8d\xea\x2a\xf8\xe9\x59\x35\x66\x42\x2b\x5c\x59\
\x41\x3f\x33\x44\xac\x47\x42\x47\x35\x42\x7d\x21\x48\xfd\xd3\x9f\
\xa3\xff\x00\x8d\x6b\x64\xfe\x14\x71\x45\xec\x5a\x9b\x47\x27\x2f\
\xda\x74\xb9\xcc\xb1\xab\x28\xfe\x20\x47\xc8\xe3\xeb\xdb\xeb\x5d\
\x06\x99\x7d\x1d\xf5\xaa\x4d\x0f\x2a\x7a\x8f\x43\xe9\x56\xc9\xa8\
\xa3\x0b\x1f\xdd\x00\x7d\x28\x1b\x97\x36\xac\x9e\x83\x50\x4b\x3a\
\x44\x9b\x9d\x95\x47\xab\x1c\x57\x29\xae\xf8\xca\xd6\xd0\x32\x5a\
\x1f\x3e\x6e\x84\xff\x00\x08\xa6\x35\x16\xd9\xd2\x5f\x5f\x5b\xd9\
\xc0\xd2\xcf\x22\xa2\x0e\xe7\xbf\xb5\x79\x6f\x8b\xbc\x4c\xda\xa4\
\xc5\x21\x25\x2d\x90\xfc\xab\x9f\xbc\x7d\x4d\x72\x9e\x2e\xf1\xa8\
\x21\xe7\xbc\x92\x49\x82\x70\x12\x21\xc0\xf6\xf6\xaf\x1e\xf1\x47\
\x8c\xee\xf5\x10\xd1\xc7\xfe\x8f\x6c\x7f\x81\x4f\xcc\xdf\x53\x4e\
\x31\xe6\x35\x51\x8d\x3d\x5e\xe6\xdf\x8e\xfc\x62\xae\xb2\x58\xe9\
\x92\x60\x74\x96\x60\x7a\xfb\x0f\xf1\xaf\x2f\x9a\x62\xe4\xf3\xc5\
\x13\x4c\x5c\xfb\x55\x73\x5d\x74\xe1\xca\x8c\x2a\x56\x6d\x8c\x90\
\xe4\xe2\x9b\x41\xeb\x49\x5a\x58\xc1\xbb\x8b\x45\x03\x9e\x95\xa1\
\x65\xa3\xdf\x5e\xb0\x16\xf0\x39\x5e\xec\x46\x00\xa7\xca\xde\xc8\
\x46\x75\x5b\xd3\xac\x6e\x2f\xee\x04\x36\xb1\x97\x63\xfa\x57\x53\
\xa7\x78\x22\x46\xc3\x5f\x4c\x10\x7f\x75\x39\x3f\x9d\x76\x1a\x7e\
\x9f\x6f\x61\x08\x8a\xd6\x30\x83\x1c\x9e\xe6\xb6\x85\x06\xf5\x60\
\x52\xf0\xfe\x8b\x0e\x95\x00\x00\x06\x9d\xbe\xfb\xff\x00\x41\x5a\
\x8e\x70\x70\x29\xcc\x71\xc0\xa6\x11\x5d\x71\x8a\x48\x9d\x44\xa4\
\x34\xb4\x86\xac\x91\x8d\x51\xb5\x48\xd5\x1b\x52\x65\x21\xb4\xda\
\x75\x32\x90\xcf\xb6\xa8\xa2\x8a\xf0\xc0\xaf\x76\xc5\x3c\x90\x0f\
\xde\x90\x03\x50\x58\x4c\xa1\x6e\x8b\x74\x49\x5b\x3f\x85\x4b\x31\
\xdd\x7f\x0a\x0e\x70\xac\xe7\xf4\x03\xf9\x9a\xc2\xd3\x21\xb9\x97\
\x51\xbc\x52\x7f\xd1\x04\xc4\xb1\x3f\xc4\x41\xe0\x0a\xa2\x8d\xeb\
\x08\xf2\xad\x3b\x8c\x34\xa7\x77\xe1\xd8\x55\x83\x4a\xbc\x01\x81\
\x8a\x28\x11\xc8\x7c\x46\x2d\xfd\x89\x14\x68\xc4\x07\x9d\x41\xc7\
\x71\x82\x7f\xa5\x78\xa7\x89\xe7\x83\x4b\xb9\x82\xe6\x54\x63\xbd\
\x1d\x7e\x51\xcb\x10\x54\x80\x7f\x3a\xf6\xef\x88\x56\xd2\xdd\xd8\
\xda\x5b\xc0\x58\x48\xd3\xe4\x6d\x1e\x80\xd7\x0f\xad\x7c\x3a\xbf\
\xd5\xf4\xf5\x49\xa7\xb6\xf3\x07\xcc\xa4\x82\x0a\xff\x00\x3a\xb8\
\xd5\xb6\xe5\x46\x37\x47\x83\x78\x83\x5b\xb8\xd5\x10\xc5\xe5\xa4\
\x71\x7d\x32\xdf\x9d\x73\x62\xd3\x07\x9c\x8a\xf6\xb6\xf8\x37\xe2\
\x16\xcf\x36\x6d\xff\x00\x6d\x4f\x3f\xa5\x59\xb1\xf8\x27\xaa\x3b\
\x2f\xdb\x2f\x6d\x2d\xd7\xfd\x90\x5c\xff\x00\x4a\xd1\xd7\x45\x72\
\x1e\x23\x15\xa1\xc8\xc0\xc9\xad\x8d\x36\xc5\xe5\x9c\x47\x14\x4e\
\xf2\x1e\x80\x0c\xd7\xd0\xda\x3f\xc1\x9d\x0e\xd0\x03\x7b\x3d\xc5\
\xe3\x77\x03\x11\xaf\xe4\x3f\xc6\xbb\xad\x13\xc3\x5a\x46\x8c\x3f\
\xe2\x59\x65\x0c\x2d\x8c\x79\x81\x72\xc7\xf1\xeb\x58\x4e\xba\x96\
\x85\x24\x62\xfc\x24\xd3\xe4\xd3\xbc\x1b\x6b\x04\xf1\x34\x53\x6f\
\x72\xe8\xc3\x90\x73\x8f\xe9\x5d\xbd\x66\xe8\x9f\x36\x9e\x8f\xfd\
\xf2\x5f\xf3\x39\xad\x11\x5c\xd3\x77\x1d\xc8\x6e\x2d\xd6\x65\xf4\
\x61\xd1\x87\x51\x4c\xb6\x9c\xb1\x68\xa4\xe2\x64\x1f\x30\x1d\xfd\
\xc7\xb1\xab\x55\x5a\xf2\xdc\x5c\x20\xe7\x6c\x8b\xca\xb8\x1c\x8a\
\x57\xba\xd4\x2d\x72\x63\x45\x72\x1a\xb6\xbf\xaa\xe9\xcf\xe4\xbd\
\xb5\xb1\x61\xf7\x64\xcb\x60\xfb\xe3\xff\x00\xaf\x5c\xbd\xf7\x88\
\x35\x99\x81\xf3\x75\x01\x18\xf4\x81\x02\xff\x00\x3c\x9f\xd6\x96\
\x83\x50\x6c\xf4\xfb\xab\x98\xad\xe2\x69\x27\x95\x23\x45\xea\xce\
\xc0\x0a\xe2\x75\xbf\x88\x56\x90\x6e\x4d\x32\x19\xaf\x5c\x71\xbd\
\x13\x0b\xfa\xe2\xb8\x2b\xc9\x0c\xb2\x87\x98\xbc\xed\x9f\xbd\x2b\
\x16\xfe\x7d\x2a\xa4\xf3\xe0\x60\x71\x41\xd3\x0a\x08\xb5\xac\x78\
\x8f\x5c\xd5\x9f\x33\x3c\x56\xd1\x1e\x8a\x7e\x62\x3f\x01\xc7\xeb\
\x58\xb3\xc4\x24\xff\x00\x5f\x34\xb3\x7b\x33\x60\x1f\xc0\x52\xc9\
\x36\x4f\x5a\xe4\xbc\x79\xe2\x1f\xec\x8d\x37\xcb\x89\xbf\xd2\xe7\
\xe1\x30\x7e\xe8\x1d\x4f\xeb\x54\xb5\x76\x35\x69\x41\x5c\xe6\x7c\
\x7f\xe2\x01\x73\x76\x2c\xad\x70\xb6\xf6\xff\x00\x2e\x17\x80\x5b\
\xbf\xe5\x5c\x2c\xae\x5d\xb2\xc7\x9a\x47\x72\xec\x49\x24\x93\xc9\
\x3e\xb5\x1e\x6b\xb6\x11\xb2\x3c\xfa\x95\x1c\x9d\xd8\xe6\x3d\xaa\
\x26\x6e\xc2\x86\x6e\xc2\x9b\x82\x7a\x55\x99\x37\x70\xae\xa3\xc3\
\x1e\x17\x6d\x44\x2d\xc5\xe6\x63\xb5\xec\x3b\xbf\xd3\xda\xae\x78\
\x5f\xc2\x2d\x23\x2d\xd6\xa6\x08\x4e\xab\x11\xef\xf5\xae\xf1\x11\
\x55\x42\x00\x15\x57\x80\x07\x6a\xe9\xa5\x4b\x5b\xb2\x5b\x28\x5a\
\x68\x9a\x75\x98\x1e\x4d\xac\x59\x1d\xc8\xcd\x68\x75\x3c\x74\xa0\
\xe3\x3d\x73\x4a\x6b\xa7\x41\x0d\x34\xc3\x4f\x35\x19\xaa\x28\x0d\
\x34\xd3\x8d\x34\xd0\x21\x87\xad\x34\xd3\x9b\xad\x34\xd0\x21\xa7\
\xad\x32\x9e\x6a\x3a\x18\x21\xb5\x1d\x49\x51\xd2\x19\xf6\xe5\x14\
\x51\x9a\xf0\xc0\xab\x6f\x97\xbc\xb8\x7e\xa0\x6d\x8c\x7e\x59\x3f\
\xce\xa4\xb4\x4f\x2d\x1c\x10\x06\x5c\x9f\xd6\xa3\xd3\x89\x36\xfb\
\xff\x00\xe7\xa1\x2f\xf9\xd4\x91\x12\xcc\xe0\xf6\x6c\x53\x19\x3e\
\x69\x33\xe9\x45\x56\xd4\x6e\x96\xd2\xce\x49\x0f\x50\x30\x3e\xb4\
\x30\x2a\xc8\x4c\xfa\x96\xe1\xca\x40\x30\x3f\xde\x3d\x7f\x4f\xe7\
\x56\x80\xa8\x6d\x62\xf2\x60\x08\x79\x73\xf3\x39\xf5\x63\xd6\xa7\
\x15\x94\xde\xa6\xd1\x56\x43\x48\xa0\xaf\xb5\x49\x8a\x31\x59\xea\
\x32\x30\x30\x6a\x2b\xd9\x3c\xab\x39\xa5\xec\x8a\x58\xfe\x55\x60\
\x72\x6a\x9e\xa6\x8d\x2d\xb8\x8d\x54\xb0\x91\x82\xb7\xb0\xcf\x26\
\x80\x24\xd3\xa2\xf2\x6c\xa1\x8f\x18\xda\x80\x55\x91\xf7\x8d\x01\
\x76\xd2\xb0\xa1\x88\x6d\x2d\x25\x2d\x21\x99\xda\xc6\x99\x1e\xa1\
\x6c\xc8\xf8\x0c\x07\x0d\xe9\x5e\x5f\xad\xe9\x73\xe9\xf3\x14\x99\
\x78\xec\xdd\x8d\x7b\x01\xe9\xcd\x57\xb8\x82\x29\xa3\x31\xcc\x8a\
\xe8\x7a\x86\x19\xa0\xd2\x32\x68\xf0\x59\x9b\x20\xd6\x65\xc1\xeb\
\x5e\xa1\xe2\xdf\x08\xc6\x90\x3d\xe5\x86\x54\x2e\x59\xe3\xeb\xc7\
\xb5\x79\x95\xc2\x11\x9c\xd3\x3b\x29\xc9\x35\xa1\x9b\x3c\x8b\x14\
\x6c\xf2\x36\x11\x46\xe2\x6b\xc3\xfc\x4b\xa9\xbe\xaf\xaa\x4d\x72\
\xc4\xec\xce\xd8\xc7\xa2\x8e\x95\xe8\xdf\x12\x35\x09\x2d\x74\x7f\
\xb3\xc0\xa4\x9b\x8c\x87\x61\xfc\x2a\x3a\xff\x00\x30\x2b\xc9\x0f\
\x4a\xe9\xa1\x14\xf5\x67\x36\x26\x4d\xfb\xa3\x4f\x4e\xb4\xdc\xe2\
\x82\x32\x69\x08\x35\xd0\x71\x49\xdc\x0d\x75\x1e\x0e\x3a\x3c\x32\
\x09\xb5\x09\xbf\xd2\x01\xf9\x15\x87\xca\x3d\xf3\x5c\xbd\x15\x51\
\x76\x77\x11\xed\x96\xb7\x76\xf7\x39\x36\xd3\x47\x20\x03\xf8\x4e\
\x6a\x53\xd6\xbc\x41\x64\x74\x20\xab\x10\x47\x70\x6b\x56\xd7\xc4\
\x5a\x9d\xb8\x0a\x97\x52\x15\x1d\x03\x1c\xd7\x42\xac\x85\x63\xd6\
\xa8\x35\xe7\x36\xbe\x35\xbe\x8d\x87\xda\x63\x8e\x64\xfa\x60\xd7\
\x51\xa5\xf8\x9e\xc3\x50\x50\x0b\xf9\x32\x9f\xe0\x7f\xf1\xad\x63\
\x34\xc6\x6e\x62\x90\x8a\x50\x7b\xd2\x31\xad\x53\x25\x0d\x34\xd3\
\x4e\x34\xd3\x40\xc6\x37\x5a\x69\xa7\x37\x5a\x69\xa0\x06\x9a\x8e\
\xa4\x35\x1d\x0c\x48\x6d\x47\x52\x54\x74\x86\x7d\xb9\x54\xa4\x66\
\x9a\xce\x4d\x87\x97\x62\x80\x8f\x4c\xe2\xad\xca\xe2\x38\xdd\xdb\
\xa2\xa9\x63\xf8\x56\x7e\x90\x5b\xca\x86\x33\xfc\x10\xab\x37\xfb\
\xcd\x93\xfe\x7e\xb5\xe1\x8c\xd0\x45\x0a\xaa\x07\x6e\x2a\x3b\x6f\
\xbd\x37\xb3\xff\x00\x41\x53\x62\xab\x5b\x7f\xae\xba\x1e\x92\x0f\
\xfd\x04\x53\x02\xcf\xad\x67\x6a\x68\xb3\x4d\x6b\x14\x8a\x1a\x33\
\xbd\x88\x3d\xf0\x3f\xfa\xf5\xa2\x7a\x55\x2b\xee\x2e\x6d\x0f\xbb\
\x0f\xcc\x50\xc6\x8a\x90\xbb\x59\x48\xb6\xd3\x31\x36\xec\x71\x1c\
\x87\xb1\xfe\xe9\xf7\xfe\x75\x7f\x34\x93\x44\x93\x44\xd1\xc8\xa0\
\xa9\x18\x20\xf7\xaa\x50\x4a\xf6\xb2\x0b\x6b\x82\x59\x4f\xfa\xa9\
\x0f\xf1\x7b\x1f\x7f\xe7\x58\x3d\x4d\x11\xa0\x29\x73\x48\x38\xe2\
\x8a\x43\x0a\x5a\x4a\x28\x01\xd4\x51\x45\x21\x85\x14\x51\x40\x0d\
\x63\xd6\xa3\xa7\x3f\x5a\x64\x8c\x11\x19\x9b\xa0\x19\x34\x81\x1c\
\xd7\x8e\xb5\x01\x69\xa4\x34\x4a\xdf\xbd\x9b\xe5\x03\xdb\xbd\x78\
\xf5\xd8\xe4\xf1\xd6\xbb\x7d\x7e\x59\x35\x6d\x42\x4f\x28\x17\xc9\
\xda\x8a\x3d\x2b\x1f\x58\xf0\xf5\xee\x9b\x6d\x1c\xf7\x29\xf2\x3e\
\x7a\x7f\x09\xf7\xa6\xce\xea\x49\x45\x1e\x6d\x71\x68\x9a\x8d\xc6\
\xa0\x93\xa0\x68\xc8\x10\x74\xf4\xe4\xe3\xf1\x3f\xa5\x78\xde\xb5\
\xa6\xcb\xa4\xdf\xcb\x69\x3e\x77\x21\xe1\xb1\xc3\x0e\xc4\x57\xbc\
\xd8\xc0\x56\xcf\x7b\x67\x7c\x8e\xce\xd9\xf7\x35\xcb\x78\xfb\x43\
\x3a\xa6\x9f\xe7\xc1\x1e\x6e\xa0\x04\x8c\x7f\x12\xfa\x56\x94\xa7\
\x66\x4d\x5a\x77\x57\x3c\x7f\x18\xa4\x3d\x29\x69\x0d\x76\x9e\x6b\
\x23\x23\xd2\x93\x38\xa5\x23\xd6\x8e\x94\xc4\x20\x20\xd1\x9a\x5d\
\xa0\xf7\xc1\xa4\xe4\x75\xa0\x0d\x2d\x0a\x0b\x3b\x8b\xd5\x8a\xfe\
\x47\x8a\x36\xe0\x32\x90\x39\xf7\xae\xd3\xfe\x10\x9d\x3c\xf3\xe7\
\x4e\x47\xd4\x7f\x85\x79\xd8\xf5\xae\xbf\xc2\xbe\x27\xfb\x3a\xad\
\xa5\xf9\x2d\x17\x44\x93\xba\xfb\x1f\x6a\xda\x9b\x4b\x70\x3a\x4b\
\x3f\x0e\x5a\xda\x63\x12\x5c\xc8\xa3\xa2\xb4\xa4\x0f\xc8\x56\x84\
\x76\x70\xa3\x06\x58\xf1\xf8\x93\x56\x22\x75\x91\x03\x21\x0c\xa4\
\x64\x11\xde\x97\x35\xd2\x80\x4a\x69\xa5\xef\x48\x6b\x41\x0c\x6e\
\xb4\xd3\x4e\x34\xc3\x40\x0d\x3d\x69\x8d\x4e\x34\xc6\x3c\x52\x62\
\x23\x63\xd6\x99\x9a\x73\xf5\xa6\xd0\x33\xed\x1d\x68\x9f\xec\xcb\
\x80\xbd\x59\x0a\x8f\xc7\x8f\xeb\x4b\xa6\xe0\x8b\x89\x07\x43\x21\
\x51\xf4\x5e\x29\x9a\xbb\x85\x8e\xdc\x1e\x86\x50\x4f\xd0\x72\x7f\
\x95\x3b\x48\x52\xba\x6c\x1b\xba\xb2\x86\x3f\x53\xcf\xf5\xaf\x10\
\x65\xde\x8b\x55\x6d\xce\x2f\x6e\xd7\xb8\x0a\xdf\x98\xff\x00\xeb\
\x55\xa6\xcd\x54\x80\x63\x53\xb9\xf7\x8d\x0f\xea\xd4\x01\x6d\x7a\
\x0a\xa7\xa9\x8c\x24\x0f\xfd\xd9\x57\xf5\xe3\xfa\xd5\xc1\x55\x75\
\x44\x69\x2c\x27\xdb\xc1\x0a\x58\x7d\x47\x34\x02\x1c\x3a\x83\x51\
\xdd\x40\x97\x31\x94\x90\x64\x7f\x2a\x74\x0e\x25\x81\x24\x1d\x18\
\x03\x4e\xac\x25\xa3\x37\xb5\xd1\x9f\x65\x3c\x91\xcb\xf6\x7b\xa3\
\xf3\xff\x00\x04\x9d\xa4\x1f\xe3\x57\xc1\xa6\xb2\x86\xe0\x8c\xd4\
\x37\x77\x71\xda\xec\x12\x82\xb1\xb7\x1e\x67\x65\x3d\xb3\x48\x4a\
\xe5\xa1\x45\x22\x90\x54\x10\x72\x0f\x34\xb5\x23\x1d\x45\x14\x53\
\x00\xa2\x8a\x28\x01\xa4\x56\x2f\x88\x25\x95\xd5\x6c\xad\x46\xe9\
\xa6\xe0\x91\xfc\x22\xb6\x9b\xa7\x15\x5a\xd6\xd8\x42\xcf\x24\x87\
\x74\xcf\xd5\xbf\xcf\x6a\x40\x99\x43\x48\xd1\x61\xd3\xa2\xc8\x01\
\xa7\x61\xf3\x31\xed\xec\x2a\x7d\x4e\xc6\x3b\xfb\x29\x6d\xe6\x03\
\x6b\x0e\x0f\xa1\xf5\xad\x0e\xa6\x9a\xcb\x9f\xa5\x32\x93\x3c\x23\
\x59\xd2\x9f\x4f\xba\x92\xda\x64\xc1\x53\x8e\x9d\xab\x0e\x78\x0a\
\x93\x5e\xf1\xe2\x5d\x0a\x1d\x5e\xdb\xa0\x59\xd0\x7c\x8d\xfd\x0d\
\x79\x3e\xb1\xa4\xcf\x63\x3b\x45\x70\x85\x5b\xd7\x1d\x69\xdc\xed\
\xa7\x51\x49\x59\x9e\x0d\xf1\x07\xc3\xad\x65\x72\x6f\xed\x90\x7d\
\x9a\x53\xf3\x85\x1f\x71\xbf\xc0\xd7\x10\x56\xbe\x8d\xd4\x6c\x63\
\xb8\x86\x48\xae\x14\x3c\x4c\x30\x41\xaf\x20\xf1\x77\x85\x26\xd2\
\x59\xae\x2d\x97\xcc\xb3\x3e\x9d\x53\xd8\xff\x00\x8d\x74\xd3\xa9\
\x75\x66\x72\xd7\xa1\x67\xcd\x13\x8d\x65\x34\xdd\xa7\xd2\xad\x6d\
\xa9\x62\xb4\x92\x67\x55\x8d\x19\xcb\x76\x51\x9a\xdb\x53\x96\xc5\
\x0d\xb5\x24\x30\x3c\xcd\xb6\x35\x66\x3f\xec\x8c\xd7\x4d\x17\x83\
\x75\x87\xb6\xf3\x5a\xd8\x21\x39\x21\x19\x86\xe6\xfa\x0a\xea\xbc\
\x0b\x71\x04\xba\x7f\xd9\xd5\x16\x3b\x88\xbe\xf0\x03\xef\x0f\x5a\
\xd6\x0b\x99\x83\x47\x97\xdd\x5a\x4b\x6a\xc1\x67\x8d\xe2\x73\xce\
\x1d\x71\x9a\xac\x78\xaf\x72\xbf\xb1\x86\xf1\x0c\x57\x50\xa4\xb1\
\xfa\x30\xe9\xf4\xf4\xae\x47\x55\xf0\x34\x32\x65\xf4\xf9\x4c\x6d\
\xfd\xc7\xe4\x7e\x75\xb3\xa2\xfa\x12\x72\xba\x27\x88\xef\x74\xc0\
\x11\x1b\xcd\x87\xfb\x8e\x7a\x7d\x3d\x2b\xaa\xb2\xf1\xad\x94\xb8\
\x17\x31\x49\x09\xee\x7e\xf0\xae\x3f\x52\xd0\xef\xf4\xf6\x3e\x7c\
\x0d\xb4\x7f\x10\x19\x15\x9b\x53\x17\x28\xee\x07\xaf\x59\xea\xd6\
\x57\xb8\xfb\x35\xc2\x39\x3d\xb3\x83\x57\x1d\xb0\x39\xaf\x14\x24\
\xa9\xf4\xad\x2b\x2d\x6a\xfe\xd0\x0f\x26\xe5\xf6\x8f\xe1\x27\x23\
\xf2\x35\xa2\xaf\xdd\x01\xea\xb9\x38\xeb\x9a\x6b\x1a\xe1\xec\xfc\
\x65\x32\xe0\x5d\x42\xb2\x0f\x55\xf9\x4d\x6e\xd9\xf8\x9b\x4e\xb9\
\x1f\x34\x86\x26\xff\x00\x6c\x56\x91\xab\x16\x0e\x26\xc3\x1e\x2a\
\x19\x1b\x6a\xb3\x01\x93\xe9\xeb\x54\x24\xd7\xb4\xd4\xcf\xfa\x40\
\x3f\x41\x54\x2e\x3c\x57\xa7\xa0\x21\x44\xaf\xf4\x5a\x1d\x44\x85\
\x63\x4b\x4f\xd4\x20\xbf\x87\x7c\x5f\x2e\x38\x65\x6e\x0a\x9a\xe6\
\x3c\x49\xe2\x0c\x96\xb6\xb1\x7c\x28\xe1\xe5\x1d\xfd\x87\xf8\xd7\
\x3a\x2f\x1e\x39\xe5\x68\x18\xa8\x94\x90\x7e\x99\xaa\xf8\xc7\x15\
\x84\xeb\x36\xac\x80\xfd\x20\xd6\xd4\xcb\x25\xb4\x23\xa3\x87\xfd\
\x70\xbf\xfb\x31\xad\x7e\x00\xc0\x18\x02\xa8\xdd\xc5\xba\xfa\xc8\
\xf7\x1b\xbf\x41\x9f\xf0\xab\xe7\xad\x79\xc3\x13\x26\x9a\x11\x44\
\xa6\x40\x3e\x72\x02\x93\xec\x29\xf4\x50\x02\x64\xd0\x79\x18\x3c\
\x83\x4b\x45\x00\x67\x69\xa4\xad\x92\x44\x79\x68\xc7\x96\x7f\x0a\
\xb4\x7a\x7d\x6a\xb5\xbf\xc9\x73\x70\x87\xfb\xc1\xff\x00\x31\xff\
\x00\xd6\x35\x62\xb0\x9e\xe6\xf1\xd8\x08\xa6\xba\x86\x52\xae\x01\
\x53\xd4\x1a\x73\x1a\x07\x22\xa4\x66\x75\xbb\x8b\x2b\x94\xb6\x62\
\x7c\x99\x7f\xd4\x93\xfc\x24\x75\x5f\xf0\xfc\x6b\x4a\xb2\xbc\x41\
\x6b\x25\xd6\x9c\xc2\x1f\xf5\xd1\x91\x22\x7d\x45\x55\xf0\xde\xa8\
\xd7\x91\x98\xa5\x39\x75\x1c\x1e\xe4\x50\x16\x3a\x0a\x33\x4c\xcd\
\x2e\x68\x10\xec\xd1\x4d\xc8\xa7\x11\x40\x09\x9e\x6a\xbd\xfd\xd4\
\x56\x70\x34\xb2\x9c\x28\xfd\x6a\x49\xa4\x58\xa3\x67\x72\x02\xa8\
\xc9\x26\xbc\xf7\x5e\xd5\xa4\xd4\xa7\x21\x49\x10\xa9\xc2\xaf\xaf\
\xbd\x05\x46\x37\x3a\xfd\x0a\x79\x2e\xd2\x6b\xa7\x27\x12\x36\x14\
\x7a\x01\x5a\xfd\xb1\x54\xb4\xc8\x3e\xcd\x63\x0c\x58\xc1\x03\x9a\
\xb9\x48\x18\x30\xe2\xb3\x75\x5d\x32\xdb\x53\x84\xc5\x73\x18\x3e\
\x8d\x8e\x45\x69\x77\xa6\xbf\x5e\x28\x04\xda\xd8\xf1\x5f\x11\xe8\
\x17\x1a\x65\xc1\x47\x5d\xd1\x9f\xbb\x20\x1c\x1f\xf0\x35\xcd\xcd\
\x6c\xae\x19\x1d\x03\x23\x70\x41\x19\x06\xbe\x83\xd4\x2c\x22\xbd\
\xb6\x68\x67\x50\xc8\xc3\xf2\xaf\x27\xd6\x34\x5f\xb0\x5f\x3d\xb3\
\x7c\xc1\x79\xdd\xea\x29\xa3\xaa\x15\x2e\xac\xcf\x29\xb8\xf0\x2e\
\x9e\x2f\x8d\xd4\x56\xc6\x48\x8f\x2d\x00\x6c\x0f\xaa\xff\x00\x85\
\x75\xfe\x0c\xf0\xe5\xa5\xfe\xa2\xb6\x5a\x2d\xb2\xdb\xcb\x80\x65\
\x73\x1e\x3c\xb5\xf5\x6f\xd7\xeb\x5d\x5e\x87\xe1\xdb\x9d\x5a\x52\
\xb6\x83\x64\x4a\x70\xf2\xb0\xe1\x7d\xbd\xcf\xb7\xe7\x5e\xad\xa1\
\x68\x96\xba\x35\xa1\x86\xd0\x1c\x9e\x5d\xd8\x7c\xce\x7d\x4d\x75\
\x42\x72\x4b\x53\x96\xb3\x8d\xfd\xd3\x0e\xe7\xc1\x7a\x6d\xa6\x83\
\x75\x6b\x65\x6a\x86\x66\x8f\x1e\x73\x28\x2e\xc4\x7a\x9e\xb5\xf2\
\x27\x8a\xb4\xfb\x8f\x0c\xf8\x91\xae\x6d\xd4\xac\x72\xb1\x74\x1d\
\xbd\xc5\x7d\xd7\xd7\xad\x78\x37\xc5\x2f\x08\xa5\xdd\xcd\xcd\xac\
\xcb\xb5\x5c\xf9\xb0\xc9\x8f\xba\x4d\x6d\x4e\x76\x67\x3d\xee\x79\
\xc6\x9f\x77\x0e\xa5\x66\x97\x10\x1e\xa3\x91\xe8\x7d\x2a\x56\x43\
\xe9\x5c\xb5\x94\x77\xbe\x19\xd5\x25\x86\x48\x19\xd4\xfd\xe4\x1d\
\x18\x76\x20\xd7\x5d\x6f\x7b\x6b\x71\x00\x90\xb7\x95\x9f\xe1\x90\
\x60\x8a\xee\x8c\xd7\x56\x29\x2b\x95\x5e\x30\xc3\x0c\x01\x1e\xf5\
\x85\x7f\xe1\xad\x3a\xf0\xb3\x35\xb8\x8d\xcf\x78\xf8\xae\xac\x45\
\x1c\xc3\x31\x3a\xb0\xf5\x07\x35\x1b\xdb\x30\xad\x34\x64\xab\xa3\
\xce\x6e\xfc\x0c\x09\x26\xd6\xeb\x8f\x47\x5c\xd6\x45\xcf\x83\xf5\
\x18\xf3\xb0\x44\xe3\xd9\xb1\x5e\xb0\xf6\xec\x3d\xea\x07\x84\xfa\
\x62\xa5\xd2\x4c\x69\xb3\xc8\x9f\xc2\xfa\xaa\xff\x00\xcb\xbf\xfe\
\x3c\x28\x5f\x0c\xea\x87\xfe\x58\x0f\xc5\x85\x7a\xb4\x91\x7b\x1a\
\xae\xe8\x47\x6a\x9f\x60\x87\x73\xcc\x5b\xc3\x3a\xa2\x7f\xcb\xbe\
\x7e\x8c\x2a\x09\x34\x3d\x4d\x01\x2d\x69\x21\x03\xd3\x9a\xf4\xf3\
\x9e\xf9\xa4\x3d\x29\x7b\x14\x07\x8f\xc8\x8d\x1b\x95\x75\x2a\xeb\
\xd4\x11\xc8\xa4\xcd\x7a\x9d\xf5\x8d\xad\xe2\x95\xb8\x85\x1f\x1d\
\x09\x1c\x8f\xc6\xb9\x6d\x4f\xc2\xa3\x25\xec\x24\xc7\xac\x6f\xfe\
\x35\x9c\xa8\xb5\xb0\x1f\x7f\xae\x5f\x56\x97\x3f\x76\x38\xd5\x47\
\xd4\xe7\x3f\xc8\x55\xfa\xa5\xa7\x7c\xe6\xe2\x53\xfc\x72\x9c\x7d\
\x07\x15\x76\xbc\xf0\x10\x1e\xb5\x5c\x36\x2f\x82\xe7\xef\xa1\xfd\
\x0f\xff\x00\x5e\xac\x81\x9a\xa9\x79\xfb\xb9\x6d\xe6\x1d\x11\xf6\
\x9f\xa3\x71\xfc\xf1\x40\x16\xe8\xa2\x8a\x00\xc8\xd4\xe7\x4b\x1b\
\xfb\x69\x26\x7d\xb1\x4f\x98\x49\xed\xbb\xaa\x8f\xc7\x9a\xbd\x9a\
\xcc\xf1\x9d\xaa\xdc\xe8\x53\x96\x50\xc2\x21\xe6\x9c\xfa\x03\x93\
\x8a\xe6\xf4\x1f\x12\xa5\xb8\x4b\x7d\x45\xce\xc3\xc2\xcf\xe9\xec\
\xdf\xe3\x49\xd3\x72\xd8\xd2\x0e\xda\x1d\xb6\x68\xcd\x20\x20\x80\
\x47\x43\xd2\x8a\xc4\xd4\x70\xac\xb7\xd3\x84\x3a\x9a\x5d\xdb\x2a\
\xa8\x3c\x48\xbd\x01\xf7\xad\x33\xd3\x9a\x70\xe1\x71\xd8\xd2\xb1\
\x1a\x88\x3a\x52\xe0\x11\xcd\x20\xe9\x43\x29\x75\xc0\x24\x52\x19\
\x9b\xaa\x6a\x90\xd9\x2f\x5d\xf2\xf6\x41\x4e\xd2\x24\x95\xad\x3c\
\xfb\x93\x96\x94\x96\x03\xb2\x8e\xd5\x41\xfc\x38\x4d\xd1\x98\xdc\
\xee\x24\xf4\x74\xcf\xf5\xad\x09\x6c\x66\x9e\x06\x86\x4b\xa6\x0a\
\xc3\x04\xa4\x61\x4e\x3d\xba\xd0\x5e\x87\x33\xe2\xad\x60\xcf\x21\
\xb6\xb6\x6f\xdd\xaf\x0c\x7f\xbc\x6b\x9d\xb6\xb6\xb9\xba\x7c\xda\
\xc1\x2c\xc1\x4f\x2c\x8b\xc0\x3f\x5a\xef\x6d\x3c\x33\x61\x6e\xdb\
\x9d\x5e\x76\xff\x00\xa6\xa7\x23\xf2\xad\x78\x20\x8e\x24\x09\x12\
\x84\x45\xe8\xaa\x30\x28\x29\x54\x49\x59\x19\xb6\x5a\x9b\x08\x13\
\xed\x76\xd3\xc2\xf8\xc1\xca\x64\x67\xf0\xab\xb0\xdf\x5b\x5c\x1d\
\xb0\xcd\x19\x6f\x4c\xf3\xf9\x55\x83\x50\x4d\x6b\x05\xc7\xfa\xe8\
\xa3\x93\xea\x29\x10\xd9\x3d\x15\x53\xfb\x32\xdc\x72\x8a\xe9\xfe\
\xec\x8c\x3f\xad\x53\x36\x82\xec\xed\xb5\x96\xe4\x2e\x70\x64\x32\
\xb6\xdf\xe7\xcd\x34\xae\x4b\x76\x34\xae\x66\x48\x53\x2e\x40\x27\
\xa0\xea\x4f\xd0\x57\x3b\x6f\xe1\xc7\xd4\xef\xe5\xbb\xd5\xfe\x48\
\xdb\xee\xc2\x0f\xcc\x7f\xde\x3f\xd2\xba\x1d\x3b\x4d\x86\xc5\x31\
\xbe\x49\xa6\xe8\x65\x95\xb7\x31\xfc\x6a\xf6\x2b\x68\xc6\xc4\xf3\
\xb2\x2b\x58\x23\xb6\x85\x62\x81\x02\x44\x38\x0a\x3b\x54\xff\x00\
\xca\x9a\x46\x28\x15\x46\x6d\x8b\x5c\xdf\x8d\xed\x22\xbb\xd3\xe3\
\x05\x73\x74\x1b\xf7\x43\xbb\x1e\xe0\x56\xcd\xd5\xd0\x85\xc4\x51\
\xaf\x99\x3b\x0c\xec\x07\xa0\xf5\x27\xb0\xa6\xd9\xd9\xed\x63\x34\
\xc7\xcc\xb8\xee\x7b\x2f\xb2\xfa\x0a\x77\x11\x91\xe1\x1f\x0f\xae\
\x93\x6e\xd2\xdc\x04\x7b\xb9\x79\x62\x07\xdd\x1f\xdd\x06\xb6\xae\
\xed\x20\xbb\x89\xa2\xb8\x89\x24\x8c\xff\x00\x0b\x0c\x8a\x5b\x8b\
\xa8\x2d\x97\x75\xcc\x82\x3c\xf4\x07\xa9\xfa\x0a\x83\xed\x37\x57\
\x23\xfd\x12\x0f\x29\x7f\xe7\xa4\xc3\xf9\x2f\x53\xfa\x53\x4d\x81\
\xe5\xde\x3b\xf0\x35\x85\x93\x0b\xcb\x68\x14\x41\x23\x15\x25\x46\
\xd6\x43\xdb\x91\x5c\xc6\x9b\xe0\x9d\x57\x55\x50\xd6\x12\xb9\xb6\
\x3c\x09\x19\x06\x7e\x81\x89\xc7\xe9\x5e\xe9\x2e\x8d\x1c\xfb\x4e\
\xa1\x23\x5d\xf7\xda\xe3\x0b\xff\x00\x7c\x8e\x3f\x3c\xd6\x84\x71\
\xac\x68\x15\x00\x0a\x38\x00\x56\x8a\xb3\x40\x78\x3d\xd7\xc3\x2d\
\x7e\x15\xf3\x20\x91\x24\xc7\x54\x72\xa7\x3f\x4c\x63\x15\xc9\x6a\
\xf6\x17\xba\x4c\x85\x75\x5b\x09\xad\x31\xfc\x44\x6e\x5f\xce\xbe\
\xa8\xa8\x2f\x2c\xed\xef\x61\x31\x5d\xc3\x1c\xd1\x9f\xe1\x75\xcd\
\x52\xc4\x49\x6e\x07\xca\x2d\x08\x64\x0d\x1b\x06\x53\xd0\x8e\x86\
\xa9\xcd\x09\x07\x91\x5e\xdf\xe2\x8f\x84\x96\x77\x2e\xd3\xf8\x7a\
\xe8\xe9\xb3\x93\x96\x8f\x6e\xe8\x9f\xf0\xed\xf5\xaf\x27\xd6\xec\
\x6f\xb4\x2b\xcf\xb2\xeb\xd6\x8d\x6f\x26\x70\xb2\x81\x98\xe4\xf7\
\x06\xbb\x29\x62\x14\xb4\x0b\x1c\xe4\xd1\x91\xf4\xaa\xe4\x11\xfe\
\x15\xb5\x2c\x19\x1b\x97\x95\x35\x42\x68\x71\xc8\xe9\xfc\xab\xa4\
\x0c\xe7\x07\x75\x42\x45\x5a\x71\xf3\x54\x4c\x29\x01\xff\xd9\xca\
\x00\x31\xc5\
"

qt_resource_name = b"\
\x00\x04\
\x00\x06\xeb\x74\
\x00\x68\
\x00\x65\x00\x61\x00\x64\
\x00\x04\
\x00\x07\x03\xe3\
\x00\x69\
\x00\x6d\x00\x67\x00\x73\
\x00\x0f\
\x07\xf1\x76\x07\
\x00\x6d\
\x00\x79\x00\x5f\x00\x68\x00\x65\x00\x61\x00\x64\x00\x5f\x00\x69\x00\x6d\x00\x67\x00\x2e\x00\x6a\x00\x70\x00\x67\
"

qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x0e\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
"

qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x0e\x00\x02\x00\x00\x00\x01\x00\x00\x00\x03\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x7d\x89\x8f\xb0\x6a\
"

qt_version = [int(v) for v in QtCore.qVersion().split('.')]
if qt_version < [5, 8, 0]:
    rcc_version = 1
    qt_resource_struct = qt_resource_struct_v1
else:
    rcc_version = 2
    qt_resource_struct = qt_resource_struct_v2

def qInitResources():
    QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)

def qCleanupResources():
    QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)

qInitResources()

5.主界面(radio.py)

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'radio.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(748, 443)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.frame_4 = QtWidgets.QFrame(self.centralwidget)
        self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_4.setObjectName("frame_4")
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.frame_4)
        self.horizontalLayout_7.setContentsMargins(10, 10, 10, 10)
        self.horizontalLayout_7.setSpacing(2)
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.frame = QtWidgets.QFrame(self.frame_4)
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame.setObjectName("frame")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.frame)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label = QtWidgets.QLabel(self.frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        self.label.setObjectName("label")
        self.verticalLayout_2.addWidget(self.label)
        self.recommend_toolButton = QtWidgets.QToolButton(self.frame)
        self.recommend_toolButton.setObjectName("recommend_toolButton")
        self.verticalLayout_2.addWidget(self.recommend_toolButton, 0, QtCore.Qt.AlignHCenter)
        self.city_cate_toolButton = QtWidgets.QToolButton(self.frame)
        self.city_cate_toolButton.setObjectName("city_cate_toolButton")
        self.verticalLayout_2.addWidget(self.city_cate_toolButton, 0, QtCore.Qt.AlignHCenter)
        self.country_cate_toolButton = QtWidgets.QToolButton(self.frame)
        self.country_cate_toolButton.setObjectName("country_cate_toolButton")
        self.verticalLayout_2.addWidget(self.country_cate_toolButton, 0, QtCore.Qt.AlignHCenter)
        self.network_cate_toolButton = QtWidgets.QToolButton(self.frame)
        self.network_cate_toolButton.setObjectName("network_cate_toolButton")
        self.verticalLayout_2.addWidget(self.network_cate_toolButton, 0, QtCore.Qt.AlignHCenter)
        self.verticalLayout_2.setStretch(0, 1)
        self.verticalLayout_2.setStretch(2, 2)
        self.verticalLayout_2.setStretch(3, 2)
        self.verticalLayout_2.setStretch(4, 2)
        self.verticalLayout_3.addLayout(self.verticalLayout_2)
        self.verticalLayout_4 = QtWidgets.QVBoxLayout()
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.label_4 = QtWidgets.QLabel(self.frame)
        self.label_4.setObjectName("label_4")
        self.verticalLayout_4.addWidget(self.label_4)
        self.collection_toolButton = QtWidgets.QToolButton(self.frame)
        self.collection_toolButton.setObjectName("collection_toolButton")
        self.verticalLayout_4.addWidget(self.collection_toolButton, 0, QtCore.Qt.AlignHCenter)
        self.verticalLayout_3.addLayout(self.verticalLayout_4)
        self.add_toolButton = QtWidgets.QToolButton(self.frame)
        self.add_toolButton.setObjectName("add_toolButton")
        self.verticalLayout_3.addWidget(self.add_toolButton, 0, QtCore.Qt.AlignHCenter)
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.label_5 = QtWidgets.QLabel(self.frame)
        self.label_5.setObjectName("label_5")
        self.verticalLayout_7.addWidget(self.label_5)
        self.toolButton_7 = QtWidgets.QToolButton(self.frame)
        self.toolButton_7.setObjectName("toolButton_7")
        self.verticalLayout_7.addWidget(self.toolButton_7, 0, QtCore.Qt.AlignHCenter)
        self.connect_pushButton = QtWidgets.QPushButton(self.frame)
        self.connect_pushButton.setObjectName("connect_pushButton")
        self.verticalLayout_7.addWidget(self.connect_pushButton)
        self.abou_qt_pushButton = QtWidgets.QPushButton(self.frame)
        self.abou_qt_pushButton.setObjectName("abou_qt_pushButton")
        self.verticalLayout_7.addWidget(self.abou_qt_pushButton)
        self.verticalLayout_3.addLayout(self.verticalLayout_7)
        self.horizontalLayout_7.addWidget(self.frame)
        self.verticalLayout_6 = QtWidgets.QVBoxLayout()
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.frame_3 = QtWidgets.QFrame(self.frame_4)
        self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_3.setObjectName("frame_3")
        self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.frame_3)
        self.verticalLayout_9.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_9.setObjectName("verticalLayout_9")
        self.scrollArea = QtWidgets.QScrollArea(self.frame_3)
        self.scrollArea.setWidgetResizable(True)
        self.scrollArea.setObjectName("scrollArea")
        self.scrollAreaWidgetContents = QtWidgets.QWidget()
        self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 578, 153))
        self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
        self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents)
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_10.setObjectName("horizontalLayout_10")
        self.toolButton_111 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_111.setStyleSheet("border:none")
        self.toolButton_111.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_111.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_111.setObjectName("toolButton_111")
        self.horizontalLayout_10.addWidget(self.toolButton_111)
        self.toolButton_112 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_112.setStyleSheet("border:none")
        self.toolButton_112.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_112.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_112.setObjectName("toolButton_112")
        self.horizontalLayout_10.addWidget(self.toolButton_112)
        self.toolButton_113 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_113.setStyleSheet("border:none")
        self.toolButton_113.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_113.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_113.setObjectName("toolButton_113")
        self.horizontalLayout_10.addWidget(self.toolButton_113)
        self.verticalLayout_8.addLayout(self.horizontalLayout_10)
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        self.toolButton_114 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_114.setStyleSheet("border:none")
        self.toolButton_114.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_114.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_114.setObjectName("toolButton_114")
        self.horizontalLayout_9.addWidget(self.toolButton_114)
        self.toolButton_115 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_115.setStyleSheet("border:none")
        self.toolButton_115.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_115.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_115.setObjectName("toolButton_115")
        self.horizontalLayout_9.addWidget(self.toolButton_115)
        self.toolButton_116 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_116.setStyleSheet("border:none")
        self.toolButton_116.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_116.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_116.setObjectName("toolButton_116")
        self.horizontalLayout_9.addWidget(self.toolButton_116)
        self.verticalLayout_8.addLayout(self.horizontalLayout_9)
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.toolButton_117 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_117.setStyleSheet("border:none")
        self.toolButton_117.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_117.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_117.setObjectName("toolButton_117")
        self.horizontalLayout_8.addWidget(self.toolButton_117)
        self.toolButton_118 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_118.setStyleSheet("border:none")
        self.toolButton_118.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_118.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_118.setObjectName("toolButton_118")
        self.horizontalLayout_8.addWidget(self.toolButton_118)
        self.toolButton_119 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_119.setStyleSheet("border:none")
        self.toolButton_119.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_119.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_119.setObjectName("toolButton_119")
        self.horizontalLayout_8.addWidget(self.toolButton_119)
        self.verticalLayout_8.addLayout(self.horizontalLayout_8)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.toolButton_1110 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_1110.setStyleSheet("border:none")
        self.toolButton_1110.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_1110.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_1110.setObjectName("toolButton_1110")
        self.horizontalLayout_6.addWidget(self.toolButton_1110)
        self.toolButton_1111 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_1111.setStyleSheet("border:none")
        self.toolButton_1111.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_1111.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_1111.setObjectName("toolButton_1111")
        self.horizontalLayout_6.addWidget(self.toolButton_1111)
        self.toolButton_1112 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_1112.setStyleSheet("border:none")
        self.toolButton_1112.setIconSize(QtCore.QSize(50, 50))
        self.toolButton_1112.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.toolButton_1112.setObjectName("toolButton_1112")
        self.horizontalLayout_6.addWidget(self.toolButton_1112)
        self.verticalLayout_8.addLayout(self.horizontalLayout_6)
        self.horizontalLayout_22 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_22.setObjectName("horizontalLayout_22")
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_22.addItem(spacerItem)
        self.toolButton_21 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_21.setEnabled(False)
        self.toolButton_21.setObjectName("toolButton_21")
        self.horizontalLayout_22.addWidget(self.toolButton_21)
        self.toolButton_19 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_19.setEnabled(False)
        self.toolButton_19.setObjectName("toolButton_19")
        self.horizontalLayout_22.addWidget(self.toolButton_19)
        self.page_label = QtWidgets.QLabel(self.scrollAreaWidgetContents)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.page_label.sizePolicy().hasHeightForWidth())
        self.page_label.setSizePolicy(sizePolicy)
        self.page_label.setObjectName("page_label")
        self.horizontalLayout_22.addWidget(self.page_label)
        self.toolButton_20 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_20.setEnabled(True)
        self.toolButton_20.setObjectName("toolButton_20")
        self.horizontalLayout_22.addWidget(self.toolButton_20)
        self.toolButton_22 = QtWidgets.QToolButton(self.scrollAreaWidgetContents)
        self.toolButton_22.setEnabled(True)
        self.toolButton_22.setObjectName("toolButton_22")
        self.horizontalLayout_22.addWidget(self.toolButton_22)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_22.addItem(spacerItem1)
        self.verticalLayout_8.addLayout(self.horizontalLayout_22)
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        self.verticalLayout_9.addWidget(self.scrollArea)
        self.frame_5 = QtWidgets.QFrame(self.frame_3)
        self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_5.setObjectName("frame_5")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.frame_5)
        self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.collection_listWidget = QtWidgets.QListWidget(self.frame_5)
        self.collection_listWidget.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.collection_listWidget.setObjectName("collection_listWidget")
        self.verticalLayout_5.addWidget(self.collection_listWidget)
        self.verticalLayout_9.addWidget(self.frame_5)
        self.verticalLayout_6.addWidget(self.frame_3)
        self.frame_2 = QtWidgets.QFrame(self.frame_4)
        self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtWidgets.QFrame.Plain)
        self.frame_2.setObjectName("frame_2")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.frame_2)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.control_toolButton = QtWidgets.QToolButton(self.frame_2)
        self.control_toolButton.setObjectName("control_toolButton")
        self.horizontalLayout_4.addWidget(self.control_toolButton)
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.raiod_name_label = QtWidgets.QLabel(self.frame_2)
        self.raiod_name_label.setObjectName("raiod_name_label")
        self.horizontalLayout_2.addWidget(self.raiod_name_label)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem2)
        self.time_label = QtWidgets.QLabel(self.frame_2)
        self.time_label.setObjectName("time_label")
        self.horizontalLayout_2.addWidget(self.time_label)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.progress_slider = QtWidgets.QSlider(self.frame_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.progress_slider.sizePolicy().hasHeightForWidth())
        self.progress_slider.setSizePolicy(sizePolicy)
        self.progress_slider.setMouseTracking(False)
        self.progress_slider.setOrientation(QtCore.Qt.Horizontal)
        self.progress_slider.setInvertedControls(False)
        self.progress_slider.setTickPosition(QtWidgets.QSlider.NoTicks)
        self.progress_slider.setObjectName("progress_slider")
        self.horizontalLayout_3.addWidget(self.progress_slider)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.horizontalLayout_4.addLayout(self.verticalLayout)
        self.line = QtWidgets.QFrame(self.frame_2)
        self.line.setFrameShadow(QtWidgets.QFrame.Raised)
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setObjectName("line")
        self.horizontalLayout_4.addWidget(self.line)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label_2 = QtWidgets.QLabel(self.frame_2)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout.addWidget(self.label_2)
        self.volum_Slider = QtWidgets.QSlider(self.frame_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.volum_Slider.sizePolicy().hasHeightForWidth())
        self.volum_Slider.setSizePolicy(sizePolicy)
        self.volum_Slider.setMaximum(100)
        self.volum_Slider.setProperty("value", 100)
        self.volum_Slider.setOrientation(QtCore.Qt.Horizontal)
        self.volum_Slider.setObjectName("volum_Slider")
        self.horizontalLayout.addWidget(self.volum_Slider)
        self.volume_label = QtWidgets.QLabel(self.frame_2)
        self.volume_label.setObjectName("volume_label")
        self.horizontalLayout.addWidget(self.volume_label)
        self.horizontalLayout_4.addLayout(self.horizontalLayout)
        self.do_collection_toolButton = QtWidgets.QToolButton(self.frame_2)
        self.do_collection_toolButton.setObjectName("do_collection_toolButton")
        self.horizontalLayout_4.addWidget(self.do_collection_toolButton)
        self.share_toolButton = QtWidgets.QToolButton(self.frame_2)
        self.share_toolButton.setObjectName("share_toolButton")
        self.horizontalLayout_4.addWidget(self.share_toolButton)
        self.verticalLayout_6.addWidget(self.frame_2)
        self.horizontalLayout_7.addLayout(self.verticalLayout_6)
        self.horizontalLayout_5.addWidget(self.frame_4)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt; text-decoration: underline;\">分类</span></p></body></html>"))
        self.recommend_toolButton.setText(_translate("MainWindow", "推荐"))
        self.city_cate_toolButton.setText(_translate("MainWindow", "城市"))
        self.country_cate_toolButton.setText(_translate("MainWindow", "国家"))
        self.network_cate_toolButton.setText(_translate("MainWindow", "网络"))
        self.label_4.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt; text-decoration: underline;\">操作</span></p></body></html>"))
        self.collection_toolButton.setText(_translate("MainWindow", "我的收藏"))
        self.add_toolButton.setText(_translate("MainWindow", "手动添加"))
        self.label_5.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:12pt; text-decoration: underline;\">关于</span></p></body></html>"))
        self.toolButton_7.setText(_translate("MainWindow", "关于作者"))
        self.connect_pushButton.setText(_translate("MainWindow", "联系作者"))
        self.abou_qt_pushButton.setText(_translate("MainWindow", "关于QT"))
        self.toolButton_111.setText(_translate("MainWindow", "..."))
        self.toolButton_112.setText(_translate("MainWindow", "..."))
        self.toolButton_113.setText(_translate("MainWindow", "..."))
        self.toolButton_114.setText(_translate("MainWindow", "..."))
        self.toolButton_115.setText(_translate("MainWindow", "..."))
        self.toolButton_116.setText(_translate("MainWindow", "..."))
        self.toolButton_117.setText(_translate("MainWindow", "..."))
        self.toolButton_118.setText(_translate("MainWindow", "..."))
        self.toolButton_119.setText(_translate("MainWindow", "..."))
        self.toolButton_1110.setText(_translate("MainWindow", "..."))
        self.toolButton_1111.setText(_translate("MainWindow", "..."))
        self.toolButton_1112.setText(_translate("MainWindow", "..."))
        self.toolButton_21.setText(_translate("MainWindow", "《"))
        self.toolButton_19.setText(_translate("MainWindow", "<"))
        self.page_label.setText(_translate("MainWindow", "<html><head/><body><p>第<span style=\" color:#55aaff;\">1</span>页共<span style=\" color:#55aaff;\">1</span>页</p></body></html>"))
        self.toolButton_20.setText(_translate("MainWindow", ">"))
        self.toolButton_22.setText(_translate("MainWindow", "》"))
        self.control_toolButton.setText(_translate("MainWindow", "播放"))
        self.raiod_name_label.setText(_translate("MainWindow", "电台名称"))
        self.time_label.setText(_translate("MainWindow", "进度:"))
        self.label_2.setText(_translate("MainWindow", "音量:"))
        self.volume_label.setText(_translate("MainWindow", "100%"))
        self.do_collection_toolButton.setText(_translate("MainWindow", "收藏"))
        self.share_toolButton.setText(_translate("MainWindow", "分享"))

四.总结

本次的网络电台具有多个功能,本次创新性的加入了“缓存”,即将电台图标缓存到本地,大大增强了软件运行效率,UI与引擎分离开来,降低了代码耦合,代码放出来大家可以一起研究,另外我也打包了一款,放在了百度网盘(密码:8888),欢迎大家试用。
请添加图片描述

猜你喜欢

转载自blog.csdn.net/a1397852386/article/details/123332532