| | |
| | | package com.bsk.zhangbo.demoforbsk.ui.fragment;
|
| | |
|
| | | import android.app.Activity;
|
| | | import android.content.Intent;
|
| | | import android.graphics.Bitmap;
|
| | | import android.net.Uri;
|
| | | import android.os.Bundle;
|
| | | import android.provider.MediaStore;
|
| | | import android.view.Gravity;
|
| | | import android.view.View;
|
| | | import android.widget.DatePicker;
|
| | | import android.widget.EditText;
|
| | | import android.widget.ImageView;
|
| | | import android.widget.LinearLayout;
|
| | | import android.widget.TextView;
|
| | | import android.widget.Toast;
|
| | |
|
| | | import com.bsk.zhangbo.demoforbsk.R;
|
| | | import com.bsk.zhangbo.demoforbsk.base.BaseFragment;
|
| | | import com.bsk.zhangbo.demoforbsk.service.DictionaryMng;
|
| | | import com.bsk.zhangbo.demoforbsk.service.PersonMng;
|
| | | import com.bsk.zhangbo.demoforbsk.service.VisitorTypeMng;
|
| | | import com.bsk.zhangbo.demoforbsk.listeners.OkButtonClickedListener;
|
| | | import com.bsk.zhangbo.demoforbsk.ui.activity.MainActivity;
|
| | | import com.bsk.zhangbo.demoforbsk.widget.BirthdayPickerDialog;
|
| | | import com.bsk.zhangbo.demoforbsk.widget.CountrySelectionPopup;
|
| | | import com.bsk.zhangbo.demoforbsk.widget.SingleSelectionPopup;
|
| | | import com.lidroid.xutils.ViewUtils;
|
| | | import com.lidroid.xutils.view.annotation.ViewInject;
|
| | | import com.lidroid.xutils.view.annotation.event.OnClick;
|
| | |
|
| | | import org.xutils.http.RequestParams;
|
| | | import org.xutils.x;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.io.IOException;
|
| | | import java.util.Calendar;
|
| | | import java.util.Date;
|
| | | import java.util.HashMap;
|
| | | import java.util.List;
|
| | |
|
| | | import cn.com.basic.face.discern.common.BaseCommonCallBack;
|
| | | import cn.com.basic.face.discern.query.item.VistorTypeQueryItem;
|
| | | import cn.com.basic.face.discern.entity.Person;
|
| | | import cn.com.basic.face.discern.entity.VisitPersonType;
|
| | |
|
| | | /**
|
| | | * Created by Administrator on 2017/2/20 0020.
|
| | | */
|
| | |
|
| | | //@ContentView(value = R.layout.fragment_register)
|
| | | public class RegisterFragment extends BaseFragment implements View.OnClickListener{
|
| | |
|
| | | private View mViewName,mViewSex,mViewNation,mViewBirthday,mViewVisitorClass,mViewPhone,mViewIdClass,mViewIdNumber,mViewCompayName,mViewRemark;
|
| | | private TextView mViewNameTitle,mViewSexTitle,mViewNationTitle,mViewBirthdyTitle,mViewIdClassContent,mViewSexContent,mViewNationContent,mViewBirthdyContent,mViewVisitorClassContent,mViewVisitorClassTitle,mViewPhoneTitle,mViewIdClassTitle,mViewIdNumberTitle,mViewCompanyNameTitle,mViewRemarkTitle;
|
| | | private EditText mViewNameContent,mViewPhoneContent,mViewIdNumberContent,mViewCompanyNameContent,mViewRemarkContent;
|
| | | private List<String> mSexList;
|
| | | private List<String> mVisitorTypeList;
|
| | | private List<String> mCredentialsList;
|
| | | private LinearLayout mBaseLayout;
|
| | | private int mNowYear;
|
| | | private int mNowMonth;
|
| | | private int mNowDay;
|
| | | private static final int PICK_IMAGE_REQUEST = 1;
|
| | | @ViewInject(value = R.id.register_tv_content, parentId = R.id.register_id_class)
|
| | | private TextView identityTypeTv;
|
| | | private TextView genderTv;
|
| | | private TextView countryTv;
|
| | | private TextView birthdayTv;
|
| | | private TextView isitorvTypeTv;
|
| | | private TextView mViewVisitorClassTitle;
|
| | |
|
| | | public static RegisterFragment newInstance() {
|
| | | return new RegisterFragment();
|
| | | private EditText nameEt, phoneEt, identifyEt, companyEt,mViewRemarkContent;
|
| | | private List mSexList;
|
| | | private List mVisitorTypeList;
|
| | | private List mCredentialsList;
|
| | | private LinearLayout mBaseLayout;
|
| | |
|
| | | @ViewInject(R.id.register_name)
|
| | | private View mViewName;
|
| | | @ViewInject(R.id.register_gender)
|
| | | private View mViewSex;
|
| | | @ViewInject(R.id.register_country)
|
| | | private View mViewNation;
|
| | | @ViewInject(R.id.register_birthday)
|
| | | private View mViewBirthday;
|
| | | @ViewInject(R.id.register_visitor_class)
|
| | | private View mViewVisitorClass;
|
| | | @ViewInject(R.id.register_phone)
|
| | | private View mViewPhone;
|
| | | @ViewInject(R.id.register_id_class)
|
| | | private View mViewIdClass;
|
| | | @ViewInject(R.id.register_id_num)
|
| | | private View mViewIdNumber;
|
| | | @ViewInject(R.id.register_company)
|
| | | private View mViewCompayName;
|
| | | @ViewInject(R.id.register_remark)
|
| | | private View mViewRemark;
|
| | |
|
| | | private String[] countryWordData;
|
| | | private List<String> countryWordList;
|
| | | private HashMap<String, List<String>> countryData;
|
| | |
|
| | | private static RegisterFragment instance = new RegisterFragment();
|
| | |
|
| | | public static RegisterFragment getInstance() {
|
| | | return instance;
|
| | | }
|
| | | @Override
|
| | | protected int getLayoutId() {
|
| | |
| | | @Override
|
| | | protected void initViews(View view, Bundle savedInstanceState) {
|
| | | mBaseLayout = (LinearLayout) view.findViewById(R.id.register_base);
|
| | | mViewName = view.findViewById(R.id.register_name);
|
| | | mViewSex = view.findViewById(R.id.register_sex);
|
| | | mViewNation = view.findViewById(R.id.register_nation);
|
| | | mViewBirthday = view.findViewById(R.id.register_birthday);
|
| | | mViewVisitorClass = view.findViewById(R.id.register_visitor_class);
|
| | | mViewPhone = view.findViewById(R.id.register_phone);
|
| | | mViewIdClass = view.findViewById(R.id.register_id_class);
|
| | | mViewIdNumber = view.findViewById(R.id.register_id_num);
|
| | | mViewCompayName = view.findViewById(R.id.register_company);
|
| | | mViewRemark = view.findViewById(R.id.register_remark);
|
| | | ViewUtils.inject(this, mBaseLayout);
|
| | |
|
| | | mViewNameTitle = (TextView) mViewName.findViewById(R.id.register_et_title);
|
| | | mViewSexTitle = (TextView) mViewSex.findViewById(R.id.register_tv_title);
|
| | | mViewNationTitle = (TextView) mViewNation.findViewById(R.id.register_tv_title);
|
| | | mViewBirthdyTitle = (TextView) mViewBirthday.findViewById(R.id.register_tv_title);
|
| | | mViewVisitorClassTitle = (TextView) mViewVisitorClass.findViewById(R.id.register_tv_title);
|
| | | mViewPhoneTitle = (TextView) mViewPhone.findViewById(R.id.register_et_title);
|
| | | mViewIdClassTitle = (TextView) mViewIdClass.findViewById(R.id.register_tv_title);
|
| | | mViewIdNumberTitle = (TextView) mViewIdNumber.findViewById(R.id.register_et_title);
|
| | | mViewCompanyNameTitle = (TextView) mViewCompayName.findViewById(R.id.register_et_title);
|
| | | mViewRemarkTitle = (TextView) mViewRemark.findViewById(R.id.register_et_title);
|
| | | mViewSexContent = (TextView) mViewSex.findViewById(R.id.register_tv_content);
|
| | | mViewNationContent = (TextView) mViewNation.findViewById(R.id.register_tv_content);
|
| | | mViewBirthdyContent= (TextView) mViewBirthday.findViewById(R.id.register_tv_content);
|
| | | mViewVisitorClassContent = (TextView) mViewVisitorClass.findViewById(R.id.register_tv_content);
|
| | | mViewIdClassContent= (TextView) mViewIdClass.findViewById(R.id.register_tv_content);
|
| | |
|
| | |
|
| | | mViewNameContent = (EditText) mViewName.findViewById(R.id.register_et_content);
|
| | | mViewPhoneContent = (EditText) mViewPhone.findViewById(R.id.register_et_content);
|
| | | mViewIdNumberContent = (EditText) mViewIdNumber.findViewById(R.id.register_et_content);
|
| | | mViewCompanyNameContent = (EditText) mViewCompayName.findViewById(R.id.register_et_content);
|
| | | genderTv = (TextView) mViewSex.findViewById(R.id.register_tv_content);
|
| | | countryTv = (TextView) mViewNation.findViewById(R.id.register_tv_content);
|
| | | birthdayTv= (TextView) mViewBirthday.findViewById(R.id.register_tv_content);
|
| | | isitorvTypeTv = (TextView) mViewVisitorClass.findViewById(R.id.register_tv_content);
|
| | | // mViewIdentityTypeContent = (TextView) mViewIdClass.findViewById(R.id.register_tv_content);
|
| | | nameEt = (EditText) mViewName.findViewById(R.id.register_et_content);
|
| | | phoneEt = (EditText) mViewPhone.findViewById(R.id.register_et_content);
|
| | | identifyEt = (EditText) mViewIdNumber.findViewById(R.id.register_et_content);
|
| | | companyEt = (EditText) mViewCompayName.findViewById(R.id.register_et_content);
|
| | | mViewRemarkContent = (EditText) mViewRemark.findViewById(R.id.register_et_content);
|
| | |
|
| | |
|
| | | mViewNameTitle.setText(R.string.title_name);
|
| | | mViewSexTitle.setText(R.string.title_sex);
|
| | | mViewNationTitle.setText(R.string.title_nation);
|
| | | mViewBirthdyTitle.setText(R.string.title_birthday);
|
| | | mViewVisitorClassTitle.setText(R.string.title_visitorClass);
|
| | | mViewPhoneTitle.setText(R.string.title_phone);
|
| | | mViewIdClassTitle.setText(R.string.title_idClass);
|
| | | mViewIdNumberTitle.setText(R.string.title_idNumber);
|
| | | mViewCompanyNameTitle.setText(R.string.title_companyName);
|
| | | mViewRemarkTitle.setText(R.string.title_remark);
|
| | | Calendar calendar = Calendar.getInstance();
|
| | | mNowYear = calendar.get(Calendar.YEAR);
|
| | | mNowMonth = calendar.get(Calendar.MONTH);
|
| | | mNowDay = calendar.get(Calendar.DAY_OF_MONTH);
|
| | | ((TextView) mViewName.findViewById(R.id.register_et_title)).setText(R.string.title_name);
|
| | | ((TextView) mViewSex.findViewById(R.id.register_tv_title)).setText(R.string.title_sex);
|
| | | ((TextView) mViewNation.findViewById(R.id.register_tv_title)).setText(R.string.title_nation);
|
| | | ((TextView) mViewBirthday.findViewById(R.id.register_tv_title)).setText(R.string.title_birthday);
|
| | | ((TextView) mViewVisitorClass.findViewById(R.id.register_tv_title)).setText(R.string.title_visitorClass);
|
| | | ((TextView) mViewPhone.findViewById(R.id.register_et_title)).setText(R.string.title_phone);
|
| | | ((TextView) mViewIdClass.findViewById(R.id.register_tv_title)).setText(R.string.title_idClass);
|
| | | ((TextView) mViewIdNumber.findViewById(R.id.register_et_title)).setText(R.string.title_idNumber);
|
| | | ((TextView) mViewCompayName.findViewById(R.id.register_et_title)).setText(R.string.title_companyName);
|
| | | ((TextView) mViewRemark.findViewById(R.id.register_et_title)).setText(R.string.title_remark);
|
| | | }
|
| | |
|
| | | @Override
|
| | | protected void initToolbar(Bundle savedInstanceState) {
|
| | | @OnClick(R.id.register_save)
|
| | | public void registerEdit() {
|
| | |
|
| | | }
|
| | |
|
| | | @Override
|
| | | protected void initListeners() {
|
| | | mViewSex.setOnClickListener(this);
|
| | | mViewNation.setOnClickListener(this);
|
| | | mViewBirthday.setOnClickListener(this);
|
| | | mViewVisitorClass.setOnClickListener(this);
|
| | | mViewIdClass.setOnClickListener(this);
|
| | | @OnClick(R.id.register_add)
|
| | | public void registerAdd(View v) {
|
| | | RequestParams params = new RequestParams();
|
| | |
|
| | | params.addBodyParameter(Person.FieldNames.name, nameEt.getText().toString());
|
| | | params.addBodyParameter(Person.FieldNames.phone, phoneEt.getText().toString());
|
| | | params.addBodyParameter(Person.FieldNames.gender, DictionaryMng.getInstance().getId(genderTv.getText().toString()));
|
| | | params.addBodyParameter(Person.FieldNames.identityType, DictionaryMng.getInstance().getId(identityTypeTv.getText().toString()));
|
| | | params.addBodyParameter(Person.FieldNames.country, DictionaryMng.getInstance().getId(countryTv.getText().toString()));
|
| | | params.addBodyParameter(Person.FieldNames.identify, identifyEt.getText().toString());
|
| | | params.addBodyParameter(Person.FieldNames.birthday, birthdayTv.getText().toString());
|
| | | params.addBodyParameter("companyName", companyEt.getText().toString());
|
| | |
|
| | | //visitor_type
|
| | | params.addBodyParameter(VisitPersonType.FieldNames.visitorTypeId, VisitorTypeMng.getInstance().getId(isitorvTypeTv.getText().toString()));
|
| | | params.addBodyParameter(VisitPersonType.FieldNames.registerCompanyId, "0");
|
| | |
|
| | | PersonMng.getInstance().add(params);
|
| | | }
|
| | |
|
| | | @Override
|
| | | protected void initData() {
|
| | | RequestParams params = new RequestParams("http://192.168.1.51:8080/ssm/VisitorType/v_list.do");
|
| | | x.http().get(params, new BaseCommonCallBack() {
|
| | | public void success() {
|
| | | List<VistorTypeQueryItem> items = getList(VistorTypeQueryItem.class);
|
| | | mVisitorTypeList = new ArrayList<String>();
|
| | | mViewVisitorClassContent.setText(items.get(0).getLabel());
|
| | | for (VistorTypeQueryItem item : items) {
|
| | | mVisitorTypeList.add(item.getLabel());
|
| | | }
|
| | | // mVisitorTypeList = VisitorTypeMng.mVisitorTypeList;
|
| | | // mSexList = DictionaryMng.mSexList;
|
| | | // mCredentialsList = DictionaryMng.mCredentialsList;
|
| | | }
|
| | |
|
| | | public void setVisitorTypeList(List visitorTypeList) {
|
| | | this.mVisitorTypeList = visitorTypeList;
|
| | | }
|
| | |
|
| | | public void setSexList(List sexList) {
|
| | | this.mSexList = sexList;
|
| | | }
|
| | |
|
| | | public void setCredentialsList(List credentialsList) {
|
| | | this.mCredentialsList = credentialsList;
|
| | | }
|
| | |
|
| | | @OnClick(R.id.register_gender)
|
| | | public void selectGender(View view) {
|
| | | SingleSelectionPopup popup = new SingleSelectionPopup(getActivity(),mSexList,"性别");
|
| | | popup.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | popup.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | genderTv.setText(item);
|
| | | }
|
| | |
|
| | | });
|
| | |
|
| | | mSexList = new ArrayList<>();
|
| | | mSexList.add("男");
|
| | | mSexList.add("女");
|
| | | mViewSexContent.setText(mSexList.get(0));
|
| | |
|
| | | mCredentialsList = new ArrayList<>();
|
| | | mCredentialsList.add("名片");
|
| | | mCredentialsList.add("身份证");
|
| | |
|
| | | mViewIdClassContent.setText(mCredentialsList.get(0));
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void onClick(View v) {
|
| | | switch (v.getId()){
|
| | | case R.id.register_sex:
|
| | | SingleSelectionPopup popup = new SingleSelectionPopup(getActivity(),mSexList,"性别");
|
| | | popup.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | popup.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | mViewSexContent.setText(item);
|
| | | }
|
| | | });
|
| | | break;
|
| | | case R.id.register_nation:
|
| | | // Toast.makeText(getActivity(),"中国",Toast.LENGTH_SHORT).show();
|
| | | CountrySelectionPopup countrySelectionPopup = new CountrySelectionPopup(getActivity());
|
| | | countrySelectionPopup.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | countrySelectionPopup.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | mViewNationContent.setText(item);
|
| | | }
|
| | | });
|
| | | break;
|
| | | case R.id.register_birthday:
|
| | | // Toast.makeText(getActivity(),"1990-1-1",Toast.LENGTH_SHORT).show();
|
| | | // datePickerDialog.show();
|
| | | showDatePicker();
|
| | | break;
|
| | | case R.id.register_visitor_class:
|
| | | SingleSelectionPopup popup1 = new SingleSelectionPopup(getActivity(),mVisitorTypeList,"访客类型");
|
| | | popup1.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | popup1.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | mViewVisitorClassContent.setText(item);
|
| | | }
|
| | | });
|
| | | break;
|
| | | case R.id.register_id_class:
|
| | | SingleSelectionPopup popup2 = new SingleSelectionPopup(getActivity(),mCredentialsList,"证件类型");
|
| | | popup2.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | popup2.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | mViewIdClassContent.setText(item);
|
| | | }
|
| | | });
|
| | | break;
|
| | | }
|
| | | public void setCountryData(String[] countryWordData, List<String> countryWordList, HashMap<String, List<String>> countryData) {
|
| | | this.countryData = countryData;
|
| | | this.countryWordList = countryWordList;
|
| | | this.countryData = countryData;
|
| | | }
|
| | |
|
| | | public void showDatePicker(){
|
| | | @OnClick(R.id.register_country)
|
| | | public void selectCountry(View view) {
|
| | | CountrySelectionPopup countrySelectionPopup = new CountrySelectionPopup(getActivity(),
|
| | | countryWordData,countryWordList,countryData);
|
| | | countrySelectionPopup.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | countrySelectionPopup.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | countryTv.setText(item);
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | @OnClick(R.id.register_birthday)
|
| | | public void selectBirthday(View view) {
|
| | | Date date = new Date();
|
| | | BirthdayPickerDialog myDatePickerDialog=new BirthdayPickerDialog(getActivity(),android.R.style.Theme_Holo_Light_Dialog_NoActionBar,
|
| | | new BirthdayPickerDialog.OnDateSetListener(){
|
| | |
| | | @Override
|
| | | public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
|
| | | int month=monthOfYear+1;
|
| | | Toast.makeText(
|
| | | getActivity(),
|
| | | year + "-" + month + "-" + dayOfMonth,
|
| | | Toast.LENGTH_SHORT).show();
|
| | | birthdayTv.setText(year+"-"+month+"-"+dayOfMonth);
|
| | | }
|
| | | },date);
|
| | | myDatePickerDialog.myShow();
|
| | | }
|
| | |
|
| | | @OnClick(R.id.register_visitor_class)
|
| | | public void selectVisitorType(View view) {
|
| | | SingleSelectionPopup popup1 = new SingleSelectionPopup(getActivity(),mVisitorTypeList,"访客类型");
|
| | | popup1.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | popup1.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | isitorvTypeTv.setText(item);
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | @OnClick(R.id.register_id_class)
|
| | | public void selectIdentityType(View view) {
|
| | | SingleSelectionPopup popup2 = new SingleSelectionPopup(getActivity(),mCredentialsList,"证件类型");
|
| | | popup2.showAtLocation(mBaseLayout, Gravity.CENTER,0,0);
|
| | | popup2.addOkButtonClickedListener(new OkButtonClickedListener() {
|
| | | @Override
|
| | | public void onItemSelected(int position, Object o, String item) {
|
| | | identityTypeTv.setText(item);
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | /**
|
| | | * 选择人物快照
|
| | | * @param view
|
| | | */
|
| | | @OnClick(R.id.register_choose_photo)
|
| | | public void selectPersonPhoto(View view) {
|
| | | Toast.makeText(getActivity(), "选择人物快照", Toast.LENGTH_SHORT).show();
|
| | | }
|
| | |
|
| | | /**
|
| | | * 点击上传图片
|
| | | * @param view
|
| | | */
|
| | | @OnClick(R.id.register_update__photo)
|
| | | public void clickUploadPhoto(View view) {
|
| | | Intent intent = new Intent();
|
| | | intent.setType("image/*");
|
| | | intent.setAction(Intent.ACTION_GET_CONTENT);
|
| | | startActivityForResult(Intent.createChooser(intent, "选择图片"), PICK_IMAGE_REQUEST);
|
| | | }
|
| | |
|
| | | @ViewInject(R.id.register_update__photo)
|
| | | private ImageView ploadPhotoIv;
|
| | |
|
| | | @Override
|
| | | public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
| | | super.onActivityResult(requestCode, resultCode, data);
|
| | |
|
| | | if (requestCode == PICK_IMAGE_REQUEST && resultCode == Activity.RESULT_OK && data != null && data.getData() != null) {
|
| | |
|
| | | Uri uri = data.getData();
|
| | |
|
| | | try {
|
| | | Bitmap bitmap = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);
|
| | | // Log.d(TAG, String.valueOf(bitmap));u
|
| | | ploadPhotoIv.setImageBitmap(bitmap);
|
| | | // ImageView imageView = (ImageView) findViewById(R.id.imageView);
|
| | | // imageView.setImageBitmap(bitmap);
|
| | | } catch (IOException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 证件快照
|
| | | * @param view
|
| | | */
|
| | | @OnClick(R.id.register_idcard_photo)
|
| | | public void identityPhoto(View view) {
|
| | | Toast.makeText(getActivity(), "证件快照", Toast.LENGTH_SHORT).show();
|
| | | }
|
| | |
|
| | | @OnClick(R.id.register_back)
|
| | | public void back(View view) {
|
| | | MainActivity.selectPage(0);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void onClick(View v) {}
|
| | |
|
| | |
|
| | | }
|