{"id":28959,"date":"2018-04-30T12:50:19","date_gmt":"2018-04-30T09:50:19","guid":{"rendered":"http:\/\/kamil-abzalov.com\/tutorials\/create-php-mvc-app-get-all-users\/"},"modified":"2020-04-11T11:40:28","modified_gmt":"2020-04-11T08:40:28","slug":"create-php-mvc-app-get-all-users","status":"publish","type":"post","link":"https:\/\/kamil-abzalov.com\/en\/tutorials\/phpmysql\/create-php-mvc-app-get-all-users\/","title":{"rendered":"Create php MVC app. Get all users"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; fullwidth=&#8221;on&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_fullwidth_header title=&#8221;Create php MVC app. Get all users&#8221; _builder_version=&#8221;3.16&#8243; button_one_text_size__hover_enabled=&#8221;off&#8221; button_two_text_size__hover_enabled=&#8221;off&#8221; button_one_text_color__hover_enabled=&#8221;off&#8221; button_two_text_color__hover_enabled=&#8221;off&#8221; button_one_border_width__hover_enabled=&#8221;off&#8221; button_two_border_width__hover_enabled=&#8221;off&#8221; button_one_border_color__hover_enabled=&#8221;off&#8221; button_two_border_color__hover_enabled=&#8221;off&#8221; button_one_border_radius__hover_enabled=&#8221;off&#8221; button_two_border_radius__hover_enabled=&#8221;off&#8221; button_one_letter_spacing__hover_enabled=&#8221;off&#8221; button_two_letter_spacing__hover_enabled=&#8221;off&#8221; button_one_bg_color__hover_enabled=&#8221;off&#8221; button_two_bg_color__hover_enabled=&#8221;off&#8221;][\/et_pb_fullwidth_header][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;section&#8221; _builder_version=&#8221;3.22&#8243;][et_pb_row admin_label=&#8221;row&#8221; _builder_version=&#8221;3.25&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_padding=&#8221;0px|||&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25&#8243; custom_padding=&#8221;|||&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_dcsbcm_divi_breadcrumbs_module homebreadcrumbtext=&#8221;Home&#8221; hide_currentbreadcrumb=&#8221;off&#8221; _builder_version=&#8221;3.2&#8243; custom_padding=&#8221;0px|||&#8221; fontsbreadcrumbs_font_size_tablet=&#8221;51&#8243; fontsbreadcrumbs_line_height_tablet=&#8221;2&#8243; fontsseperator_font_size_tablet=&#8221;51&#8243; fontsseperator_line_height_tablet=&#8221;2&#8243; fontsbreadcrumblinks_font_size_tablet=&#8221;51&#8243; fontsbreadcrumblinks_line_height_tablet=&#8221;2&#8243;][\/et_pb_dcsbcm_divi_breadcrumbs_module][et_pb_text _builder_version=&#8221;3.27.4&#8243; border_color_all=&#8221;#ffffff&#8221; use_border_color=&#8221;off&#8221; border_color=&#8221;#ffffff&#8221; border_style=&#8221;solid&#8221;]In this tutorial we will begin to make management users section. Our task today will be to select all users from database with their roles.<br \/>\n[\/et_pb_text][et_pb_video src=&#8221;https:\/\/youtu.be\/U-md0hPBB7Y&#8221; _builder_version=&#8221;3.2&#8243;][\/et_pb_video][et_pb_text _builder_version=&#8221;3.27.4&#8243; border_color_all=&#8221;#ffffff&#8221; use_border_color=&#8221;off&#8221;]We will make select from two tables, that&#8217;s why we must use INNER JOIN SQL operator<br \/>\n[\/et_pb_text][et_pb_dmb_code_snippet title=&#8221;Code lesson (users.tpl.php)&#8221; code=&#8221;PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InJ1IiBkYXRhLW5nLWFwcD0idXNlcnMiPgo8aGVhZD4KCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8YmFzZSBocmVmPSIvY2FiaW5ldC91c2Vycy8iPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8dGl0bGU+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC90aXRsZT4KCiAgICA8IS0tIEJvb3RzdHJhcCBDb3JlIENTUyAtLT4KICAgIDxsaW5rIGhyZWY9Ii9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBNZXRpc01lbnUgQ1NTIC0tPgogICAgPGxpbmsgaHJlZj0iL2Nzcy9hZG1pbi9tZXRpc01lbnUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KCiAgICA8IS0tIEN1c3RvbSBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL3NiLWFkbWluLTIuY3NzIiByZWw9InN0eWxlc2hlZXQiPgoKICAgIDwhLS0gTW9ycmlzIENoYXJ0cyBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL21vcnJpcy5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBDdXN0b20gRm9udHMgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KCiAgICA8IS0tIEhUTUw1IFNoaW0gYW5kIFJlc3BvbmQuanMgSUU4IHN1cHBvcnQgb2YgSFRNTDUgZWxlbWVudHMgYW5kIG1lZGlhIHF1ZXJpZXMgLS0+CiAgICA8IS0tIFdBUk5JTkc6IFJlc3BvbmQuanMgZG9lc24ndCB3b3JrIGlmIHlvdSB2aWV3IHRoZSBwYWdlIHZpYSBmaWxlOi8vIC0tPgogICAgPCEtLVtpZiBsdCBJRSA5XT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9vc3MubWF4Y2RuLmNvbS9saWJzL2h0bWw1c2hpdi8zLjcuMC9odG1sNXNoaXYuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL29zcy5tYXhjZG4uY29tL2xpYnMvcmVzcG9uZC5qcy8xLjQuMi9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8IVtlbmRpZl0tLT4KCiAgICA8c3R5bGU+CiAgICAgICAgdGFibGUgdHI6aG92ZXIgewogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgPC9zdHlsZT4KCjwvaGVhZD4KCjxib2R5PgoKICAgIDxkaXYgaWQ9IndyYXBwZXIiPgoKICAgICAgICA8IS0tIE5hdmlnYXRpb24gLS0+CiAgICAgICAgPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IG5hdmJhci1zdGF0aWMtdG9wIiByb2xlPSJuYXZpZ2F0aW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJuYXZiYXItdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2YmFyLWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9ImluZGV4Lmh0bWwiPtCa0LDQsdC40L3QtdGCPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci1oZWFkZXIgLS0+CgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItdG9wLWxpbmtzIG5hdmJhci1yaWdodCI+CiAgICAgICAgICAgICAgICA8IS0tIC8uZHJvcGRvd24gLS0+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiDQn9GA0L7RhNC40LvRjDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2NhYmluZXQvbG9nb3V0Ij48aSBjbGFzcz0iZmEgZmEtc2lnbi1vdXQgZmEtZnciPjwvaT4g0JLRi9C50YLQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93bi11c2VyIC0tPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93biAtLT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci10b3AtbGlua3MgLS0+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZiYXItZGVmYXVsdCBzaWRlYmFyIiByb2xlPSJuYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItbmF2IG5hdmJhci1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYiIGlkPSJzaWRlLW1lbnUiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NhYmluZXQiPjxpIGNsYXNzPSJmYSBmYS1hcmVhLWNoYXJ0Ij48L2k+INCh0YLQsNGC0LjRgdGC0LjQutCwPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY2FiaW5ldC9wcm9kdWN0cyI+PGkgY2xhc3M9ImZhIGZhLWNhcnQtcGx1cyI+PC9pPiDQotC+0LLQsNGA0Ys8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jYWJpbmV0L3VzZXJzIj48aSBjbGFzcz0iZmEgZmEtdXNlci1vIj48L2k+INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIC8uc2lkZWJhci1jb2xsYXBzZSAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwhLS0gLy5uYXZiYXItc3RhdGljLXNpZGUgLS0+CiAgICAgICAgPC9uYXY+CgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InBhZ2Utd3JhcHBlciIgZGF0YS1uZy1jb250cm9sbGVyPSJ1c2Vyc0NvbnRyb2xsZXIiPgogICAgICAgIDw\/cGhwIGlmKCRwYWdlRGF0YVsncGVybWlzc2lvbiddID09IDEpIHsgPz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLWhlYWRlciI+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC9oMT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWJhci1jaGFydC1vIGZhLWZ3Ij48L2k+0J\/QvtC70YzQt9C+0LLQsNGC0LXQu9C4CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbC1oZWFkaW5nIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIHRhYmxlLXN0cmlwZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPtCY0LzRjzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0JvQvtCz0LjQvTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RW1haWw8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPtCg0L7Qu9GMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwYWdlRGF0YVsndXNlcnNMaXN0J10gYXMgJGtleSA9PiAkdmFsdWUpIHsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgZGF0YS1uZy1jbGljaz0ic2hvd0VkaXRGb3JtKCk7IGdldFVzZXJEYXRhKDw\/cGhwIGVjaG8gJHZhbHVlWydpZCddOyA\/Pik7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydmdWxsTmFtZSddOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnbG9naW4nXTsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgZWNobyAkdmFsdWVbJ2VtYWlsJ107ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydyb2xlJ107ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnRhYmxlLXJlc3BvbnNpdmUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLmNvbC1sZy00IChuZXN0ZWQpIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctOCAobmVzdGVkKSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnJvdyAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlZGl0LXVzZXI+PC9lZGl0LXVzZXI+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbC1ib2R5IC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbCAtLT4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctOCAtLT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9InBhZ2UtaGVhZGVyIj7QlNC+0LHQsNCy0LjRgtGMINC90L7QstC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y88L2gxPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIiBtZXRob2Q9InBvc3QiIGRhdGEtbmctc3VibWl0PSJhZGROZXdVc2VyKCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3VXNlciI+0KTQmNCePC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ibmV3VXNlciIgbmFtZT0ibmV3VXNlciIgZGF0YS1uZy1tb2RlbD0ibmV3VXNlciIgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1tZCIgcmVxdWlyZWQ9InRydWUiIHR5cGU9InRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3TG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJuZXdMb2dpbiIgbmFtZT0ibmV3TG9naW4iIGRhdGEtbmctbW9kZWw9Im5ld0xvZ2luIiBjbGFzcz0iZm9ybS1jb250cm9sICIgcmVxdWlyZWQ9InRydWUiIHR5cGU9InRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3RW1haWwiPkVtYWlsPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ibmV3RW1haWwiIG5hbWU9Im5ld0VtYWlsIiBkYXRhLW5nLW1vZGVsPSJuZXdFbWFpbCIgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1tZCIgcmVxdWlyZWQ9InRydWUiIHR5cGU9ImVtYWlsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtNCBjb250cm9sLWxhYmVsIiBmb3I9Im5ld1Bhc3N3b3JkIj7Qn9Cw0YDQvtC70Yw8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJuZXdQYXNzd29yZCIgbmFtZT0ibmV3UGFzc3dvcmQiIGRhdGEtbmctbW9kZWw9Im5ld1Bhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIGlucHV0LW1kIiByZXF1aXJlZD0idHJ1ZSIgdHlwZT0icGFzc3dvcmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3Um9sZSI+0KDQvtC70Yw8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJuZXdSb2xlIiBkYXRhLW5nLW1vZGVsPSJuZXdSb2xlIiBjbGFzcz0iZm9ybS1jb250cm9sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+0JLRi9Cx0LXRgNC40YLQtSDRgNC+0LvRjDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+0JDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiPtCc0LXQvdC10LTQttC10YA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGNvbC1tZC1vZmZzZXQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc3VjY2VzcyI+0KHQvtGF0YDQsNC90LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDw\/cGhwIH0gZWxzZSB7ID8+CiAgICAgICAgICAgIDxoMSBzdHlsZT0ibWFyZ2luLXRvcDowOyBwYWRkaW5nLXRvcDoxMHB4OyI+0KMg0LLQsNGBINC90LXQtNC+0YHRgtCw0YLQvtGH0L3QviDQv9GA0LDQsiDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC\/0L7Qu9GM0LfQvtCy0LDRgtC10LvRj9C80Lg8L2gxPgogICAgICAgIDw\/cGhwIH0gPz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8IS0tIC8jcGFnZS13cmFwcGVyIC0tPgogICAgCiAgICA8L2Rpdj4KICAgIDwhLS0gLyN3cmFwcGVyIC0tPgoKICAgIDwhLS0galF1ZXJ5IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQW5ndWxhciAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYW5ndWxhci5taW4uanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQW5ndWxhciBSb3V0ZSAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYW5ndWxhci1yb3V0ZS5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi91c2Vycy5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBCb290c3RyYXAgQ29yZSBKYXZhU2NyaXB0IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KCiAgICA8IS0tIE1ldGlzIE1lbnUgUGx1Z2luIEphdmFTY3JpcHQgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FkbWluL21ldGlzTWVudS5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBDdXN0b20gVGhlbWUgSmF2YVNjcmlwdCAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYWRtaW4vc2ItYWRtaW4tMi5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi9wcm9kdWN0cy5qcyI+PC9zY3JpcHQ+Cgo8L2JvZHk+Cgo8L2h0bWw+Cg==&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.2&#8243;]PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InJ1IiBkYXRhLW5nLWFwcD0idXNlcnMiPgo8aGVhZD4KCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8YmFzZSBocmVmPSIvY2FiaW5ldC91c2Vycy8iPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8dGl0bGU+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC90aXRsZT4KCiAgICA8IS0tIEJvb3RzdHJhcCBDb3JlIENTUyAtLT4KICAgIDxsaW5rIGhyZWY9Ii9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBNZXRpc01lbnUgQ1NTIC0tPgogICAgPGxpbmsgaHJlZj0iL2Nzcy9hZG1pbi9tZXRpc01lbnUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KCiAgICA8IS0tIEN1c3RvbSBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL3NiLWFkbWluLTIuY3NzIiByZWw9InN0eWxlc2hlZXQiPgoKICAgIDwhLS0gTW9ycmlzIENoYXJ0cyBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL21vcnJpcy5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBDdXN0b20gRm9udHMgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KCiAgICA8IS0tIEhUTUw1IFNoaW0gYW5kIFJlc3BvbmQuanMgSUU4IHN1cHBvcnQgb2YgSFRNTDUgZWxlbWVudHMgYW5kIG1lZGlhIHF1ZXJpZXMgLS0+CiAgICA8IS0tIFdBUk5JTkc6IFJlc3BvbmQuanMgZG9lc24ndCB3b3JrIGlmIHlvdSB2aWV3IHRoZSBwYWdlIHZpYSBmaWxlOi8vIC0tPgogICAgPCEtLVtpZiBsdCBJRSA5XT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9vc3MubWF4Y2RuLmNvbS9saWJzL2h0bWw1c2hpdi8zLjcuMC9odG1sNXNoaXYuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL29zcy5tYXhjZG4uY29tL2xpYnMvcmVzcG9uZC5qcy8xLjQuMi9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8IVtlbmRpZl0tLT4KCiAgICA8c3R5bGU+CiAgICAgICAgdGFibGUgdHI6aG92ZXIgewogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgPC9zdHlsZT4KCjwvaGVhZD4KCjxib2R5PgoKICAgIDxkaXYgaWQ9IndyYXBwZXIiPgoKICAgICAgICA8IS0tIE5hdmlnYXRpb24gLS0+CiAgICAgICAgPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IG5hdmJhci1zdGF0aWMtdG9wIiByb2xlPSJuYXZpZ2F0aW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJuYXZiYXItdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2YmFyLWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9ImluZGV4Lmh0bWwiPtCa0LDQsdC40L3QtdGCPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci1oZWFkZXIgLS0+CgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItdG9wLWxpbmtzIG5hdmJhci1yaWdodCI+CiAgICAgICAgICAgICAgICA8IS0tIC8uZHJvcGRvd24gLS0+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiDQn9GA0L7RhNC40LvRjDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2NhYmluZXQvbG9nb3V0Ij48aSBjbGFzcz0iZmEgZmEtc2lnbi1vdXQgZmEtZnciPjwvaT4g0JLRi9C50YLQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93bi11c2VyIC0tPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93biAtLT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci10b3AtbGlua3MgLS0+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZiYXItZGVmYXVsdCBzaWRlYmFyIiByb2xlPSJuYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItbmF2IG5hdmJhci1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYiIGlkPSJzaWRlLW1lbnUiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NhYmluZXQiPjxpIGNsYXNzPSJmYSBmYS1hcmVhLWNoYXJ0Ij48L2k+INCh0YLQsNGC0LjRgdGC0LjQutCwPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY2FiaW5ldC9wcm9kdWN0cyI+PGkgY2xhc3M9ImZhIGZhLWNhcnQtcGx1cyI+PC9pPiDQotC+0LLQsNGA0Ys8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jYWJpbmV0L3VzZXJzIj48aSBjbGFzcz0iZmEgZmEtdXNlci1vIj48L2k+INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIC8uc2lkZWJhci1jb2xsYXBzZSAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwhLS0gLy5uYXZiYXItc3RhdGljLXNpZGUgLS0+CiAgICAgICAgPC9uYXY+CgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InBhZ2Utd3JhcHBlciIgZGF0YS1uZy1jb250cm9sbGVyPSJ1c2Vyc0NvbnRyb2xsZXIiPgogICAgICAgIDw\/cGhwIGlmKCRwYWdlRGF0YVsncGVybWlzc2lvbiddID09IDEpIHsgPz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLWhlYWRlciI+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC9oMT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWJhci1jaGFydC1vIGZhLWZ3Ij48L2k+0J\/QvtC70YzQt9C+0LLQsNGC0LXQu9C4CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbC1oZWFkaW5nIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIHRhYmxlLXN0cmlwZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPtCY0LzRjzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0JvQvtCz0LjQvTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RW1haWw8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPtCg0L7Qu9GMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwYWdlRGF0YVsndXNlcnNMaXN0J10gYXMgJGtleSA9PiAkdmFsdWUpIHsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgZGF0YS1uZy1jbGljaz0ic2hvd0VkaXRGb3JtKCk7IGdldFVzZXJEYXRhKDw\/cGhwIGVjaG8gJHZhbHVlWydpZCddOyA\/Pik7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydmdWxsTmFtZSddOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnbG9naW4nXTsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgZWNobyAkdmFsdWVbJ2VtYWlsJ107ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydyb2xlJ107ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnRhYmxlLXJlc3BvbnNpdmUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLmNvbC1sZy00IChuZXN0ZWQpIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctOCAobmVzdGVkKSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnJvdyAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlZGl0LXVzZXI+PC9lZGl0LXVzZXI+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbC1ib2R5IC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbCAtLT4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctOCAtLT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9InBhZ2UtaGVhZGVyIj7QlNC+0LHQsNCy0LjRgtGMINC90L7QstC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y88L2gxPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIiBtZXRob2Q9InBvc3QiIGRhdGEtbmctc3VibWl0PSJhZGROZXdVc2VyKCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3VXNlciI+0KTQmNCePC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ibmV3VXNlciIgbmFtZT0ibmV3VXNlciIgZGF0YS1uZy1tb2RlbD0ibmV3VXNlciIgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1tZCIgcmVxdWlyZWQ9InRydWUiIHR5cGU9InRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3TG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJuZXdMb2dpbiIgbmFtZT0ibmV3TG9naW4iIGRhdGEtbmctbW9kZWw9Im5ld0xvZ2luIiBjbGFzcz0iZm9ybS1jb250cm9sICIgcmVxdWlyZWQ9InRydWUiIHR5cGU9InRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3RW1haWwiPkVtYWlsPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ibmV3RW1haWwiIG5hbWU9Im5ld0VtYWlsIiBkYXRhLW5nLW1vZGVsPSJuZXdFbWFpbCIgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1tZCIgcmVxdWlyZWQ9InRydWUiIHR5cGU9ImVtYWlsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtNCBjb250cm9sLWxhYmVsIiBmb3I9Im5ld1Bhc3N3b3JkIj7Qn9Cw0YDQvtC70Yw8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJuZXdQYXNzd29yZCIgbmFtZT0ibmV3UGFzc3dvcmQiIGRhdGEtbmctbW9kZWw9Im5ld1Bhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIGlucHV0LW1kIiByZXF1aXJlZD0idHJ1ZSIgdHlwZT0icGFzc3dvcmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3Um9sZSI+0KDQvtC70Yw8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJuZXdSb2xlIiBkYXRhLW5nLW1vZGVsPSJuZXdSb2xlIiBjbGFzcz0iZm9ybS1jb250cm9sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+0JLRi9Cx0LXRgNC40YLQtSDRgNC+0LvRjDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+0JDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiPtCc0LXQvdC10LTQttC10YA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGNvbC1tZC1vZmZzZXQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc3VjY2VzcyI+0KHQvtGF0YDQsNC90LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDw\/cGhwIH0gZWxzZSB7ID8+CiAgICAgICAgICAgIDxoMSBzdHlsZT0ibWFyZ2luLXRvcDowOyBwYWRkaW5nLXRvcDoxMHB4OyI+0KMg0LLQsNGBINC90LXQtNC+0YHRgtCw0YLQvtGH0L3QviDQv9GA0LDQsiDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC\/0L7Qu9GM0LfQvtCy0LDRgtC10LvRj9C80Lg8L2gxPgogICAgICAgIDw\/cGhwIH0gPz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8IS0tIC8jcGFnZS13cmFwcGVyIC0tPgogICAgCiAgICA8L2Rpdj4KICAgIDwhLS0gLyN3cmFwcGVyIC0tPgoKICAgIDwhLS0galF1ZXJ5IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQW5ndWxhciAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYW5ndWxhci5taW4uanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQW5ndWxhciBSb3V0ZSAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYW5ndWxhci1yb3V0ZS5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi91c2Vycy5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBCb290c3RyYXAgQ29yZSBKYXZhU2NyaXB0IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KCiAgICA8IS0tIE1ldGlzIE1lbnUgUGx1Z2luIEphdmFTY3JpcHQgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FkbWluL21ldGlzTWVudS5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBDdXN0b20gVGhlbWUgSmF2YVNjcmlwdCAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYWRtaW4vc2ItYWRtaW4tMi5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi9wcm9kdWN0cy5qcyI+PC9zY3JpcHQ+Cgo8L2JvZHk+Cgo8L2h0bWw+Cg==[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (UsersController.php)&#8221; code=&#8221;PD9waHAKCmNsYXNzIFVzZXJzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXJ7CgogICAgcHJpdmF0ZSAkcGFnZVRwbCA9ICIvdmlld3MvdXNlcnMudHBsLnBocCI7CiAgICBwcml2YXRlICRtYWlsVHBsID0gIi92aWV3cy9tYWlsL25ld1VzZXIudHBsLmh0bWwiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICAkdGhpcy0+bW9kZWwgPSBuZXcgVXNlcnNNb2RlbCgpOwogICAgICAgICR0aGlzLT52aWV3ID0gbmV3IFZpZXcoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZFJlZ2lzdGVyRW1haWwoJGZ1bGxOYW1lLCAkbG9naW4sICRwYXNzd29yZCwgJGVtYWlsKSB7CgogICAgICAgICRoZWFkZXJzICA9ICdNSU1FLVZlcnNpb246IDEuMCcgLiAiXHJcbiI7CiAgICAgICAgJGhlYWRlcnMgLj0gJ0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04JyAuICJcclxuIjsKCiAgICAgICAgJGVtYWlsVGV4dCA9IGZpbGVfZ2V0X2NvbnRlbnRzKFJPT1QgLiAkdGhpcy0+bWFpbFRwbCk7CiAgICAgICAgJGVtYWlsVGV4dCA9IHN0cl9yZXBsYWNlKCclZnVsbE5hbWUlJywgJGZ1bGxOYW1lLCAkZW1haWxUZXh0KTsKICAgICAgICAkZW1haWxUZXh0ID0gc3RyX3JlcGxhY2UoJyVsb2dpbiUnLCAkbG9naW4sICRlbWFpbFRleHQpOwogICAgICAgICRlbWFpbFRleHQgPSBzdHJfcmVwbGFjZSgnJXBhc3N3b3JkJScsICRwYXNzd29yZCwgJGVtYWlsVGV4dCk7CiAgICAgICAgJGVtYWlsVGV4dCA9IHN0cl9yZXBsYWNlKCclZW1haWwlJywgJGVtYWlsLCAkZW1haWxUZXh0KTsKCiAgICAgICAgbWFpbCgkZW1haWwsICLQlNC70Y8g0LLQsNGBINGB0L7Qt9C00LDQvdCwINGD0YfQtdGC0L3QsNGPINC30LDQv9C40YHRjCIsICRlbWFpbFRleHQsICRoZWFkZXJzKTsKCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGluZGV4KCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwZXJtaXNzaW9uJ10gPSAkX1NFU1NJT05bJ3JvbGVfaWQnXTsKCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd0aXRsZSddID0gItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCI7CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd1c2Vyc0xpc3QnXSA9ICR0aGlzLT5tb2RlbC0+Z2V0VXNlcnMoKTsKICAgICAgICAkdGhpcy0+dmlldy0+cmVuZGVyKCR0aGlzLT5wYWdlVHBsLCAkdGhpcy0+cGFnZURhdGEpOwoKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckJ5SWQoKSB7CgogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgfQoKICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2lkJ10pICYmICRfUE9TVFsnaWQnXSAhPSAnJykgewogICAgICAgICAgICAkdXNlcklkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkdXNlckluZm8gPSBqc29uX2VuY29kZSgkdGhpcy0+bW9kZWwtPmdldFVzZXJCeUlkKCR1c2VySWQpKTsKICAgICAgICAgICAgZWNobyAkdXNlckluZm87CgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IGZhbHNlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCIpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzUm9sZXMoKSB7CiAgICAgICAgCiAgICAgICAgaWYoISRfU0VTU0lPTlsndXNlciddKSB7CiAgICAgICAgICAgIGhlYWRlcigiTG9jYXRpb246IC8iKTsKICAgICAgICB9CgogICAgICAgICRyb2xlcyA9ICR0aGlzLT5tb2RlbC0+Z2V0VXNlcnNSb2xlcygpOwogICAgICAgIGlmKGVtcHR5KCRyb2xlcykpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwIikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoJHJvbGVzKTsKICAgICAgICB9CgogICAgfSAgCgogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVVzZXJEYXRhKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnaWQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnZnVsbE5hbWUnXSkgJiYgIWVtcHR5KCRfUE9TVFsnbG9naW4nXSkgJiYgIWVtcHR5KCRfUE9TVFsnZW1haWwnXSkgJiYgIWVtcHR5KCRfUE9TVFsncm9sZSddKSkgewogICAgICAgICAgICAkdXNlcklkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkdXNlckZ1bGxOYW1lID0gJF9QT1NUWydmdWxsTmFtZSddOwogICAgICAgICAgICAkdXNlckxvZ2luID0gJF9QT1NUWydsb2dpbiddOwogICAgICAgICAgICAkdXNlckVtYWlsID0gJF9QT1NUWydlbWFpbCddOwogICAgICAgICAgICAkdXNlclJvbGUgPSAkX1BPU1RbJ3JvbGUnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT51cGRhdGVVc2VySW5mbygkdXNlcklkLCAkdXNlckZ1bGxOYW1lLCAkdXNlckxvZ2luLCAkdXNlckVtYWlsLCAkdXNlclJvbGUpKSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YHQvtGF0YDQsNC90LXQvdGLIikpOyAgICAKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IGZhbHNlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCDRgdC+0YXRgNCw0L3QtdC90LjRjyDQtNCw0L3QvdGL0YUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQl9Cw0L\/QvtC70L3QuNGC0LUg0LLRgdC1INC00LDQvdC90YvQtSIpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVVc2VyKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnaWQnXSkpIHsKICAgICAgICAgICAgJHVzZXJJZCA9ICRfUE9TVFsnaWQnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT5kZWxldGVVc2VyKCR1c2VySWQpKSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRg9GB0L\/QtdGI0L3QviDRg9C00LDQu9C10L0iKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCDRg9C00LDQu9C10L3QuNGPIikpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J\/RgNC+0LjQt9C+0YjQu9CwINC+0YjQuNCx0LrQsC4g0J\/QvtC\/0YDQvtCx0YPQudGC0LUg0L\/QvtC30LbQtSIpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGROZXdVc2VyKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnZnVsbE5hbWUnXSkgJiYgIWVtcHR5KCRfUE9TVFsncGFzc3dvcmQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnbG9naW4nXSkgJiYgIWVtcHR5KCRfUE9TVFsnZW1haWwnXSkgJiYgIWVtcHR5KCRfUE9TVFsncm9sZSddKSkgewogICAgICAgICAgICAkbmV3VXNlciA9ICRfUE9TVFsnZnVsbE5hbWUnXTsKICAgICAgICAgICAgJG5ld0xvZ2luID0gJF9QT1NUWydsb2dpbiddOwogICAgICAgICAgICAkbmV3RW1haWwgPSAkX1BPU1RbJ2VtYWlsJ107CiAgICAgICAgICAgICRuZXdQYXNzd29yZCA9IG1kNSgkX1BPU1RbJ3Bhc3N3b3JkJ10pOwogICAgICAgICAgICAkcGFzc3dvcmRGb3JFbWFpbCA9ICRfUE9TVFsncGFzc3dvcmQnXTsKICAgICAgICAgICAgJG5ld1JvbGUgPSAkX1BPU1RbJ3JvbGUnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT5hZGROZXdVc2VyKCRuZXdMb2dpbiwgJG5ld1VzZXIsICRuZXdFbWFpbCwgJG5ld1Bhc3N3b3JkLCAkbmV3Um9sZSkpIHsKICAgICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQndC+0LLRi9C5INC\/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQtNC+0LHQsNCy0LvQtdC9IikpOyAKICAgICAgICAgICAgICAgJHRoaXMtPnNlbmRSZWdpc3RlckVtYWlsKCRuZXdVc2VyLCAkbmV3TG9naW4sICRwYXNzd29yZEZvckVtYWlsLCAkbmV3RW1haWwpOyAgIAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwINC00L7QsdCw0LLQu9C10L3QuNGPIikpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0JfQsNC\/0L7Qu9C90LjRgtC1INCy0YHQtSDQtNCw0L3QvdGL0LUiKSk7CiAgICAgICAgfQoKICAgIH0KCgp9Cg==&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.2&#8243;]PD9waHAKCmNsYXNzIFVzZXJzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXJ7CgogICAgcHJpdmF0ZSAkcGFnZVRwbCA9ICIvdmlld3MvdXNlcnMudHBsLnBocCI7CiAgICBwcml2YXRlICRtYWlsVHBsID0gIi92aWV3cy9tYWlsL25ld1VzZXIudHBsLmh0bWwiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICAkdGhpcy0+bW9kZWwgPSBuZXcgVXNlcnNNb2RlbCgpOwogICAgICAgICR0aGlzLT52aWV3ID0gbmV3IFZpZXcoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZFJlZ2lzdGVyRW1haWwoJGZ1bGxOYW1lLCAkbG9naW4sICRwYXNzd29yZCwgJGVtYWlsKSB7CgogICAgICAgICRoZWFkZXJzICA9ICdNSU1FLVZlcnNpb246IDEuMCcgLiAiXHJcbiI7CiAgICAgICAgJGhlYWRlcnMgLj0gJ0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04JyAuICJcclxuIjsKCiAgICAgICAgJGVtYWlsVGV4dCA9IGZpbGVfZ2V0X2NvbnRlbnRzKFJPT1QgLiAkdGhpcy0+bWFpbFRwbCk7CiAgICAgICAgJGVtYWlsVGV4dCA9IHN0cl9yZXBsYWNlKCclZnVsbE5hbWUlJywgJGZ1bGxOYW1lLCAkZW1haWxUZXh0KTsKICAgICAgICAkZW1haWxUZXh0ID0gc3RyX3JlcGxhY2UoJyVsb2dpbiUnLCAkbG9naW4sICRlbWFpbFRleHQpOwogICAgICAgICRlbWFpbFRleHQgPSBzdHJfcmVwbGFjZSgnJXBhc3N3b3JkJScsICRwYXNzd29yZCwgJGVtYWlsVGV4dCk7CiAgICAgICAgJGVtYWlsVGV4dCA9IHN0cl9yZXBsYWNlKCclZW1haWwlJywgJGVtYWlsLCAkZW1haWxUZXh0KTsKCiAgICAgICAgbWFpbCgkZW1haWwsICLQlNC70Y8g0LLQsNGBINGB0L7Qt9C00LDQvdCwINGD0YfQtdGC0L3QsNGPINC30LDQv9C40YHRjCIsICRlbWFpbFRleHQsICRoZWFkZXJzKTsKCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGluZGV4KCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwZXJtaXNzaW9uJ10gPSAkX1NFU1NJT05bJ3JvbGVfaWQnXTsKCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd0aXRsZSddID0gItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCI7CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd1c2Vyc0xpc3QnXSA9ICR0aGlzLT5tb2RlbC0+Z2V0VXNlcnMoKTsKICAgICAgICAkdGhpcy0+dmlldy0+cmVuZGVyKCR0aGlzLT5wYWdlVHBsLCAkdGhpcy0+cGFnZURhdGEpOwoKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckJ5SWQoKSB7CgogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgfQoKICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2lkJ10pICYmICRfUE9TVFsnaWQnXSAhPSAnJykgewogICAgICAgICAgICAkdXNlcklkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkdXNlckluZm8gPSBqc29uX2VuY29kZSgkdGhpcy0+bW9kZWwtPmdldFVzZXJCeUlkKCR1c2VySWQpKTsKICAgICAgICAgICAgZWNobyAkdXNlckluZm87CgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IGZhbHNlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCIpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzUm9sZXMoKSB7CiAgICAgICAgCiAgICAgICAgaWYoISRfU0VTU0lPTlsndXNlciddKSB7CiAgICAgICAgICAgIGhlYWRlcigiTG9jYXRpb246IC8iKTsKICAgICAgICB9CgogICAgICAgICRyb2xlcyA9ICR0aGlzLT5tb2RlbC0+Z2V0VXNlcnNSb2xlcygpOwogICAgICAgIGlmKGVtcHR5KCRyb2xlcykpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwIikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoJHJvbGVzKTsKICAgICAgICB9CgogICAgfSAgCgogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVVzZXJEYXRhKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnaWQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnZnVsbE5hbWUnXSkgJiYgIWVtcHR5KCRfUE9TVFsnbG9naW4nXSkgJiYgIWVtcHR5KCRfUE9TVFsnZW1haWwnXSkgJiYgIWVtcHR5KCRfUE9TVFsncm9sZSddKSkgewogICAgICAgICAgICAkdXNlcklkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkdXNlckZ1bGxOYW1lID0gJF9QT1NUWydmdWxsTmFtZSddOwogICAgICAgICAgICAkdXNlckxvZ2luID0gJF9QT1NUWydsb2dpbiddOwogICAgICAgICAgICAkdXNlckVtYWlsID0gJF9QT1NUWydlbWFpbCddOwogICAgICAgICAgICAkdXNlclJvbGUgPSAkX1BPU1RbJ3JvbGUnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT51cGRhdGVVc2VySW5mbygkdXNlcklkLCAkdXNlckZ1bGxOYW1lLCAkdXNlckxvZ2luLCAkdXNlckVtYWlsLCAkdXNlclJvbGUpKSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YHQvtGF0YDQsNC90LXQvdGLIikpOyAgICAKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IGZhbHNlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCDRgdC+0YXRgNCw0L3QtdC90LjRjyDQtNCw0L3QvdGL0YUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQl9Cw0L\/QvtC70L3QuNGC0LUg0LLRgdC1INC00LDQvdC90YvQtSIpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVVc2VyKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnaWQnXSkpIHsKICAgICAgICAgICAgJHVzZXJJZCA9ICRfUE9TVFsnaWQnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT5kZWxldGVVc2VyKCR1c2VySWQpKSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRg9GB0L\/QtdGI0L3QviDRg9C00LDQu9C10L0iKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCDRg9C00LDQu9C10L3QuNGPIikpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J\/RgNC+0LjQt9C+0YjQu9CwINC+0YjQuNCx0LrQsC4g0J\/QvtC\/0YDQvtCx0YPQudGC0LUg0L\/QvtC30LbQtSIpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGROZXdVc2VyKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnZnVsbE5hbWUnXSkgJiYgIWVtcHR5KCRfUE9TVFsncGFzc3dvcmQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnbG9naW4nXSkgJiYgIWVtcHR5KCRfUE9TVFsnZW1haWwnXSkgJiYgIWVtcHR5KCRfUE9TVFsncm9sZSddKSkgewogICAgICAgICAgICAkbmV3VXNlciA9ICRfUE9TVFsnZnVsbE5hbWUnXTsKICAgICAgICAgICAgJG5ld0xvZ2luID0gJF9QT1NUWydsb2dpbiddOwogICAgICAgICAgICAkbmV3RW1haWwgPSAkX1BPU1RbJ2VtYWlsJ107CiAgICAgICAgICAgICRuZXdQYXNzd29yZCA9IG1kNSgkX1BPU1RbJ3Bhc3N3b3JkJ10pOwogICAgICAgICAgICAkcGFzc3dvcmRGb3JFbWFpbCA9ICRfUE9TVFsncGFzc3dvcmQnXTsKICAgICAgICAgICAgJG5ld1JvbGUgPSAkX1BPU1RbJ3JvbGUnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT5hZGROZXdVc2VyKCRuZXdMb2dpbiwgJG5ld1VzZXIsICRuZXdFbWFpbCwgJG5ld1Bhc3N3b3JkLCAkbmV3Um9sZSkpIHsKICAgICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQndC+0LLRi9C5INC\/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQtNC+0LHQsNCy0LvQtdC9IikpOyAKICAgICAgICAgICAgICAgJHRoaXMtPnNlbmRSZWdpc3RlckVtYWlsKCRuZXdVc2VyLCAkbmV3TG9naW4sICRwYXNzd29yZEZvckVtYWlsLCAkbmV3RW1haWwpOyAgIAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwINC00L7QsdCw0LLQu9C10L3QuNGPIikpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0JfQsNC\/0L7Qu9C90LjRgtC1INCy0YHQtSDQtNCw0L3QvdGL0LUiKSk7CiAgICAgICAgfQoKICAgIH0KCgp9Cg==[\/et_pb_dmb_code_snippet][et_pb_dmb_code_snippet title=&#8221;Code lesson (UsersModel.php)&#8221; code=&#8221;PD9waHAKCmNsYXNzIFVzZXJzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzKCkgewogICAgICAgICRzcWwgPSAiU0VMRUNUIHVzZXJzLmlkLCB1c2Vycy5sb2dpbiwgdXNlcnMuZnVsbE5hbWUsIHVzZXJzLmVtYWlsLCByb2xlLm5hbWUgYXMgcm9sZSBGUk9NIHVzZXJzCiAgICAgICAgICAgICAgICBJTk5FUiBKT0lOIHJvbGUgT04gdXNlcnMucm9sZV9pZCA9IHJvbGUuaWQiOwoKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQykpIHsKICAgICAgICAgICAgJHJlc3VsdFskcm93WydpZCddXSA9ICRyb3c7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyQnlJZCgkdXNlcklkKSB7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgdXNlcnMuaWQsIHVzZXJzLmVtYWlsLCB1c2Vycy5mdWxsTmFtZSwgdXNlcnMubG9naW4sIHJvbGUubmFtZSBhcyByb2xlIEZST00gdXNlcnMKICAgICAgICAgICAgICAgIElOTkVSIEpPSU4gcm9sZSBPTiB1c2Vycy5yb2xlX2lkID0gcm9sZS5pZAogICAgICAgICAgICAgICAgV0hFUkUgdXNlcnMuaWQgPSA6aWQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjppZCIsICR1c2VySWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7CiAgICAgICAgaWYoIWVtcHR5KCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzUm9sZXMoKSB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NIHJvbGUiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0W10gPSAkcm93OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlVXNlckluZm8oJHVzZXJJZCwgJHVzZXJGdWxsTmFtZSwgJHVzZXJMb2dpbiwgJHVzZXJFbWFpbCwgJHVzZXJSb2xlKSB7CiAgICAgICAgJHNxbCA9ICJVUERBVEUgdXNlcnMKICAgICAgICAgICAgICAgIFNFVCBsb2dpbiA9IDpsb2dpbiwgZnVsbE5hbWUgPSA6ZnVsbE5hbWUsIGVtYWlsID0gOmVtYWlsLCByb2xlX2lkID0gOnJvbGVJZAogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA6aWQgICAgCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsb2dpbiIsICR1c2VyTG9naW4sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6ZnVsbE5hbWUiLCAkdXNlckZ1bGxOYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOmVtYWlsIiwgJHVzZXJFbWFpbCwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpyb2xlSWQiLCAkdXNlclJvbGUsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkdXNlcklkLCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgICAgICByZXR1cm4gdHJ1ZTsgICAgICAgIAogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGROZXdVc2VyKCR1c2VyTG9naW4sICR1c2VyRnVsbE5hbWUsICR1c2VyRW1haWwsICR1c2VyUGFzc3dvcmQsICR1c2VyUm9sZSkgewogICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gdXNlcnMobG9naW4sIGZ1bGxOYW1lLCBlbWFpbCwgcGFzc3dvcmQsIHJvbGVfaWQpCiAgICAgICAgICAgICAgICBWQUxVRVMgKDpsb2dpbiwgOmZ1bGxOYW1lLCA6ZW1haWwsIDpwYXNzd29yZCwgOnJvbGVfaWQpICAgCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsb2dpbiIsICR1c2VyTG9naW4sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6ZnVsbE5hbWUiLCAkdXNlckZ1bGxOYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOmVtYWlsIiwgJHVzZXJFbWFpbCwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwYXNzd29yZCIsICR1c2VyUGFzc3dvcmQsIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6cm9sZV9pZCIsICR1c2VyUm9sZSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlVXNlcigkaWQpIHsKICAgICAgICAkc3FsID0gIkRFTEVURSBGUk9NIHVzZXJzIFdIRVJFIGlkID0gOmlkIjsKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKCn0K&#8221; admin_label=&#8221;\u041a\u043e\u0434 \u0443\u0440\u043e\u043a\u0430&#8221; style=&#8221;docco&#8221; linenums=&#8221;on&#8221; usetabwidth=&#8221;on&#8221; tabwidth=&#8221;4&#8243; _builder_version=&#8221;3.2&#8243;]PD9waHAKCmNsYXNzIFVzZXJzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzKCkgewogICAgICAgICRzcWwgPSAiU0VMRUNUIHVzZXJzLmlkLCB1c2Vycy5sb2dpbiwgdXNlcnMuZnVsbE5hbWUsIHVzZXJzLmVtYWlsLCByb2xlLm5hbWUgYXMgcm9sZSBGUk9NIHVzZXJzCiAgICAgICAgICAgICAgICBJTk5FUiBKT0lOIHJvbGUgT04gdXNlcnMucm9sZV9pZCA9IHJvbGUuaWQiOwoKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQykpIHsKICAgICAgICAgICAgJHJlc3VsdFskcm93WydpZCddXSA9ICRyb3c7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyQnlJZCgkdXNlcklkKSB7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgdXNlcnMuaWQsIHVzZXJzLmVtYWlsLCB1c2Vycy5mdWxsTmFtZSwgdXNlcnMubG9naW4sIHJvbGUubmFtZSBhcyByb2xlIEZST00gdXNlcnMKICAgICAgICAgICAgICAgIElOTkVSIEpPSU4gcm9sZSBPTiB1c2Vycy5yb2xlX2lkID0gcm9sZS5pZAogICAgICAgICAgICAgICAgV0hFUkUgdXNlcnMuaWQgPSA6aWQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjppZCIsICR1c2VySWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7CiAgICAgICAgaWYoIWVtcHR5KCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzUm9sZXMoKSB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NIHJvbGUiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0W10gPSAkcm93OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlVXNlckluZm8oJHVzZXJJZCwgJHVzZXJGdWxsTmFtZSwgJHVzZXJMb2dpbiwgJHVzZXJFbWFpbCwgJHVzZXJSb2xlKSB7CiAgICAgICAgJHNxbCA9ICJVUERBVEUgdXNlcnMKICAgICAgICAgICAgICAgIFNFVCBsb2dpbiA9IDpsb2dpbiwgZnVsbE5hbWUgPSA6ZnVsbE5hbWUsIGVtYWlsID0gOmVtYWlsLCByb2xlX2lkID0gOnJvbGVJZAogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA6aWQgICAgCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsb2dpbiIsICR1c2VyTG9naW4sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6ZnVsbE5hbWUiLCAkdXNlckZ1bGxOYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOmVtYWlsIiwgJHVzZXJFbWFpbCwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpyb2xlSWQiLCAkdXNlclJvbGUsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkdXNlcklkLCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgICAgICByZXR1cm4gdHJ1ZTsgICAgICAgIAogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGROZXdVc2VyKCR1c2VyTG9naW4sICR1c2VyRnVsbE5hbWUsICR1c2VyRW1haWwsICR1c2VyUGFzc3dvcmQsICR1c2VyUm9sZSkgewogICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gdXNlcnMobG9naW4sIGZ1bGxOYW1lLCBlbWFpbCwgcGFzc3dvcmQsIHJvbGVfaWQpCiAgICAgICAgICAgICAgICBWQUxVRVMgKDpsb2dpbiwgOmZ1bGxOYW1lLCA6ZW1haWwsIDpwYXNzd29yZCwgOnJvbGVfaWQpICAgCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsb2dpbiIsICR1c2VyTG9naW4sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6ZnVsbE5hbWUiLCAkdXNlckZ1bGxOYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOmVtYWlsIiwgJHVzZXJFbWFpbCwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwYXNzd29yZCIsICR1c2VyUGFzc3dvcmQsIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6cm9sZV9pZCIsICR1c2VyUm9sZSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlVXNlcigkaWQpIHsKICAgICAgICAkc3FsID0gIkRFTEVURSBGUk9NIHVzZXJzIFdIRVJFIGlkID0gOmlkIjsKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKCn0K[\/et_pb_dmb_code_snippet][et_pb_comments _builder_version=&#8221;4.4.3&#8243; custom_margin=&#8221;30px||||false|false&#8221; hover_enabled=&#8221;0&#8243;][\/et_pb_comments][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial we will begin to make management users section. Our task today will be to select all users from database with their roles. We will make select from two tables, that&#8217;s why we must use INNER JOIN SQL operator PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9InJ1IiBkYXRhLW5nLWFwcD0idXNlcnMiPgo8aGVhZD4KCiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8YmFzZSBocmVmPSIvY2FiaW5ldC91c2Vycy8iPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1VQS1Db21wYXRpYmxlIiBjb250ZW50PSJJRT1lZGdlIj4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICA8dGl0bGU+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC90aXRsZT4KCiAgICA8IS0tIEJvb3RzdHJhcCBDb3JlIENTUyAtLT4KICAgIDxsaW5rIGhyZWY9Ii9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBNZXRpc01lbnUgQ1NTIC0tPgogICAgPGxpbmsgaHJlZj0iL2Nzcy9hZG1pbi9tZXRpc01lbnUubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KCiAgICA8IS0tIEN1c3RvbSBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL3NiLWFkbWluLTIuY3NzIiByZWw9InN0eWxlc2hlZXQiPgoKICAgIDwhLS0gTW9ycmlzIENoYXJ0cyBDU1MgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2FkbWluL21vcnJpcy5jc3MiIHJlbD0ic3R5bGVzaGVldCI+CgogICAgPCEtLSBDdXN0b20gRm9udHMgLS0+CiAgICA8bGluayBocmVmPSIvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj4KCiAgICA8IS0tIEhUTUw1IFNoaW0gYW5kIFJlc3BvbmQuanMgSUU4IHN1cHBvcnQgb2YgSFRNTDUgZWxlbWVudHMgYW5kIG1lZGlhIHF1ZXJpZXMgLS0+CiAgICA8IS0tIFdBUk5JTkc6IFJlc3BvbmQuanMgZG9lc24ndCB3b3JrIGlmIHlvdSB2aWV3IHRoZSBwYWdlIHZpYSBmaWxlOi8vIC0tPgogICAgPCEtLVtpZiBsdCBJRSA5XT4KICAgICAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9vc3MubWF4Y2RuLmNvbS9saWJzL2h0bWw1c2hpdi8zLjcuMC9odG1sNXNoaXYuanMiPjwvc2NyaXB0PgogICAgICAgIDxzY3JpcHQgc3JjPSJodHRwczovL29zcy5tYXhjZG4uY29tL2xpYnMvcmVzcG9uZC5qcy8xLjQuMi9yZXNwb25kLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8IVtlbmRpZl0tLT4KCiAgICA8c3R5bGU+CiAgICAgICAgdGFibGUgdHI6aG92ZXIgewogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgfQogICAgPC9zdHlsZT4KCjwvaGVhZD4KCjxib2R5PgoKICAgIDxkaXYgaWQ9IndyYXBwZXIiPgoKICAgICAgICA8IS0tIE5hdmlnYXRpb24gLS0+CiAgICAgICAgPG5hdiBjbGFzcz0ibmF2YmFyIG5hdmJhci1kZWZhdWx0IG5hdmJhci1zdGF0aWMtdG9wIiByb2xlPSJuYXZpZ2F0aW9uIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgogICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJuYXZiYXItdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iY29sbGFwc2UiIGRhdGEtdGFyZ2V0PSIubmF2YmFyLWNvbGxhcHNlIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJuYXZiYXItYnJhbmQiIGhyZWY9ImluZGV4Lmh0bWwiPtCa0LDQsdC40L3QtdGCPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci1oZWFkZXIgLS0+CgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdiBuYXZiYXItdG9wLWxpbmtzIG5hdmJhci1yaWdodCI+CiAgICAgICAgICAgICAgICA8IS0tIC8uZHJvcGRvd24gLS0+CiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9ImRyb3Bkb3duIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGhyZWY9IiMiPgogICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiA8aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tdXNlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIjIj48aSBjbGFzcz0iZmEgZmEtdXNlciBmYS1mdyI+PC9pPiDQn9GA0L7RhNC40LvRjDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJkaXZpZGVyIj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iL2NhYmluZXQvbG9nb3V0Ij48aSBjbGFzcz0iZmEgZmEtc2lnbi1vdXQgZmEtZnciPjwvaT4g0JLRi9C50YLQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93bi11c2VyIC0tPgogICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwhLS0gLy5kcm9wZG93biAtLT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPCEtLSAvLm5hdmJhci10b3AtbGlua3MgLS0+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZiYXItZGVmYXVsdCBzaWRlYmFyIiByb2xlPSJuYXZpZ2F0aW9uIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItbmF2IG5hdmJhci1jb2xsYXBzZSI+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXYiIGlkPSJzaWRlLW1lbnUiPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iL2NhYmluZXQiPjxpIGNsYXNzPSJmYSBmYS1hcmVhLWNoYXJ0Ij48L2k+INCh0YLQsNGC0LjRgdGC0LjQutCwPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvY2FiaW5ldC9wcm9kdWN0cyI+PGkgY2xhc3M9ImZhIGZhLWNhcnQtcGx1cyI+PC9pPiDQotC+0LLQsNGA0Ys8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii9jYWJpbmV0L3VzZXJzIj48aSBjbGFzcz0iZmEgZmEtdXNlci1vIj48L2k+INCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8IS0tIC8uc2lkZWJhci1jb2xsYXBzZSAtLT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwhLS0gLy5uYXZiYXItc3RhdGljLXNpZGUgLS0+CiAgICAgICAgPC9uYXY+CgogICAgICAgIAogICAgICAgIDxkaXYgaWQ9InBhZ2Utd3JhcHBlciIgZGF0YS1uZy1jb250cm9sbGVyPSJ1c2Vyc0NvbnRyb2xsZXIiPgogICAgICAgIDw\/cGhwIGlmKCRwYWdlRGF0YVsncGVybWlzc2lvbiddID09IDEpIHsgPz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJwYWdlLWhlYWRlciI+PD9waHAgZWNobyAkcGFnZURhdGFbJ3RpdGxlJ107ID8+PC9oMT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBhbmVsLWhlYWRpbmciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWJhci1jaGFydC1vIGZhLWZ3Ij48L2k+0J\/QvtC70YzQt9C+0LLQsNGC0LXQu9C4CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbC1oZWFkaW5nIC0tPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGFibGUtcmVzcG9uc2l2ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9InRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLWhvdmVyIHRhYmxlLXN0cmlwZWQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPtCY0LzRjzwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+0JvQvtCz0LjQvTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+RW1haWw8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPtCg0L7Qu9GMPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRwYWdlRGF0YVsndXNlcnNMaXN0J10gYXMgJGtleSA9PiAkdmFsdWUpIHsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgZGF0YS1uZy1jbGljaz0ic2hvd0VkaXRGb3JtKCk7IGdldFVzZXJEYXRhKDw\/cGhwIGVjaG8gJHZhbHVlWydpZCddOyA\/Pik7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydmdWxsTmFtZSddOyA\/PjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48P3BocCBlY2hvICR2YWx1ZVsnbG9naW4nXTsgPz48L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD9waHAgZWNobyAkdmFsdWVbJ2VtYWlsJ107ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw\/cGhwIGVjaG8gJHZhbHVlWydyb2xlJ107ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA\/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnRhYmxlLXJlc3BvbnNpdmUgLS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLmNvbC1sZy00IChuZXN0ZWQpIC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctOCAobmVzdGVkKSAtLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAvLnJvdyAtLT4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1sZy0xMiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlZGl0LXVzZXI+PC9lZGl0LXVzZXI+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbC1ib2R5IC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwhLS0gLy5wYW5lbCAtLT4KICAgICAgICAgICAgICAgICAgICA8IS0tIC8ucGFuZWwgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwhLS0gLy5jb2wtbGctOCAtLT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8aDEgY2xhc3M9InBhZ2UtaGVhZGVyIj7QlNC+0LHQsNCy0LjRgtGMINC90L7QstC+0LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y88L2gxPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWxnLTEyIj4KICAgICAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz0iZm9ybS1ob3Jpem9udGFsIiBtZXRob2Q9InBvc3QiIGRhdGEtbmctc3VibWl0PSJhZGROZXdVc2VyKCkiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3VXNlciI+0KTQmNCePC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ibmV3VXNlciIgbmFtZT0ibmV3VXNlciIgZGF0YS1uZy1tb2RlbD0ibmV3VXNlciIgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1tZCIgcmVxdWlyZWQ9InRydWUiIHR5cGU9InRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3TG9naW4iPtCb0L7Qs9C40L08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJuZXdMb2dpbiIgbmFtZT0ibmV3TG9naW4iIGRhdGEtbmctbW9kZWw9Im5ld0xvZ2luIiBjbGFzcz0iZm9ybS1jb250cm9sICIgcmVxdWlyZWQ9InRydWUiIHR5cGU9InRleHQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3RW1haWwiPkVtYWlsPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ibmV3RW1haWwiIG5hbWU9Im5ld0VtYWlsIiBkYXRhLW5nLW1vZGVsPSJuZXdFbWFpbCIgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1tZCIgcmVxdWlyZWQ9InRydWUiIHR5cGU9ImVtYWlsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJjb2wtbWQtNCBjb250cm9sLWxhYmVsIiBmb3I9Im5ld1Bhc3N3b3JkIj7Qn9Cw0YDQvtC70Yw8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPSJuZXdQYXNzd29yZCIgbmFtZT0ibmV3UGFzc3dvcmQiIGRhdGEtbmctbW9kZWw9Im5ld1Bhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIGlucHV0LW1kIiByZXF1aXJlZD0idHJ1ZSIgdHlwZT0icGFzc3dvcmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1tZC00IGNvbnRyb2wtbGFiZWwiIGZvcj0ibmV3Um9sZSI+0KDQvtC70Yw8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJuZXdSb2xlIiBkYXRhLW5nLW1vZGVsPSJuZXdSb2xlIiBjbGFzcz0iZm9ybS1jb250cm9sIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+0JLRi9Cx0LXRgNC40YLQtSDRgNC+0LvRjDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+0JDQtNC80LjQvdC40YHRgtGA0LDRgtC+0YA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjIiPtCc0LXQvdC10LTQttC10YA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00IGNvbC1tZC1vZmZzZXQtNCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc3VjY2VzcyI+0KHQvtGF0YDQsNC90LjRgtGMPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDw\/cGhwIH0gZWxzZSB7ID8+CiAgICAgICAgICAgIDxoMSBzdHlsZT0ibWFyZ2luLXRvcDowOyBwYWRkaW5nLXRvcDoxMHB4OyI+0KMg0LLQsNGBINC90LXQtNC+0YHRgtCw0YLQvtGH0L3QviDQv9GA0LDQsiDQtNC70Y8g0YDQsNCx0L7RgtGLINGBINC\/0L7Qu9GM0LfQvtCy0LDRgtC10LvRj9C80Lg8L2gxPgogICAgICAgIDw\/cGhwIH0gPz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8IS0tIC8jcGFnZS13cmFwcGVyIC0tPgogICAgCiAgICA8L2Rpdj4KICAgIDwhLS0gLyN3cmFwcGVyIC0tPgoKICAgIDwhLS0galF1ZXJ5IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9qcXVlcnkuanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQW5ndWxhciAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYW5ndWxhci5taW4uanMiPjwvc2NyaXB0PgoKICAgIDwhLS0gQW5ndWxhciBSb3V0ZSAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYW5ndWxhci1yb3V0ZS5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi91c2Vycy5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBCb290c3RyYXAgQ29yZSBKYXZhU2NyaXB0IC0tPgogICAgPHNjcmlwdCBzcmM9Ii9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KCiAgICA8IS0tIE1ldGlzIE1lbnUgUGx1Z2luIEphdmFTY3JpcHQgLS0+CiAgICA8c2NyaXB0IHNyYz0iL2pzL2FkbWluL21ldGlzTWVudS5qcyI+PC9zY3JpcHQ+CgogICAgPCEtLSBDdXN0b20gVGhlbWUgSmF2YVNjcmlwdCAtLT4KICAgIDxzY3JpcHQgc3JjPSIvanMvYWRtaW4vc2ItYWRtaW4tMi5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCBzcmM9Ii9qcy9hZG1pbi9wcm9kdWN0cy5qcyI+PC9zY3JpcHQ+Cgo8L2JvZHk+Cgo8L2h0bWw+Cg==PD9waHAKCmNsYXNzIFVzZXJzQ29udHJvbGxlciBleHRlbmRzIENvbnRyb2xsZXJ7CgogICAgcHJpdmF0ZSAkcGFnZVRwbCA9ICIvdmlld3MvdXNlcnMudHBsLnBocCI7CiAgICBwcml2YXRlICRtYWlsVHBsID0gIi92aWV3cy9tYWlsL25ld1VzZXIudHBsLmh0bWwiOwoKICAgIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsKICAgICAgICAkdGhpcy0+bW9kZWwgPSBuZXcgVXNlcnNNb2RlbCgpOwogICAgICAgICR0aGlzLT52aWV3ID0gbmV3IFZpZXcoKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gc2VuZFJlZ2lzdGVyRW1haWwoJGZ1bGxOYW1lLCAkbG9naW4sICRwYXNzd29yZCwgJGVtYWlsKSB7CgogICAgICAgICRoZWFkZXJzICA9ICdNSU1FLVZlcnNpb246IDEuMCcgLiAiXHJcbiI7CiAgICAgICAgJGhlYWRlcnMgLj0gJ0NvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04JyAuICJcclxuIjsKCiAgICAgICAgJGVtYWlsVGV4dCA9IGZpbGVfZ2V0X2NvbnRlbnRzKFJPT1QgLiAkdGhpcy0+bWFpbFRwbCk7CiAgICAgICAgJGVtYWlsVGV4dCA9IHN0cl9yZXBsYWNlKCclZnVsbE5hbWUlJywgJGZ1bGxOYW1lLCAkZW1haWxUZXh0KTsKICAgICAgICAkZW1haWxUZXh0ID0gc3RyX3JlcGxhY2UoJyVsb2dpbiUnLCAkbG9naW4sICRlbWFpbFRleHQpOwogICAgICAgICRlbWFpbFRleHQgPSBzdHJfcmVwbGFjZSgnJXBhc3N3b3JkJScsICRwYXNzd29yZCwgJGVtYWlsVGV4dCk7CiAgICAgICAgJGVtYWlsVGV4dCA9IHN0cl9yZXBsYWNlKCclZW1haWwlJywgJGVtYWlsLCAkZW1haWxUZXh0KTsKCiAgICAgICAgbWFpbCgkZW1haWwsICLQlNC70Y8g0LLQsNGBINGB0L7Qt9C00LDQvdCwINGD0YfQtdGC0L3QsNGPINC30LDQv9C40YHRjCIsICRlbWFpbFRleHQsICRoZWFkZXJzKTsKCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGluZGV4KCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWydwZXJtaXNzaW9uJ10gPSAkX1NFU1NJT05bJ3JvbGVfaWQnXTsKCiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd0aXRsZSddID0gItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvQuCI7CiAgICAgICAgJHRoaXMtPnBhZ2VEYXRhWyd1c2Vyc0xpc3QnXSA9ICR0aGlzLT5tb2RlbC0+Z2V0VXNlcnMoKTsKICAgICAgICAkdGhpcy0+dmlldy0+cmVuZGVyKCR0aGlzLT5wYWdlVHBsLCAkdGhpcy0+cGFnZURhdGEpOwoKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VXNlckJ5SWQoKSB7CgogICAgICAgIGlmKCEkX1NFU1NJT05bJ3VzZXInXSkgewogICAgICAgICAgICBoZWFkZXIoIkxvY2F0aW9uOiAvIik7CiAgICAgICAgfQoKICAgICAgICBpZihpc3NldCgkX1BPU1RbJ2lkJ10pICYmICRfUE9TVFsnaWQnXSAhPSAnJykgewogICAgICAgICAgICAkdXNlcklkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkdXNlckluZm8gPSBqc29uX2VuY29kZSgkdGhpcy0+bW9kZWwtPmdldFVzZXJCeUlkKCR1c2VySWQpKTsKICAgICAgICAgICAgZWNobyAkdXNlckluZm87CgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IGZhbHNlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCIpKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzUm9sZXMoKSB7CiAgICAgICAgCiAgICAgICAgaWYoISRfU0VTU0lPTlsndXNlciddKSB7CiAgICAgICAgICAgIGhlYWRlcigiTG9jYXRpb246IC8iKTsKICAgICAgICB9CgogICAgICAgICRyb2xlcyA9ICR0aGlzLT5tb2RlbC0+Z2V0VXNlcnNSb2xlcygpOwogICAgICAgIGlmKGVtcHR5KCRyb2xlcykpIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwIikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoJHJvbGVzKTsKICAgICAgICB9CgogICAgfSAgCgogICAgcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVVzZXJEYXRhKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnaWQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnZnVsbE5hbWUnXSkgJiYgIWVtcHR5KCRfUE9TVFsnbG9naW4nXSkgJiYgIWVtcHR5KCRfUE9TVFsnZW1haWwnXSkgJiYgIWVtcHR5KCRfUE9TVFsncm9sZSddKSkgewogICAgICAgICAgICAkdXNlcklkID0gJF9QT1NUWydpZCddOwogICAgICAgICAgICAkdXNlckZ1bGxOYW1lID0gJF9QT1NUWydmdWxsTmFtZSddOwogICAgICAgICAgICAkdXNlckxvZ2luID0gJF9QT1NUWydsb2dpbiddOwogICAgICAgICAgICAkdXNlckVtYWlsID0gJF9QT1NUWydlbWFpbCddOwogICAgICAgICAgICAkdXNlclJvbGUgPSAkX1BPU1RbJ3JvbGUnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT51cGRhdGVVc2VySW5mbygkdXNlcklkLCAkdXNlckZ1bGxOYW1lLCAkdXNlckxvZ2luLCAkdXNlckVtYWlsLCAkdXNlclJvbGUpKSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCU0LDQvdC90YvQtSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YHQvtGF0YDQsNC90LXQvdGLIikpOyAgICAKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN1Y2Nlc3MiID0+IGZhbHNlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCDRgdC+0YXRgNCw0L3QtdC90LjRjyDQtNCw0L3QvdGL0YUiKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiBmYWxzZSwgInRleHQiID0+ICLQl9Cw0L\/QvtC70L3QuNGC0LUg0LLRgdC1INC00LDQvdC90YvQtSIpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBkZWxldGVVc2VyKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnaWQnXSkpIHsKICAgICAgICAgICAgJHVzZXJJZCA9ICRfUE9TVFsnaWQnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT5kZWxldGVVc2VyKCR1c2VySWQpKSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCf0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRg9GB0L\/QtdGI0L3QviDRg9C00LDQu9C10L0iKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdWNjZXNzIiA9PiB0cnVlLCAidGV4dCIgPT4gItCe0YjQuNCx0LrQsCDRg9C00LDQu9C10L3QuNGPIikpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J\/RgNC+0LjQt9C+0YjQu9CwINC+0YjQuNCx0LrQsC4g0J\/QvtC\/0YDQvtCx0YPQudGC0LUg0L\/QvtC30LbQtSIpKTsKICAgICAgICB9CgogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGROZXdVc2VyKCkgewoKICAgICAgICBpZighJF9TRVNTSU9OWyd1c2VyJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCJMb2NhdGlvbjogLyIpOwogICAgICAgIH0KCiAgICAgICAgaWYoIWVtcHR5KCRfUE9TVCkgJiYgIWVtcHR5KCRfUE9TVFsnZnVsbE5hbWUnXSkgJiYgIWVtcHR5KCRfUE9TVFsncGFzc3dvcmQnXSkgJiYgIWVtcHR5KCRfUE9TVFsnbG9naW4nXSkgJiYgIWVtcHR5KCRfUE9TVFsnZW1haWwnXSkgJiYgIWVtcHR5KCRfUE9TVFsncm9sZSddKSkgewogICAgICAgICAgICAkbmV3VXNlciA9ICRfUE9TVFsnZnVsbE5hbWUnXTsKICAgICAgICAgICAgJG5ld0xvZ2luID0gJF9QT1NUWydsb2dpbiddOwogICAgICAgICAgICAkbmV3RW1haWwgPSAkX1BPU1RbJ2VtYWlsJ107CiAgICAgICAgICAgICRuZXdQYXNzd29yZCA9IG1kNSgkX1BPU1RbJ3Bhc3N3b3JkJ10pOwogICAgICAgICAgICAkcGFzc3dvcmRGb3JFbWFpbCA9ICRfUE9TVFsncGFzc3dvcmQnXTsKICAgICAgICAgICAgJG5ld1JvbGUgPSAkX1BPU1RbJ3JvbGUnXTsKICAgICAgICAgICAgaWYoJHRoaXMtPm1vZGVsLT5hZGROZXdVc2VyKCRuZXdMb2dpbiwgJG5ld1VzZXIsICRuZXdFbWFpbCwgJG5ld1Bhc3N3b3JkLCAkbmV3Um9sZSkpIHsKICAgICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gdHJ1ZSwgInRleHQiID0+ICLQndC+0LLRi9C5INC\/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDQtNC+0LHQsNCy0LvQtdC9IikpOyAKICAgICAgICAgICAgICAgJHRoaXMtPnNlbmRSZWdpc3RlckVtYWlsKCRuZXdVc2VyLCAkbmV3TG9naW4sICRwYXNzd29yZEZvckVtYWlsLCAkbmV3RW1haWwpOyAgIAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0J7RiNC40LHQutCwINC00L7QsdCw0LLQu9C10L3QuNGPIikpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyBqc29uX2VuY29kZShhcnJheSgic3VjY2VzcyIgPT4gZmFsc2UsICJ0ZXh0IiA9PiAi0JfQsNC\/0L7Qu9C90LjRgtC1INCy0YHQtSDQtNCw0L3QvdGL0LUiKSk7CiAgICAgICAgfQoKICAgIH0KCgp9Cg==PD9waHAKCmNsYXNzIFVzZXJzTW9kZWwgZXh0ZW5kcyBNb2RlbCB7CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzKCkgewogICAgICAgICRzcWwgPSAiU0VMRUNUIHVzZXJzLmlkLCB1c2Vycy5sb2dpbiwgdXNlcnMuZnVsbE5hbWUsIHVzZXJzLmVtYWlsLCByb2xlLm5hbWUgYXMgcm9sZSBGUk9NIHVzZXJzCiAgICAgICAgICAgICAgICBJTk5FUiBKT0lOIHJvbGUgT04gdXNlcnMucm9sZV9pZCA9IHJvbGUuaWQiOwoKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSBhcnJheSgpOwogICAgICAgIHdoaWxlKCRyb3cgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQykpIHsKICAgICAgICAgICAgJHJlc3VsdFskcm93WydpZCddXSA9ICRyb3c7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRVc2VyQnlJZCgkdXNlcklkKSB7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgdXNlcnMuaWQsIHVzZXJzLmVtYWlsLCB1c2Vycy5mdWxsTmFtZSwgdXNlcnMubG9naW4sIHJvbGUubmFtZSBhcyByb2xlIEZST00gdXNlcnMKICAgICAgICAgICAgICAgIElOTkVSIEpPSU4gcm9sZSBPTiB1c2Vycy5yb2xlX2lkID0gcm9sZS5pZAogICAgICAgICAgICAgICAgV0hFUkUgdXNlcnMuaWQgPSA6aWQiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjppZCIsICR1c2VySWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgICRyZXN1bHQgPSAkc3RtdC0+ZmV0Y2goUERPOjpGRVRDSF9BU1NPQyk7CiAgICAgICAgaWYoIWVtcHR5KCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgCiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGdldFVzZXJzUm9sZXMoKSB7CiAgICAgICAgJHJlc3VsdCA9IGFycmF5KCk7CiAgICAgICAgJHNxbCA9ICJTRUxFQ1QgKiBGUk9NIHJvbGUiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgd2hpbGUoJHJvdyA9ICRzdG10LT5mZXRjaChQRE86OkZFVENIX0FTU09DKSkgewogICAgICAgICAgICAkcmVzdWx0W10gPSAkcm93OwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gdXBkYXRlVXNlckluZm8oJHVzZXJJZCwgJHVzZXJGdWxsTmFtZSwgJHVzZXJMb2dpbiwgJHVzZXJFbWFpbCwgJHVzZXJSb2xlKSB7CiAgICAgICAgJHNxbCA9ICJVUERBVEUgdXNlcnMKICAgICAgICAgICAgICAgIFNFVCBsb2dpbiA9IDpsb2dpbiwgZnVsbE5hbWUgPSA6ZnVsbE5hbWUsIGVtYWlsID0gOmVtYWlsLCByb2xlX2lkID0gOnJvbGVJZAogICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA6aWQgICAgCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsb2dpbiIsICR1c2VyTG9naW4sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6ZnVsbE5hbWUiLCAkdXNlckZ1bGxOYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOmVtYWlsIiwgJHVzZXJFbWFpbCwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpyb2xlSWQiLCAkdXNlclJvbGUsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkdXNlcklkLCBQRE86OlBBUkFNX0lOVCk7CiAgICAgICAgJHN0bXQtPmV4ZWN1dGUoKTsKICAgICAgICByZXR1cm4gdHJ1ZTsgICAgICAgIAogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhZGROZXdVc2VyKCR1c2VyTG9naW4sICR1c2VyRnVsbE5hbWUsICR1c2VyRW1haWwsICR1c2VyUGFzc3dvcmQsICR1c2VyUm9sZSkgewogICAgICAgICRzcWwgPSAiSU5TRVJUIElOVE8gdXNlcnMobG9naW4sIGZ1bGxOYW1lLCBlbWFpbCwgcGFzc3dvcmQsIHJvbGVfaWQpCiAgICAgICAgICAgICAgICBWQUxVRVMgKDpsb2dpbiwgOmZ1bGxOYW1lLCA6ZW1haWwsIDpwYXNzd29yZCwgOnJvbGVfaWQpICAgCiAgICAgICAgICAgICAgICAiOwogICAgICAgICRzdG10ID0gJHRoaXMtPmRiLT5wcmVwYXJlKCRzcWwpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpsb2dpbiIsICR1c2VyTG9naW4sIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6ZnVsbE5hbWUiLCAkdXNlckZ1bGxOYW1lLCBQRE86OlBBUkFNX1NUUik7CiAgICAgICAgJHN0bXQtPmJpbmRWYWx1ZSgiOmVtYWlsIiwgJHVzZXJFbWFpbCwgUERPOjpQQVJBTV9TVFIpOwogICAgICAgICRzdG10LT5iaW5kVmFsdWUoIjpwYXNzd29yZCIsICR1c2VyUGFzc3dvcmQsIFBETzo6UEFSQU1fU1RSKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6cm9sZV9pZCIsICR1c2VyUm9sZSwgUERPOjpQQVJBTV9JTlQpOwogICAgICAgICRzdG10LT5leGVjdXRlKCk7CiAgICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gZGVsZXRlVXNlcigkaWQpIHsKICAgICAgICAkc3FsID0gIkRFTEVURSBGUk9NIHVzZXJzIFdIRVJFIGlkID0gOmlkIjsKICAgICAgICAkc3RtdCA9ICR0aGlzLT5kYi0+cHJlcGFyZSgkc3FsKTsKICAgICAgICAkc3RtdC0+YmluZFZhbHVlKCI6aWQiLCAkaWQsIFBETzo6UEFSQU1fSU5UKTsKICAgICAgICAkc3RtdC0+ZXhlY3V0ZSgpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKCn0K<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[274,219],"tags":[],"class_list":["post-28959","post","type-post","status-publish","format-standard","hentry","category-phpmysql","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Create php MVC app. Get all users - Kamil Abzalovs&#039; site<\/title>\n<meta name=\"description\" content=\"In this lesson we will select all users from database with using INNER JOIN operator\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Create php MVC app. Get all users - Kamil Abzalovs&#039; site\" \/>\n<meta property=\"og:description\" content=\"In this lesson we will select all users from database with using INNER JOIN operator\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/kamabzalov\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-30T09:50:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-04-11T08:40:28+00:00\" \/>\n<meta name=\"author\" content=\"Kamil&#039; Abzalov\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Create php MVC app. Get all users\" \/>\n<meta name=\"twitter:description\" content=\"In this lesson we will select all users from database with using INNER JOIN operator\" \/>\n<meta name=\"twitter:creator\" content=\"@kamabzalov\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kamil&#039; Abzalov\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/\"},\"author\":{\"name\":\"Kamil' Abzalov\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"headline\":\"Create php MVC app. Get all users\",\"datePublished\":\"2018-04-30T09:50:19+00:00\",\"dateModified\":\"2020-04-11T08:40:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/\"},\"wordCount\":4804,\"commentCount\":0,\"articleSection\":[\"PHP+MySQL\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/\",\"name\":\"Create php MVC app. Get all users - Kamil Abzalovs' site\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\"},\"datePublished\":\"2018-04-30T09:50:19+00:00\",\"dateModified\":\"2020-04-11T08:40:28+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\"},\"description\":\"In this lesson we will select all users from database with using INNER JOIN operator\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/videouroki\\\/phpmysql\\\/create-php-mvc-app-get-all-users\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\",\"item\":\"https:\\\/\\\/kamil-abzalov.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create php MVC app. Get all users\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#website\",\"url\":\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"name\":\"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/kamil-abzalov.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/kamil-abzalov.com\\\/#\\\/schema\\\/person\\\/9c53360f21b83306ba40c2231573c600\",\"name\":\"Kamil' Abzalov\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g\",\"caption\":\"Kamil' Abzalov\"},\"sameAs\":[\"https:\\\/\\\/kamil-abzalov.com\\\/\",\"https:\\\/\\\/www.facebook.com\\\/kamabzalov\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/kamabzalov\",\"https:\\\/\\\/x.com\\\/kamabzalov\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/kamabzalov\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Create php MVC app. Get all users - Kamil Abzalovs' site","description":"In this lesson we will select all users from database with using INNER JOIN operator","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/","og_locale":"en_US","og_type":"article","og_title":"Create php MVC app. Get all users - Kamil Abzalovs' site","og_description":"In this lesson we will select all users from database with using INNER JOIN operator","og_url":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/","og_site_name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","article_author":"https:\/\/www.facebook.com\/kamabzalov","article_published_time":"2018-04-30T09:50:19+00:00","article_modified_time":"2020-04-11T08:40:28+00:00","author":"Kamil' Abzalov","twitter_card":"summary_large_image","twitter_title":"Create php MVC app. Get all users","twitter_description":"In this lesson we will select all users from database with using INNER JOIN operator","twitter_creator":"@kamabzalov","twitter_misc":{"Written by":"Kamil' Abzalov","Est. reading time":"24 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/#article","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/"},"author":{"name":"Kamil' Abzalov","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"headline":"Create php MVC app. Get all users","datePublished":"2018-04-30T09:50:19+00:00","dateModified":"2020-04-11T08:40:28+00:00","mainEntityOfPage":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/"},"wordCount":4804,"commentCount":0,"articleSection":["PHP+MySQL","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/","url":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/","name":"Create php MVC app. Get all users - Kamil Abzalovs' site","isPartOf":{"@id":"https:\/\/kamil-abzalov.com\/#website"},"datePublished":"2018-04-30T09:50:19+00:00","dateModified":"2020-04-11T08:40:28+00:00","author":{"@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600"},"description":"In this lesson we will select all users from database with using INNER JOIN operator","breadcrumb":{"@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kamil-abzalov.com\/videouroki\/phpmysql\/create-php-mvc-app-get-all-users\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/kamil-abzalov.com\/en\/"},{"@type":"ListItem","position":2,"name":"Create php MVC app. Get all users"}]},{"@type":"WebSite","@id":"https:\/\/kamil-abzalov.com\/#website","url":"https:\/\/kamil-abzalov.com\/","name":"\u0441\u0430\u0439\u0442 \u041a\u0430\u043c\u0438\u043b\u044f \u0410\u0431\u0437\u0430\u043b\u043e\u0432\u0430","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kamil-abzalov.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/kamil-abzalov.com\/#\/schema\/person\/9c53360f21b83306ba40c2231573c600","name":"Kamil' Abzalov","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ad2daebcb3a4d03f8573b49054a003cd26a151ecc58ccfccc75b823131d1ead?s=96&d=mm&r=g","caption":"Kamil' Abzalov"},"sameAs":["https:\/\/kamil-abzalov.com\/","https:\/\/www.facebook.com\/kamabzalov","https:\/\/www.linkedin.com\/in\/kamabzalov","https:\/\/x.com\/kamabzalov","https:\/\/www.youtube.com\/user\/kamabzalov"]}]}},"_links":{"self":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/28959","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/comments?post=28959"}],"version-history":[{"count":8,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/28959\/revisions"}],"predecessor-version":[{"id":31992,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/posts\/28959\/revisions\/31992"}],"wp:attachment":[{"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/media?parent=28959"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/categories?post=28959"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kamil-abzalov.com\/en\/wp-json\/wp\/v2\/tags?post=28959"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}