क्या आप मुझे पछाड़ सकते हैं? (लुटेरे अनुभाग)


43

लुटेरों का खंड

पुलिस अनुभाग यहां पाया जा सकता है

चुनौती

आपका काम एक ही भाषा और एक ही संस्करण में पुलिस के सबमिशन को आउटगोल्फ करना है (उदाहरण के लिए, पायथन 3.5 th पायथन 3.4 , ताकि इसकी अनुमति न हो)। जब मूल बाइट्स की तुलना में बाइट्स की लंबाई कम होती है, तो एक सबमिशन बहिर्गमन होता है। सबमिशन क्रैक करने के लिए आपको केवल कम से कम 1 बाइट को गोल्फ से बाहर करना होगा । जैसे यदि कार्य 2 × n करना था , और सबमिशन निम्नलिखित था:

print(2*input())

आप निम्न कार्य करके पुलिस को बाहर कर सकते हैं:

print 2*input()

या यहां तक ​​कि (चूंकि लैम्ब्डा की अनुमति है):

lambda x:2*x

इसे निम्नलिखित हेडर के साथ पोस्ट करें:

##{language name}, <s>{prev byte count}</s> {byte count}, {cop's submission + link}

उदाहरण के लिए:

पायथन 2, 16 12 बाइट्स, अदनान (प्रस्तुत करने के लिए लिंक)

lambda x:2*x

गणना करता A005843 , (ऑफसेट = 0)।

उस स्थिति में, आपने सबमिशन क्रैक कर लिया है।

स्कोरिंग

जिस व्यक्ति ने सबसे अधिक सबमिशन क्रैक किया है, वह विजेता है।

नियम

  • क्रैक सबमिशन उसी भाषा में होना चाहिए, जैसे पुलिस सबमिशन।
  • एक ही इनपुट को एक ही आउटपुट में परिणामित किया जाना चाहिए (इसलिए 2 (2) = 4 4 रहना चाहिए)।
  • पायथन जैसी भाषाओं के लिए, आप उन पुस्तकालयों को आयात कर सकते हैं जो भाषा के भीतर मानक हैं। (तो, कोई सुन्न / सिम्पी आदि)
  • इनपुट और आउटपुट दोनों दशमलव (बेस 10) में हैं।

ध्यान दें

यह चुनौती समाप्त हो गई है। रॉबर्स सेक्शन का विजेता फ़ेर्सुम है । CnR के लिए अंतिम स्कोर नीचे दिखाए गए हैं:

  • feersum : 16 दरारें
  • डेनिस : 12 दरारें
  • लीक नन : 6 दरारें
  • लिन : 4 दरारें
  • मील : 3 दरारें
  • मार्टिन एंडर : 2 दरारें
  • एमिग्ना : 2 दरारें
  • jimmy23013 : 1 दरार
  • Sp3000 : 1 दरार
  • यादृच्छिक : 1 दरार
  • alephalpha : 1 दरार
  • निम्मी : 1 दरार
  • विनाशकारी तरबूज : 1 दरार
  • डोम हेस्टिंग्स : 1 दरार

जवाबों:


8

चेडर, 7 6 बाइट्स, डाउनगोट

(<<)&1

यह काम करने लगता है, लेकिन यह हमेशा संभव है कि मैं भाषा को सही ढंग से नहीं समझता।


वैकल्पिक रूप से, (**)&2। मैंने कोशिश की 2&(**)और असफल रहा। :(
डेनिस

@ डेनिस (**)&2मेरे लिए ठीक काम करता है: / लेकिन यह भी काम करता है।
डाउनगोट

14

जेली ,54 बाइट्स , जॉर्ज वी। विलियम्स

RÆḊḞ

इसे यहाँ आज़माएँ।

एक छिपी हुई सुविधा!

अगर मुझे सही से याद है, ÆḊ(A) = sqrt (det (AA T )) n है! एन इनपुट बिंदु और मूल आयामी अंतरिक्ष में मूल द्वारा गठित एक सिम्प्लेक्स के आयामी डायनामेस के बार । जब n = 1 यह यूक्लिडियन दूरी को कम करता है। अजीब नहीं है कि आखिर ...


1
ठीक है, मैंने निर्धारकों के साथ कुछ अजीब किया है ... इतनी अच्छी तरह से छिपा हुआ है कि मैं इसे खुद नहीं पा सकता हूं!
डेनिस

@ डेनिस मुझे यह पता है क्योंकि किसी दिन मैंने निर्धारक को भी विस्तारित करने की कोशिश की थी, और अगर आप चाहते हैं कि आप इसे पार उत्पाद के साथ काम करें। लेकिन यह मुझे लंबा लगा क्योंकि मुझे लगा कि यह अजीब भी हो सकता है और मुझे उम्मीद नहीं थी कि कोई एक ही चीज़ लेकर आएगा ...
jimmy23013

क्या वास्तव में इन्हें "बाइट्स" माना जा सकता है? कोड अंक के लिए और UTF-16 रेंज में हैं। यह समाधान 6 बाइट्स को विषम एन्कोडिंग मान लेगा, और 8 बाइट्स को सजातीय एन्कोडिंग मान लेगा। यहां ईमानदारी से पूछ रहा हूं।
जूल्स


11

हेक्सागोनी , 91 33 बाइट्स, ब्लू

1""?{\>{+/</+'+./_'..@'~&/!}'+=($

सामने आया:

    1 " " ?
   { \ > { +
  / < / + ' +
 . / _ ' . . @
  ' ~ & / ! }
   ' + = ( $
    . . . .

इसे ऑनलाइन आज़माएं!

फिर भी कुछ हद तक गोल्फ दिखता है, लेकिन मुझे लगा कि मैं इसे FryAmTheEggman से पहले इसे पोस्ट कर दूंगा। ;)

व्याख्या

यहां कुछ रंग-कोडित निष्पादन पथ दिए गए हैं:

यहाँ छवि विवरण दर्ज करें

हालांकि, गोल्फिंग के कारण ये अनावश्यक रूप से जटिल हैं। यहाँ एक हूबहू लेआउट के साथ सटीक कोड है:

यहाँ छवि विवरण दर्ज करें

वह बेहतर है। और अंत में, यहां एक मेमोरी आरेख है, जहां लाल तीर मेमोरी पॉइंटर (एमपी) की प्रारंभिक स्थिति और अभिविन्यास को इंगित करता है:

यहाँ छवि विवरण दर्ज करें

जिस्ट यह है कि मैं , बी और सी किनारों पर चलने वाले का ट्रैक रखते हुए एफ (i) , f (i + 1) और f (i + 2) लेबल वाले तीन किनारों पर फाइबोनैचि संख्याओं की पुनरावृत्ति कर रहा हूं । ऐसा करते समय इन किनारों की भूमिकाओं को प्रत्येक पुनरावृत्ति के बाद चक्रीय रूप से बाहर निकाला जाता है। आइए देखें कि यह कैसे होता है ...

कोड ग्रे पथ पर शुरू होता है जो कुछ प्रारंभिक सेटअप करता है। ध्यान दें कि f (i) का पहले से ही इसका सही प्रारंभिक मूल्य है 0

1   Set edge f(i+1) to 1.
""  Move the MP to edge A.
?   Read input n into edge A.
)   Increment n.

अब हरे रंग का रास्ता मुख्य लूप है। _और >सिर्फ दर्पण हैं।

(     Decrement n.
<     If the result is zero or less, continue on the red path, otherwise
      perform another iteration of the main loop.
{     Move the MP to edge f(i+2).
+     Add edges f(i) and f(i+1) into this edge, computing the next Fibonacci number.
'     Move the MP to the edge opposite A.
~     Multiply by -1 to ensure that it's non-positive (the edge may have a positive
      value after a few iterations).
&     Copy the current value of n from A.
'     Move back and to the right again.
+     Copy n by adding it to zero. Since we know that the other adjacent edge
      is always zero, we no longer need to use ~&.
'+'+  Repeat the process twice, moving n all the way from A to B.
=     Reverse the orientation of the MP so that it points at f(i) which now
      becomes f(i+2) for the next iteration.

इस तरह, सांसद किनारों के आंतरिक समूह के चारों ओर घूमता है, nशून्य तक पहुंचने तक क्रमिक फाइबोनैचि संख्याओं की गणना करता है। फिर अंत में लाल पथ निष्पादित होता है:

{}    Move the MP to f(i).
!     Print it.
@     Terminate the program.

टिमवी के हेक्सागोनीकॉलियर और एसोटेरिकाइड के साथ उत्पन्न आरेख ।


पवित्र गाय! मैं तुमसे पिटने की उम्मीद कर रहा था लेकिन मेरी इतनी नहीं! 0.o
ब्लू

@ क्या आप अपने बारे में स्पष्टीकरण जोड़ने की योजना बना रहे हैं? मुझे लगता है कि कैसे काम करता है में दिलचस्पी होगी। :) मैं इसे एक स्पष्टीकरण के साथ ही जल्दी या बाद में जोड़ूंगा, लेकिन मुझे यकीन नहीं है कि मुझे आज समय मिल जाएगा।
मार्टिन एंडर

हाँ, मेरा गणना की एक और पारंपरिक विधि का उपयोग करता है। मैं पूरी तरह से भूल गया और, कि कुछ बाइट्स बचा सकता है
ब्लू ०


7

स्टैक कैट्स, 14 13 बाइट्स, फेर्सम

^]T{_+:}_

-nm+4 बाइट्स के लिए झंडे के साथ । इसे ऑनलाइन आज़माएं!

ठीक है, वह पाश पागल था। मैं इस तरह के जानवर एक कम वर्णमाला से अधिक मजबूर और जानवर के लिए मजबूर कर के रूप में कई दृष्टिकोण, की कोशिश की 3x+2या 5x+4और यह विस्तार करने के लिए कोशिश कर रहा है, लेकिन मैं समाधान की उम्मीद करने के लिए कभी नहीं वास्तव में एक पाश होते हैं।

यह देखने का सबसे अच्छा तरीका है कि यह कैसे Dडिबगिंग के लिए एक ध्वज जोड़ने के लिए है (इसलिए के साथ चलाएं -nmD) और उपरोक्त टीआईओ लिंक के लिए डीबग चालू करें। एक {}लूप लूप की शुरुआत में स्टैक के शीर्ष को याद करता है, और बाहर निकलता है जब स्टैक के ऊपर वह मान फिर से होता है। लूप का इंटीरियर स्टैक के शीर्ष तीन तत्वों के कुछ मजेदार घटाना और साइकलिंग करता है, जो कि लूप को इतने सारे पुनरावृत्तियों के लिए चलाने के लिए मिलता है।


6

सेसोस, 14 11 बाइट्स, लीक नून

गणना करना n इसे यहाँ आज़माएँ।

हेक्स डंप:

0000000: 16c0f7 959d9b 26e83e ce3d                         ......&.>.=

विधानसभा से:

set numin
set numout
get
jmp
  jmp, sub 1, fwd 1, add 1, fwd 1, add 2, rwd 2, jnz
  fwd 2, sub 1
  rwd 1, sub 1
  jmp, sub 1, rwd 1, add 1, fwd 1, jnz
  rwd 1
jnz
fwd 2
put

अच्छा, आप मेरे मूल गोल्फ संस्करण से भी छोटे हैं।
लीक नून

यह 1 + 3 + … + (2n–1)इसके बजाय की गणना करता है n × n:)
लिन

मैंने
लीक नून

6

शोक से, 776 759 बाइट्स, विनाशकारी तरबूज

| |||||||| | |
|| |||||| |
||| |||| |
|||| || |
||||| || |
|||| |||| |
||| |||||| |
|| |||||||| |
| |||||||||| |
|| |||||||| |
||| ||||||| |
||||||||||| |
||||||||||| |
||||||||||| |
||||||||||| |
|||||||||| |
||||||||| |
||||||||| |
||||||||| |
||||||||| |
|||||||||| |
||||||||||| |
|||||||||||| |
||||||||||| |
|||||||||| |
||||||||| |
|||||||| |
||||||| |
|||||| |
||||| |
|||| |
||| |
|| |
| |
| |
| |
|| |
|| |
|| |
|| |
|| |
| |
| |
| |
|| |
||| |
|||| |
||||| |
|||||| |
||||||| |
|||||| |
||||||| |
|||||||| |
||||||||| |
|||||||||| |
||||||||||| |
|||||||||||| |
||||||||||| |
|||||||||| |
||||||||| |
|||||||| |
||||||| |
|||||| |
||||| |
|||| |
||| |
|| |
| |
| |
| |
| |
|| |
| |
|| |
||| |
||| |
|||| |
||| |
|| |
| |
| |
| |
|| |
|| |
|| |
|| |

मैंने इस भाषा के लिए स्रोत कोड पढ़ने की कोशिश की लेकिन यह बहुत भ्रामक था। एक चीज के लिए, ip[1]एक ip[0]कॉलम संख्या है जबकि कॉलम संख्या है, जबकि cpनिर्देशांक का उपयोग दूसरे तरीके से किया जाता है। फिर भी, कभी-कभी मान cpदिया जाता है ip। मैंने यह समझने की कोशिश की कि कार्यक्रम क्या कर रहा है और कम सलाखों का उपयोग करके निर्देशों के समान अनुक्रम को एन्कोड करने का एक तरीका मिला।


5

Brachylog , 27 21 बाइट्स, Fatalize

yrb:1a:+a:[1]c*.
:2/.

इसे ऑनलाइन आज़माएं!


बहुत बढ़िया! पूर्णांक विभाजन का उपयोग निश्चित रूप से वह समाधान नहीं है जो मेरे मन में था (जो अभी भी छोटा है), इसके बारे में भी नहीं सोचा था tbh: p
घातक बनाना

5

जे, 17 12 बाइट्स, मील

+/@(]!2*-)i:

मूल रूप से बहुत अधिक गोल्फ के समान सुंदर। :)

i:उपयोगी (और अजीब) +1की तुलना में रेंज होने i.। यदि आप i.यहां उपयोग करते हैं n=0तो गलत होगा लेकिन सौभाग्य से यह i:हल करता है।

इसे यहाँ ऑनलाइन आज़माएँ।


i:नकारात्मक मूल्यों के लिए शून्य होने के साथ नीट की चाल । मेरे संस्करण था +/@(]!2*-)i.,]
मील

5

एम, 10 6 बाइट्स, डेनिस

R×\³¡Ṫ

यह देखते हुए n , यह गणना करता n वें के स्तर के भाज्य एन । यह एक मजेदार अभ्यास था!

कोड जेली के रूप में चलाने में सक्षम है इसलिए आप इसे ऑनलाइन आज़मा सकते हैं ।

व्याख्या

R×\³¡Ṫ  Input: n
R       Create the range [1, 2, ..., n]
   ³¡   Repeat n times starting with that range
 ×\       Find the cumulative products
     Ṫ  Get the last value in the list
        Return implicitly


5

हास्केल, 15 14 बाइट्स, ज़्नोर

until odd succ

मैंने "व्यर्थ" वाक्यविन्यास को समझने के लिए कुछ घंटों का एक बेकार समय बिताया ... untilमुझे इसके बजाय मिला।

या एक कम मेलिफ़लस 13 बाइट्स के लिए until odd(+1),।


अच्छी तरह से किया, यह वही है जो मेरे मन में था। मुझे तीन शब्द पसंद हैं।
xnor

4

अजगर 2, 43 40, xsot

g=lambda n:n<2or-~sum(map(g,range(n)))/3

दिलचस्प है, यह मूल रूप से मेरे द्वारा किए गए से अलग है।
xsot

4

पाइके, 11 9 बाइट्स, कीचड़युक्त मछली

hVoeX*oe+

यहाँ यह कोशिश करो!

यह काम किस प्रकार करता है

          Implicit input: n (accumulator), n (iterations)
h         Increment the number of iterations.
 V        Do the following n + 1 times.
  o         Iterator. Pushes its value (initially 0) and increments it.
   e        Perform integer division by 2.
            This pushes 0 the first time, then 1, then 2, etc.
    X       Square the result.
     *      Multiply the accumulator and the result.
      oe    As before.
        +   Add the result to the accumulator.
            This sets the accumulator to a(0) = 0 in the first iteration and
            applies the recursive formula in all subsequent ones.

उस विधि का उपयोग करके आप 8 प्राप्त कर सकते हैं hV~oX*o+। मेरा 5 बाइट उत्तर थाSDmX^
ब्लू

आह, ~oसाफ-सुथरा है। मुझे नहीं पता कि क्या SDmX^करता है।
डेनिस

यह मूल रूप से उस वर्ग के खिलाफ 1-अनुक्रमित सीमा पर मिश्रित आधार वार्तालाप का उपयोग करता है। OEIS पर कुछ नहीं
ब्लू

ओह, mकेवल प्रभावित करता है Xऔर नहीं ^? इससे बहुत कुछ पता चलता है।
डेनिस

हाँ, mऔर इसी तरह केवल अगले नोड का उपयोग करें। मेरे डॉक्स आदि पर कोई टिप्पणी?
ब्लू

4

05AB1E , 7 4, एमिगा

LnOx

यदि हम गुणा करते हैं तो सूत्र पूर्णांक के धनात्मक पूर्णांक 1 ^ 2 + 2 ^ 2 + 3 ^ 2 + ... + n ^ 2 = n (n + 1) (2 * n + 1) / 6 के योग के सूत्र से दोनों ओर 2 से हमें Sum_ {k = 0..n} 2 * k ^ 2 = n (n + 1) (2 * n + 1) / 3 मिलता है, जो इस क्रम का एक वैकल्पिक सूत्र है। - माइक वारबटन (mikewarb (AT) gmail.com), 08 सितंबर 2007


मुझे खुशी है कि आपने इसे 4 बजे क्रैक किया क्योंकि मेरी सार्वजनिक एक छोटी सी चूक थी। अच्छा!
एमिगा

4

जैली, 22 21 बाइट्स, डेनिस

_²×c×Ḥc¥@÷⁸÷’{S
‘µR+ç

मैंने पिछले एक घंटे के लिए जेली स्रोत कोड को पढ़ने में कई घंटे बिताए, इसलिए मैं इस "कौशल" का उपयोग करने के लिए डाल सकता हूं। मुझे उम्मीद है कि @ डेनिस हमारे साथ अपने गणितीय खोजों को साझा करने की अनुमति देगा एक छोटे फार्मूले की अनुमति (यह मानते हुए कि कुछ है और न केवल अजीब तरह के ट्रिक्स हैं!)।


तुलना के लिए, मेरे पास: `',c_ × c @ + n \ nr0ç @ €:' + \ S
Sp3000

@ Sp3000 ओह, अच्छी तरह से आपने इसे पोस्ट क्यों नहीं किया?
feersum

6 के बारे में सोचने का अधिक समय पहले डेनिस रिपॉजिट्स इन M: P
Sp3000

4

जे, 20 19 बाइट्स, मील

[:+/2^~+/@(!|.)\@i.

यह उत्पाद को वर्गबद्ध फाइबोनैचि संख्याओं के योग के रूप में गणना करता है, जिन्हें द्विपद गुणांक के योग के रूप में गणना की जाती है।

शुक्र है, @ मील्स ने खुद इस टिप्पणी में फाइबोनैचि संख्या उत्पन्न करने के लिए कोड पोस्ट किया ।


4

एसीसी !! , 526 525 बाइट्स, DLosc

N
Count x while _%60-46 {
(_+_%60*5-288)*10+N
}
_/60
Count i while _/27^i {
_+27^i*(_/27^i*26-18)
}
_*3+93
Count i while _/27^i/27%3 {
_-i%2*2+1
Count j while _/3^(3*j+2-i%2)%3 {
_+3^(1+i%2)
Count k while _/3^(3*k+1+i%2)%3-1 {
_+3^(3*k+1+i%2)*26
}
}
}
Count i while _/27^i/3 {
_-_/27^i/3%27*27^i*3+_/3^(3*i+1+_%3)%3*3
}
_/3
Count i while _/100^i {
_*10-(_%100^i)*9
}
Count i while _/100^i/10 {
_+_/100^i/10%10
Count j while i+1-j {
_+(_%10-_/100^(j+1)%10)*(100^(j+1)-1)
}
}
_/100
Count j while _/100^j {
Write _/100^j%10+48
}

मुझे नहीं पता कि यह कैसे काम करता है, लेकिन मैं एक छोटे से सुधार में सक्षम था।

24c24
< _+_/100^i*100^i*9
---
> _*10-(_%100^i)*9

आह, गोली मारो। मैं उम्मीद कर रहा था कि कोई भी एक गणित गोल्फ को नहीं पकड़ेगा जो मैंने याद किया। +1
DLosc

4

हास्केल, 10 बाइट्स, एक्सनोर

gcd=<<(2^)

प्रयोग उदाहरण: map ( gcd=<<(2^) ) [1..17]-> [1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,16,1]

यह कैसे काम करता है: ओईस पेज से हम देखते हैं कि a(n) = gcd(2^n, n)या हास्केल सिंटैक्स में लिखा गया है a n = gcd (2^n) n:। पैटर्न के साथ फ़ंक्शन को फ़ंक्शन के f x = g (h x) xमाध्यम से पॉइंट-फ्री में बदल दिया जा सकता है =<<: f = g =<< hइसलिए gcd=<<(2^)जो वापस अनुवाद करता है gcd (2^x) x


............... कैसे
TuxCrafting


3

वास्तव में वास्तव में अच्छा है, मैं वास्तव में इस समाधान को देखने के लिए उत्साहित हूं
विनाशकारी नींबू

क्यों सही बदलाव के साथ एक सरल सूत्र को जटिल करना?
xsot

@xsot क्योंकि मुझे नहीं पता था कि वह किस संस्करण का उपयोग करता था।
लीक नु न ०



3

MATL, 11 10 बाइट्स, लुइस मेंडो

YftdAwg_p*

-1 ^ लंबाई (सरणी) करने के बजाय यह तत्वों को बुलियन मूल्यों (जो हमेशा 1 हैं) में परिवर्तित करता है, उन्हें नकारता है, और तत्वों का उत्पाद लेता है।



3

हाँ, यह मेरे लिए बहुत अच्छा था : पी। मैं भूल गया कि यह एक वास्तविक चुनौती रही है।
अदनान

µNÂʽ5 बाइट्स के लिए। संभवतः गुप्त संस्करण।
एमिगा

3

ब्रेकीलॉग , 11 10 बाइट्स, घातक

yb:AcLrLc.

इसे ऑनलाइन आज़माएं!

व्याख्या

ब्रेजलॉग एक प्रोलॉग-व्युत्पन्न भाषा है, जिसकी सबसे बड़ी क्षमता चीजों को साबित करना है।

यहाँ, हम इन कथनों को सिद्ध करते हैं:

yb:AcLrLc.
yb:AcL       Inclusive range from 1 to input, concatenated with A, gives L
     LrL     L reversed is still L
       Lc.   L concatenated is output

यह पूरी तरह से जवाब है जो मेरे मन में था, अच्छी तरह से किया गया!
7

3

जेली, 9 8 बाइट्स, डेनिस

œċr0$L€Ḅ

माफ़ करना! मैं आपका इच्छित समाधान खोजने में सक्षम नहीं था।

यह इस तथ्य पर निर्भर करता है कि प्रतिस्थापन के साथ मूल्यों C(n+k-1, k)को चुनने के तरीकों की संख्या कितनी है।kn

नोट: यह अक्षम है क्योंकि यह उन्हें गिनने के लिए संभव सेट बनाता है, इसलिए n ऑनलाइन के बड़े मूल्यों का उपयोग करने से बचने की कोशिश करें ।

इसे ऑनलाइन आज़माएं या n तक सत्यापित करें

मुझे बाद में एक और 8 बाइट संस्करण मिला, जो n = 1000 की गणना करने के लिए पर्याप्त कुशल है । यह द्विपद गुणांक का उपयोग करते हुए मूल्यों की गणना करता है और सूचियों को बनाने से बचा जाता है।

Ḷ+c’Ṛ;1Ḅ

इसे ऑनलाइन आज़माएं या n तक सत्यापित करें

व्याख्या

œċr0$L€Ḅ  Input: n
  r0$     Create a range [n, n-1, ..., 0]
œċ        Create all combinations with replacement for
          (n, n), (n, n-1), ..., (n, 0)
     L€   Find the length of each
       Ḅ  Convert it from binary to decimal and return

Ḷ+c’Ṛ;1Ḅ  Input: n
Ḷ         Creates the range [0, 1, ..., n-1]
 +        Add n to each in that range
   ’      Get n-1
  c       Compute the binomial coefficients between each
    Ṛ     Reverse the values
     ;1   Append 1 to it
       Ḅ  Convert it from binary to decimal and return


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.