{"version":3,"sources":["webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/compose_form_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/navigation_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/search_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/components/hashtag.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/components/search_results.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/search_results_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/components/header.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/containers/header_container.js","webpack:///app/javascript/builds/pleroma/mastofe/app/javascript/flavours/glitch/features/compose/index.js"],"names":["react_redux__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","react_intl__WEBPACK_IMPORTED_MODULE_1__","_components_compose_form__WEBPACK_IMPORTED_MODULE_2__","flavours_glitch_actions_compose__WEBPACK_IMPORTED_MODULE_3__","flavours_glitch_actions_modal__WEBPACK_IMPORTED_MODULE_4__","flavours_glitch_actions_local_settings__WEBPACK_IMPORTED_MODULE_5__","flavours_glitch_util_privacy_preference__WEBPACK_IMPORTED_MODULE_6__","messages","defineMessages","missingDescriptionMessage","id","defaultMessage","missingDescriptionConfirm","connect","state","spoilersAlwaysOn","getIn","inReplyTo","replyPrivacy","sideArmBasePrivacy","sideArmRestrictedPrivacy","privacyPreference","sideArmPrivacy","advancedOptions","focusDate","caretPosition","isSubmitting","isChangingUpload","isUploading","layout","media","preselectDate","privacy","contentType","sideArm","sensitive","showSearch","spoiler","spoilerText","suggestions","text","anyMedia","size","mediaDescriptionConfirmation","preselectOnReply","dispatch","_ref","intl","onChange","changeCompose","onSubmit","routerHistory","submitCompose","onClearSuggestions","clearComposeSuggestions","onFetchSuggestions","token","fetchComposeSuggestions","onSuggestionSelected","position","suggestion","path","selectComposeSuggestion","onChangeSpoilerText","changeComposeSpoilerText","onChangeContentType","value","changeComposeContentType","onPaste","files","uploadCompose","onPickEmoji","emoji","insertEmojiCompose","onChangeSpoilerness","changeComposeSpoilerness","onChangeVisibility","changeComposeVisibility","onMount","mountCompose","onUnmount","unmountCompose","onMediaDescriptionConfirm","openModal","message","formatMessage","confirm","onConfirm","onDoNotAsk","changeLocalSetting","ComposeForm","account","me","NavigationBar","submitted","changeSearch","onClear","clearSearch","submitSearch","onShow","Search","Hashtag","hashtag","Object","jsx","className","permalink","href","get","to","index_es","values","rawCount","count","shortNumberFormat","build","width","height","data","reverse","map","day","toArray","style","fill","dismissSuggestion","SearchResults","injectIntl","componentDidMount","this","props","fetchSuggestions","render","accounts","statuses","hashtags","_this$props","results","isEmpty","accountId","account_container","actionIcon","actionTitle","onActionClick","icon","fixedWidth","statusId","status_container","components_hashtag","ImmutablePureComponent","ImmutablePropTypes","isRequired","list","PropTypes","func","object","community","home_timeline","logout","notifications","public","settings","start","Header","columns","unreadNotifications","showNotificationsBadge","onSettingsClick","renderForColumn","conditionalRender","bind","columnId","some","column","Link","aria-label","title","onClick","data-method","signOutLink","number","bool","e","preventDefault","stopPropagation","compose","Compose","ownProps","multiColumn","isSearchPage","computedClass","classNames","role","header_container","search_container","navigation_container","compose_form_container","mascot","alt","draggable","src","optional_motion","defaultStyle","x","spring","stiffness","damping","transform","visibility","search_results_container","React","PureComponent"],"mappings":"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","file":"flavours/glitch/async/compose.js","sourcesContent":["import { connect } from 'react-redux';\nimport { defineMessages } from 'react-intl';\nimport ComposeForm from '../components/compose_form';\nimport {\n  changeCompose,\n  changeComposeSpoilerText,\n  changeComposeSpoilerness,\n  changeComposeVisibility,\n  changeComposeContentType,\n  clearComposeSuggestions,\n  fetchComposeSuggestions,\n  insertEmojiCompose,\n  mountCompose,\n  selectComposeSuggestion,\n  submitCompose,\n  unmountCompose,\n  uploadCompose,\n} from 'flavours/glitch/actions/compose';\nimport {\n  openModal,\n} from 'flavours/glitch/actions/modal';\nimport { changeLocalSetting } from 'flavours/glitch/actions/local_settings';\n\nimport { privacyPreference } from 'flavours/glitch/util/privacy_preference';\n\nconst messages = defineMessages({\n  missingDescriptionMessage: {  id: 'confirmations.missing_media_description.message',\n                                defaultMessage: 'At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.' },\n  missingDescriptionConfirm: {  id: 'confirmations.missing_media_description.confirm',\n                                defaultMessage: 'Send anyway' },\n});\n\n//  State mapping.\nfunction mapStateToProps (state) {\n  const spoilersAlwaysOn = state.getIn(['local_settings', 'always_show_spoilers_field']);\n  const inReplyTo = state.getIn(['compose', 'in_reply_to']);\n  const replyPrivacy = inReplyTo ? state.getIn(['statuses', inReplyTo, 'visibility']) : null;\n  const sideArmBasePrivacy = state.getIn(['local_settings', 'side_arm']);\n  const sideArmRestrictedPrivacy = replyPrivacy ? privacyPreference(replyPrivacy, sideArmBasePrivacy) : null;\n  let sideArmPrivacy = null;\n  switch (state.getIn(['local_settings', 'side_arm_reply_mode'])) {\n    case 'copy':\n      sideArmPrivacy = replyPrivacy;\n      break;\n    case 'restrict':\n      sideArmPrivacy = sideArmRestrictedPrivacy;\n      break;\n  }\n  sideArmPrivacy = sideArmPrivacy || sideArmBasePrivacy;\n  return {\n    advancedOptions: state.getIn(['compose', 'advanced_options']),\n    focusDate: state.getIn(['compose', 'focusDate']),\n    caretPosition: state.getIn(['compose', 'caretPosition']),\n    isSubmitting: state.getIn(['compose', 'is_submitting']),\n    isChangingUpload: state.getIn(['compose', 'is_changing_upload']),\n    isUploading: state.getIn(['compose', 'is_uploading']),\n    layout: state.getIn(['local_settings', 'layout']),\n    media: state.getIn(['compose', 'media_attachments']),\n    preselectDate: state.getIn(['compose', 'preselectDate']),\n    privacy: state.getIn(['compose', 'privacy']),\n    contentType: state.getIn(['compose', 'content_type']),\n    sideArm: sideArmPrivacy,\n    sensitive: state.getIn(['compose', 'sensitive']),\n    showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),\n    spoiler: spoilersAlwaysOn || state.getIn(['compose', 'spoiler']),\n    spoilerText: state.getIn(['compose', 'spoiler_text']),\n    suggestions: state.getIn(['compose', 'suggestions']),\n    text: state.getIn(['compose', 'text']),\n    anyMedia: state.getIn(['compose', 'media_attachments']).size > 0,\n    spoilersAlwaysOn: spoilersAlwaysOn,\n    mediaDescriptionConfirmation: state.getIn(['local_settings', 'confirm_missing_media_description']),\n    preselectOnReply: state.getIn(['local_settings', 'preselect_on_reply']),\n  };\n};\n\n//  Dispatch mapping.\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n\n  onChange(text) {\n    dispatch(changeCompose(text));\n  },\n\n  onSubmit(routerHistory) {\n    dispatch(submitCompose(routerHistory));\n  },\n\n  onClearSuggestions() {\n    dispatch(clearComposeSuggestions());\n  },\n\n  onFetchSuggestions(token) {\n    dispatch(fetchComposeSuggestions(token));\n  },\n\n  onSuggestionSelected(position, token, suggestion, path) {\n    dispatch(selectComposeSuggestion(position, token, suggestion, path));\n  },\n\n  onChangeSpoilerText(text) {\n    dispatch(changeComposeSpoilerText(text));\n  },\n\n  onChangeContentType(value) {\n    dispatch(changeComposeContentType(value));\n  },\n\n  onPaste(files) {\n    dispatch(uploadCompose(files));\n  },\n\n  onPickEmoji(position, emoji) {\n    dispatch(insertEmojiCompose(position, emoji));\n  },\n\n  onChangeSpoilerness() {\n    dispatch(changeComposeSpoilerness());\n  },\n\n  onChangeVisibility(value) {\n    dispatch(changeComposeVisibility(value));\n  },\n\n  onMount() {\n    dispatch(mountCompose());\n  },\n\n  onUnmount() {\n    dispatch(unmountCompose());\n  },\n\n  onMediaDescriptionConfirm(routerHistory) {\n    dispatch(openModal('CONFIRM', {\n      message: intl.formatMessage(messages.missingDescriptionMessage),\n      confirm: intl.formatMessage(messages.missingDescriptionConfirm),\n      onConfirm: () => dispatch(submitCompose(routerHistory)),\n      onDoNotAsk: () => dispatch(changeLocalSetting(['confirm_missing_media_description'], false)),\n    }));\n  },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ComposeForm);\n","import { connect }   from 'react-redux';\nimport NavigationBar from '../components/navigation_bar';\nimport { me } from 'flavours/glitch/util/initial_state';\n\nconst mapStateToProps = state => {\n  return {\n    account: state.getIn(['accounts', me]),\n  };\n};\n\nexport default connect(mapStateToProps)(NavigationBar);\n","import { connect } from 'react-redux';\nimport {\n  changeSearch,\n  clearSearch,\n  submitSearch,\n  showSearch,\n} from 'flavours/glitch/actions/search';\nimport Search from '../components/search';\n\nconst mapStateToProps = state => ({\n  value: state.getIn(['search', 'value']),\n  submitted: state.getIn(['search', 'submitted']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n  onChange (value) {\n    dispatch(changeSearch(value));\n  },\n\n  onClear () {\n    dispatch(clearSearch());\n  },\n\n  onSubmit () {\n    dispatch(submitSearch());\n  },\n\n  onShow () {\n    dispatch(showSearch());\n  },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Search);\n","import React from 'react';\nimport { Sparklines, SparklinesCurve } from 'react-sparklines';\nimport { FormattedMessage } from 'react-intl';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Permalink from './permalink';\nimport { shortNumberFormat } from 'flavours/glitch/util/numbers';\n\nconst Hashtag = ({ hashtag }) => (\n  <div className='trends__item'>\n    <div className='trends__item__name'>\n      <Permalink href={hashtag.get('url')} to={`/timelines/tag/${hashtag.get('name')}`}>\n        #<span>{hashtag.get('name')}</span>\n      </Permalink>\n\n      <FormattedMessage id='trends.count_by_accounts' defaultMessage='{count} {rawCount, plural, one {person} other {people}} talking' values={{ rawCount: hashtag.getIn(['history', 0, 'accounts']), count: <strong>{shortNumberFormat(hashtag.getIn(['history', 0, 'accounts']))}</strong> }} />\n    </div>\n\n    <div className='trends__item__current'>\n      {shortNumberFormat(hashtag.getIn(['history', 0, 'uses']))}\n    </div>\n\n    <div className='trends__item__sparkline'>\n      <Sparklines width={50} height={28} data={hashtag.get('history') && hashtag.get('history').reverse().map(day => day.get('uses')).toArray()}>\n        <SparklinesCurve style={{ fill: 'none' }} />\n      </Sparklines>\n    </div>\n  </div>\n);\n\nHashtag.propTypes = {\n  hashtag: ImmutablePropTypes.map.isRequired,\n};\n\nexport default Hashtag;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport AccountContainer from 'flavours/glitch/containers/account_container';\nimport StatusContainer from 'flavours/glitch/containers/status_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport Hashtag from 'flavours/glitch/components/hashtag';\nimport Icon from 'flavours/glitch/components/icon';\n\nconst messages = defineMessages({\n  dismissSuggestion: { id: 'suggestions.dismiss', defaultMessage: 'Dismiss suggestion' },\n});\n\nexport default @injectIntl\nclass SearchResults extends ImmutablePureComponent {\n\n  static propTypes = {\n    results: ImmutablePropTypes.map.isRequired,\n    suggestions: ImmutablePropTypes.list.isRequired,\n    fetchSuggestions: PropTypes.func.isRequired,\n    dismissSuggestion: PropTypes.func.isRequired,\n    intl: PropTypes.object.isRequired,\n  };\n\n  componentDidMount () {\n    this.props.fetchSuggestions();\n  }\n\n  render() {\n    const { intl, results, suggestions, dismissSuggestion } = this.props;\n\n    if (results.isEmpty() && !suggestions.isEmpty()) {\n      return (\n        <div className='drawer--results'>\n          <div className='trends'>\n            <div className='trends__header'>\n              <i className='fa fa-user-plus fa-fw' />\n              <FormattedMessage id='suggestions.header' defaultMessage='You might be interested in…' />\n            </div>\n\n            {suggestions && suggestions.map(accountId => (\n              <AccountContainer\n                key={accountId}\n                id={accountId}\n                actionIcon='times'\n                actionTitle={intl.formatMessage(messages.dismissSuggestion)}\n                onActionClick={dismissSuggestion}\n              />\n            ))}\n          </div>\n        </div>\n      );\n    }\n\n    let accounts, statuses, hashtags;\n    let count = 0;\n\n    if (results.get('accounts') && results.get('accounts').size > 0) {\n      count   += results.get('accounts').size;\n      accounts = (\n        <section>\n          <h5><Icon icon='users' fixedWidth /><FormattedMessage id='search_results.accounts' defaultMessage='People' /></h5>\n\n          {results.get('accounts').map(accountId => <AccountContainer id={accountId} key={accountId} />)}\n        </section>\n      );\n    }\n\n    if (results.get('statuses') && results.get('statuses').size > 0) {\n      count   += results.get('statuses').size;\n      statuses = (\n        <section>\n          <h5><Icon icon='quote-right' fixedWidth /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>\n\n          {results.get('statuses').map(statusId => <StatusContainer id={statusId} key={statusId}/>)}\n        </section>\n      );\n    }\n\n    if (results.get('hashtags') && results.get('hashtags').size > 0) {\n      count += results.get('hashtags').size;\n      hashtags = (\n        <section>\n          <h5><Icon icon='hashtag' fixedWidth /><FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' /></h5>\n\n          {results.get('hashtags').map(hashtag => <Hashtag key={hashtag.get('name')} hashtag={hashtag} />)}\n        </section>\n      );\n    }\n\n    //  The result.\n    return (\n      <div className='drawer--results'>\n        <header className='search-results__header'>\n          <Icon icon='search' fixedWidth />\n          <FormattedMessage id='search_results.total' defaultMessage='{count, number} {count, plural, one {result} other {results}}' values={{ count }} />\n        </header>\n\n        {accounts}\n        {statuses}\n        {hashtags}\n      </div>\n    );\n  };\n}\n","import { connect } from 'react-redux';\nimport SearchResults from '../components/search_results';\nimport { fetchSuggestions, dismissSuggestion } from '../../../actions/suggestions';\n\nconst mapStateToProps = state => ({\n  results: state.getIn(['search', 'results']),\n  suggestions: state.getIn(['suggestions', 'items']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n  fetchSuggestions: () => dispatch(fetchSuggestions()),\n  dismissSuggestion: account => dispatch(dismissSuggestion(account.get('id'))),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(SearchResults);\n","//  Package imports.\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\n//  Components.\nimport Icon from 'flavours/glitch/components/icon';\n\n//  Utils.\nimport { conditionalRender } from 'flavours/glitch/util/react_helpers';\nimport { signOutLink } from 'flavours/glitch/util/backend_links';\n\n//  Messages.\nconst messages = defineMessages({\n  community: {\n    defaultMessage: 'Local timeline',\n    id: 'navigation_bar.community_timeline',\n  },\n  home_timeline: {\n    defaultMessage: 'Home',\n    id: 'tabs_bar.home',\n  },\n  logout: {\n    defaultMessage: 'Logout',\n    id: 'navigation_bar.logout',\n  },\n  notifications: {\n    defaultMessage: 'Notifications',\n    id: 'tabs_bar.notifications',\n  },\n  public: {\n    defaultMessage: 'Federated timeline',\n    id: 'navigation_bar.public_timeline',\n  },\n  settings: {\n    defaultMessage: 'App settings',\n    id: 'navigation_bar.app_settings',\n  },\n  start: {\n    defaultMessage: 'Getting started',\n    id: 'getting_started.heading',\n  },\n});\n\nexport default @injectIntl\nclass Header extends ImmutablePureComponent {\n  static propTypes = {\n    columns: ImmutablePropTypes.list,\n    unreadNotifications: PropTypes.number,\n    showNotificationsBadge: PropTypes.bool,\n    intl: PropTypes.object,\n    onSettingsClick: PropTypes.func,\n  };\n\n  render () {\n    const { intl, columns, unreadNotifications, showNotificationsBadge, onSettingsClick } = this.props;\n\n    //  Only renders the component if the column isn't being shown.\n    const renderForColumn = conditionalRender.bind(null,\n      columnId => !columns || !columns.some(\n        column => column.get('id') === columnId\n      )\n    );\n\n    //  The result.\n    return (\n      <nav className='drawer--header'>\n        <Link\n          aria-label={intl.formatMessage(messages.start)}\n          title={intl.formatMessage(messages.start)}\n          to='/getting-started'\n        ><Icon icon='asterisk' /></Link>\n        {renderForColumn('HOME', (\n          <Link\n            aria-label={intl.formatMessage(messages.home_timeline)}\n            title={intl.formatMessage(messages.home_timeline)}\n            to='/timelines/home'\n          ><Icon icon='home' /></Link>\n        ))}\n        {renderForColumn('NOTIFICATIONS', (\n          <Link\n            aria-label={intl.formatMessage(messages.notifications)}\n            title={intl.formatMessage(messages.notifications)}\n            to='/notifications'\n          >\n            <span className='icon-badge-wrapper'>\n              <Icon icon='bell' />\n              { showNotificationsBadge && unreadNotifications > 0 && <div className='icon-badge' />}\n            </span>\n          </Link>\n        ))}\n        {renderForColumn('COMMUNITY', (\n          <Link\n            aria-label={intl.formatMessage(messages.community)}\n            title={intl.formatMessage(messages.community)}\n            to='/timelines/public/local'\n          ><Icon icon='users' /></Link>\n        ))}\n        {renderForColumn('PUBLIC', (\n          <Link\n            aria-label={intl.formatMessage(messages.public)}\n            title={intl.formatMessage(messages.public)}\n            to='/timelines/public'\n          ><Icon icon='globe' /></Link>\n        ))}\n        <a\n          aria-label={intl.formatMessage(messages.settings)}\n          onClick={onSettingsClick}\n          href='#'\n          title={intl.formatMessage(messages.settings)}\n        ><Icon icon='cogs' /></a>\n        <a\n          aria-label={intl.formatMessage(messages.logout)}\n          data-method='delete'\n          href={ signOutLink }\n          title={intl.formatMessage(messages.logout)}\n        ><Icon icon='sign-out' /></a>\n      </nav>\n    );\n  };\n}\n","import { openModal } from 'flavours/glitch/actions/modal';\nimport { connect }   from 'react-redux';\nimport Header from '../components/header';\n\nconst mapStateToProps = state => {\n  return {\n    columns: state.getIn(['settings', 'columns']),\n    unreadNotifications: state.getIn(['notifications', 'unread']),\n    showNotificationsBadge: state.getIn(['local_settings', 'notifications', 'tab_badge']),\n  };\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n  onSettingsClick (e) {\n    e.preventDefault();\n    e.stopPropagation();\n    dispatch(openModal('SETTINGS', {}));\n  },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Header);\n","import React from 'react';\nimport ComposeFormContainer from './containers/compose_form_container';\nimport NavigationContainer from './containers/navigation_container';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport classNames from 'classnames';\nimport SearchContainer from './containers/search_container';\nimport Motion from 'flavours/glitch/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport SearchResultsContainer from './containers/search_results_container';\nimport { me, mascot } from 'flavours/glitch/util/initial_state';\nimport HeaderContainer from './containers/header_container';\n\nconst messages = defineMessages({\n  compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },\n});\n\nconst mapStateToProps = (state, ownProps) => ({\n  showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : ownProps.isSearchPage,\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Compose extends React.PureComponent {\n  static propTypes = {\n    multiColumn: PropTypes.bool,\n    showSearch: PropTypes.bool,\n    isSearchPage: PropTypes.bool,\n    intl: PropTypes.object.isRequired,\n  };\n\n  render () {\n    const {\n      intl,\n      multiColumn,\n      isSearchPage,\n      showSearch,\n    } = this.props;\n    const computedClass = classNames('drawer', 'mbstobon');\n\n    return (\n      <div className={computedClass} role='region' aria-label={intl.formatMessage(messages.compose)}>\n        {multiColumn && <HeaderContainer />}\n\n        {(multiColumn || isSearchPage) && <SearchContainer />}\n\n        <div className='drawer__pager'>\n          {!isSearchPage && <div className='drawer__inner'>\n            <NavigationContainer />\n            <ComposeFormContainer />\n            {multiColumn && (\n              <div className='drawer__inner__mastodon'>\n                {mascot ? <img alt='' draggable='false' src={mascot} /> : <button className='mastodon' />}\n              </div>\n            )}\n          </div>}\n\n          <Motion defaultStyle={{ x: isSearchPage ? 0 : -100 }} style={{ x: spring(showSearch || isSearchPage ? 0 : -100, { stiffness: 210, damping: 20 }) }}>\n            {({ x }) => (\n              <div className='drawer__inner darker' style={{ transform: `translateX(${x}%)`, visibility: x === -100 ? 'hidden' : 'visible' }}>\n                <SearchResultsContainer />\n              </div>\n            )}\n          </Motion>\n        </div>\n      </div>\n    );\n  }\n\n}\n"],"sourceRoot":""}